<?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>77969</bug_id>
          
          <creation_ts>2012-02-07 04:58:17 -0800</creation_ts>
          <short_desc>Add web notifications support for WebKitTestRunner and Mac DumpRenderTree</short_desc>
          <delta_ts>2012-09-04 13:51:25 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>77968</dependson>
    
    <dependson>79492</dependson>
    
    <dependson>95093</dependson>
    
    <dependson>95099</dependson>
    
    <dependson>95100</dependson>
    
    <dependson>95127</dependson>
    
    <dependson>95154</dependson>
    
    <dependson>95232</dependson>
    
    <dependson>95233</dependson>
    
    <dependson>95234</dependson>
    
    <dependson>95249</dependson>
    
    <dependson>95493</dependson>
    
    <dependson>95546</dependson>
          <blocked>80472</blocked>
    
    <blocked>81048</blocked>
    
    <blocked>95506</blocked>
    
    <blocked>95507</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>jberlin</cc>
    
    <cc>jonlee</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>550869</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-02-07 04:58:17 -0800</bug_when>
    <thetext>Add support for testing web notifications.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577916</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-13 15:45:21 -0700</bug_when>
    <thetext>*** Bug 79493 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577919</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-13 15:45:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/10357618&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705035</commentid>
    <comment_count>3</comment_count>
      <attachid>160656</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:26:49 -0700</bug_when>
    <thetext>Created attachment 160656
1/9 - Update LayoutTest API for web notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705036</commentid>
    <comment_count>4</comment_count>
      <attachid>160657</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:28:24 -0700</bug_when>
    <thetext>Created attachment 160657
2/9 - Add SPI to retrieve internal IDs for notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705037</commentid>
    <comment_count>5</comment_count>
      <attachid>160658</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:29:25 -0700</bug_when>
    <thetext>Created attachment 160658
3/9 - Add SPI to be able to manually set permissions for origins in tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705038</commentid>
    <comment_count>6</comment_count>
      <attachid>160659</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:30:48 -0700</bug_when>
    <thetext>Created attachment 160659
4/9 - DRT support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705039</commentid>
    <comment_count>7</comment_count>
      <attachid>160660</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:32:09 -0700</bug_when>
    <thetext>Created attachment 160660
5/9 - WTR support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705040</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 01:32:41 -0700</bug_when>
    <thetext>Attachment 160657 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h:72:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h:53:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 15 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>705041</commentid>
    <comment_count>9</comment_count>
      <attachid>160661</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:33:16 -0700</bug_when>
    <thetext>Created attachment 160661
6/9 - Support for adding test output for platform events in DRT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705042</commentid>
    <comment_count>10</comment_count>
      <attachid>160662</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:34:29 -0700</bug_when>
    <thetext>Created attachment 160662
7/9 - Add WK2 support for that output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705045</commentid>
    <comment_count>11</comment_count>
      <attachid>160665</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:35:19 -0700</bug_when>
    <thetext>Created attachment 160665
8/9 - WTR support for dump output for platform events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705047</commentid>
    <comment_count>12</comment_count>
      <attachid>160666</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:36:10 -0700</bug_when>
    <thetext>Created attachment 160666
9/9 - Added basic tests in http/tests/notifications showing output from DRT and WTR for web notifications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705051</commentid>
    <comment_count>13</comment_count>
      <attachid>160668</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 01:38:50 -0700</bug_when>
    <thetext>Created attachment 160668
All 9 patches as a whole, for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705056</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 01:42:26 -0700</bug_when>
    <thetext>Attachment 160668 did not pass style-queue:

Tools/WebKitTestRunner/TestController.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
Tools/DumpRenderTree/mac/MockWebNotificationProvider.h:61:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h:53:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNotification.cpp:27:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNotification.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
Tools/WebKitTestRunner/WebNotificationProvider.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h:75:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageNotificationClient.h:50:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageNotificationClient.h:50:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:167:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:167:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:168:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:168:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:169:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:169:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:170:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:170:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:171:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:171:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:172:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:172:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:173:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:173:  The parameter name &quot;notification&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:174:  The parameter name &quot;page&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:174:  TFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
he parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 25 in 89 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>705057</commentid>
    <comment_count>15</comment_count>
      <attachid>160657</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-27 01:43:26 -0700</bug_when>
    <thetext>Comment on attachment 160657
2/9 - Add SPI to retrieve internal IDs for notifications

Attachment 160657 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13608293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705058</commentid>
    <comment_count>16</comment_count>
      <attachid>160660</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-27 01:46:44 -0700</bug_when>
    <thetext>Comment on attachment 160660
5/9 - WTR support

Attachment 160660 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13620021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705060</commentid>
    <comment_count>17</comment_count>
      <attachid>160657</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-08-27 01:50:16 -0700</bug_when>
    <thetext>Comment on attachment 160657
2/9 - Add SPI to retrieve internal IDs for notifications

Attachment 160657 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13620022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705064</commentid>
    <comment_count>18</comment_count>
      <attachid>160660</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-08-27 01:55:26 -0700</bug_when>
    <thetext>Comment on attachment 160660
5/9 - WTR support

Attachment 160660 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13609238</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705066</commentid>
    <comment_count>19</comment_count>
      <attachid>160657</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-27 02:00:17 -0700</bug_when>
    <thetext>Comment on attachment 160657
2/9 - Add SPI to retrieve internal IDs for notifications

Attachment 160657 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13615072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705072</commentid>
    <comment_count>20</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:07:03 -0700</bug_when>
    <thetext>Please do not upload multiple r? patches at the same time. That&apos;s confusing and makes it difficult to comment on individual patches.

The best work-around would be:

- Create a meta bug and upload one patch that implements everything, so that reviewers can understand what you are going to do.

- Create one bug per one sub-patch and set r?, blocking the meta bug. When the first patch is landed, you can upload the second patch etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705073</commentid>
    <comment_count>21</comment_count>
      <attachid>160660</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-27 02:07:36 -0700</bug_when>
    <thetext>Comment on attachment 160660
5/9 - WTR support

Attachment 160660 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13613071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705074</commentid>
    <comment_count>22</comment_count>
      <attachid>160656</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:08:37 -0700</bug_when>
    <thetext>Comment on attachment 160656
1/9 - Update LayoutTest API for web notifications

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705075</commentid>
    <comment_count>23</comment_count>
      <attachid>160657</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:08:54 -0700</bug_when>
    <thetext>Comment on attachment 160657
2/9 - Add SPI to retrieve internal IDs for notifications

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705076</commentid>
    <comment_count>24</comment_count>
      <attachid>160660</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:09:12 -0700</bug_when>
    <thetext>Comment on attachment 160660
5/9 - WTR support

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705077</commentid>
    <comment_count>25</comment_count>
      <attachid>160661</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:09:25 -0700</bug_when>
    <thetext>Comment on attachment 160661
6/9 - Support for adding test output for platform events in DRT

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705078</commentid>
    <comment_count>26</comment_count>
      <attachid>160662</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:09:39 -0700</bug_when>
    <thetext>Comment on attachment 160662
7/9 - Add WK2 support for that output

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705080</commentid>
    <comment_count>27</comment_count>
      <attachid>160665</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:09:50 -0700</bug_when>
    <thetext>Comment on attachment 160665
8/9 - WTR support for dump output for platform events

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705081</commentid>
    <comment_count>28</comment_count>
      <attachid>160658</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:10:02 -0700</bug_when>
    <thetext>Comment on attachment 160658
3/9 - Add SPI to be able to manually set permissions for origins in tests

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705082</commentid>
    <comment_count>29</comment_count>
      <attachid>160659</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:10:13 -0700</bug_when>
    <thetext>Comment on attachment 160659
4/9 - DRT support

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705083</commentid>
    <comment_count>30</comment_count>
      <attachid>160666</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:10:25 -0700</bug_when>
    <thetext>Comment on attachment 160666
9/9 - Added basic tests in http/tests/notifications showing output from DRT and WTR for web notifications

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705084</commentid>
    <comment_count>31</comment_count>
      <attachid>160668</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-27 02:10:52 -0700</bug_when>
    <thetext>Comment on attachment 160668
All 9 patches as a whole, for EWS

Not to show up these patches in the review list, let me r- them for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705300</commentid>
    <comment_count>32</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 08:44:33 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Please do not upload multiple r? patches at the same time. That&apos;s confusing and makes it difficult to comment on individual patches.
&gt; 
&gt; The best work-around would be:
&gt; 
&gt; - Create a meta bug and upload one patch that implements everything, so that reviewers can understand what you are going to do.
&gt; 
&gt; - Create one bug per one sub-patch and set r?, blocking the meta bug. When the first patch is landed, you can upload the second patch etc.

All right, I&apos;ll split the patches up into smaller bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705697</commentid>
    <comment_count>33</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 14:47:30 -0700</bug_when>
    <thetext>I ended up doing double duty bringing web notifications support to Mac. There are a couple patches that are common to both test harnesses, so this will act as the master bug for both.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160656</attachid>
            <date>2012-08-27 01:26:49 -0700</date>
            <delta_ts>2012-08-29 11:47:10 -0700</delta_ts>
            <desc>1/9 - Update LayoutTest API for web notifications</desc>
            <filename>0001-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>42866</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA4NTQwNDllMDE2NDFkZDE3MjRhNmQwZmZiNmQxZjZiYmQxMDQxMjMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBGcmks
IDI0IEF1ZyAyMDEyIDE0OjE0OjM3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVG9vbHM6CgpTb21lIG9m
IHRoZSBsZWdhY3kgQVBJcyBhcmUgbGVzcyB0aGFuIGlkZWFsLCBhbmQgbm90IHRlbmFibGUgd2l0
aCB0aGUgV1RSIGluZnJhc3RydWN0dXJlLgpUaGlzIGZpcnN0IHBhdGNoIHJlbmFtZXMgdGhlIFRl
c3RSdW5uZXIgY2FsbHMgdG8gdXNlIHRoZSB0ZXJtICJ3ZWIgbm90aWZpY2F0aW9ucyIgaW5zdGVh
ZCBvZgoiZGVza3RvcCBub3RpZmljYXRpb25zIiwgZGVwcmVjYXRlcyBhIGNvdXBsZSBBUEkgY2Fs
bHMgdGhhdCBhcmUgbm90IHVzZWQgYnkgYW55b25lLCBhbmQgYWRkcwphZGRpdGlvbmFsIGNhbGxz
IHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSB0ZXN0cyB0aGF0IHRlc3QgdGhlIHN0YW5kYXJkIEFQ
SS4KCiogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgooVGVzdFJ1bm5lcik6IEZvciBuYW1p
bmcgY29uc2lzdGVuY3ksIHJlbmFtZSBhIGNvdXBsZSBtZW1iZXIgdmFyaWFibGVzLiBSZW1vdmUg
dW51c2VkIGNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oKQphbmQgYXJlRGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQoKS4gUmVtb3ZlIG9yaWdpbiBt
YXBwaW5nIHNpbmNlIGVhY2ggcG9ydCBpbXBsZW1lbnRzIGl0cyBvd24gc29sdXRpb24uCiogRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6IFB1c2ggZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uKCkgdG8gaW5kaXZpZHVhbCBwb3J0cy4KKFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgoo
aWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2spOiBS
ZW5hbWVkLgooc2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGlja0NhbGxiYWNrKTogUmVu
YW1lZC4KKGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKTogUmVuYW1lZC4K
KGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2spOiBBZGRlZC4KKHJlbW92ZUFs
bFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zQ2FsbGJhY2spOiBBZGRlZC4KKHNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayk6IEFkZGVkLgooVGVzdFJ1bm5lcjo6c3RhdGljRnVu
Y3Rpb25zKToKKFRlc3RSdW5uZXI6Omlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0cyk6CgoqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3Bw
OgooRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcik6IEFkZGVkIGJpbmRpbmdzIGZvciBuZXcg
QVBJcy4KKERSVFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6CihE
UlRUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6IFN0dWIuCihEUlRU
ZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyk6IFN0dWIuCihE
UlRUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTogU3R1Yi4KKERSVFRl
c3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2spOgoqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaDoKKERSVFRlc3RSdW5uZXIpOgoKQWRkZWQg
c3R1YnMuCiogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHA6CiogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgoqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5l
ck1hYy5tbTogTGF0ZXIgcGF0Y2ggd2lsbCBjb250YWluIGltcGxlbWVudGF0aW9uIG9mIHRoaXMg
QVBJLgoqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6IEFkZGVkIFF0LWJhc2Vk
IHN0dWJzLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKCkxheW91dFRl
c3RzOgoKUmVmYWN0b3IgdGhlIHRlc3RzIHRvIHVzZSB0aGUgcmVuYW1lZCBsZWdhY3kgQVBJIGNh
bGxzLgoKKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9u
Lmh0bWw6CiogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQtZm9j
dXMuaHRtbDoKKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5o
dG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRpc3BsYXktY2xvc2UtZXZl
bnRzLmh0bWw6CiogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xv
c2UtY3Jhc2guaHRtbDoKKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUt
c2hvdy5odG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LXN0b3At
cHJvcGFnYXRpb24uaHRtbC1kaXNhYmxlZDoKKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0
aW9ucy1tdWx0aS1ldmVudHMuaHRtbC1kaXNhYmxlZDoKKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90
aWZpY2F0aW9ucy1uby1pY29uLmh0bWw6CiogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtcmVwbGFjZS5odG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJ0bC5o
dG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5o
dG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGhvdXQtcGVybWlzc2lv
bi5odG1sOgoqIGZhc3Qvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0aW9ucy1jYW5j
ZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWw6CiogcGxhdGZvcm0vcXQtNS4wLXdrMi9Ta2lwcGVk
OgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAyNiArKysrKwogLi4uL25vdGlmaWNhdGlvbnMtY2hlY2stcGVybWlzc2lvbi5odG1sICAg
ICAgICAgICAgfCAgICAyICstCiAuLi4vbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC1mb2N1cy5o
dG1sICAgICAgICAgICB8ICAgIDQgKy0KIC4uLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
Y2xpY2stZXZlbnQuaHRtbCAgIHwgICAgNCArLQogLi4uL25vdGlmaWNhdGlvbnMtZGlzcGxheS1j
bG9zZS1ldmVudHMuaHRtbCAgICAgICAgfCAgICAyICstCiAuLi4vbm90aWZpY2F0aW9ucy1kb2N1
bWVudC1jbG9zZS1jcmFzaC5odG1sICAgICAgICB8ICAgIDIgKy0KIC4uLi9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbnMtZG91YmxlLXNob3cuaHRtbCAgIHwgICAgMiArLQogLi4uaWZpY2F0aW9u
cy1ldmVudC1zdG9wLXByb3BhZ2F0aW9uLmh0bWwtZGlzYWJsZWQgfCAgICAyICstCiAuLi4vbm90
aWZpY2F0aW9ucy1tdWx0aS1ldmVudHMuaHRtbC1kaXNhYmxlZCAgICAgICB8ICAgIDIgKy0KIC4u
Li9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWwgIHwgICAgMiAr
LQogLi4uL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJlcGxhY2UuaHRtbCAgfCAg
ICAyICstCiAuLi4vZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0bWwgICAg
ICB8ICAgIDIgKy0KIC4uLi9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sICAgICAg
ICAgICAgIHwgICAgMiArLQogLi4uL25vdGlmaWNhdGlvbnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0
bWwgICAgICAgICAgfCAgICAyICstCiAuLi4vbm90aWZpY2F0aW9ucy1jYW5jZWwtcmVxdWVzdC1w
ZXJtaXNzaW9uLmh0bWwgICB8ICAgIDIgKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13
azIvU2tpcHBlZCAgICAgICAgICAgIHwgICAgMiArLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ1ICsrKysrKysrKwogVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgICAgICAgICAgICAgICAgfCAgMTA2ICsrKysrKysrKysr
Ky0tLS0tLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggICAgICAgICAgICAg
ICAgICB8ICAgMTYgKystCiAuLi4vYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAg
ICAgICAgICAgICB8ICAgMTggKysrLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
VGVzdFJ1bm5lci5jcHAgICAgfCAgIDI5ICsrKysrLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRFJUVGVzdFJ1bm5lci5oICAgICAgfCAgICA3ICstCiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgICAgICAgICB8ICAgMTggKysrLQogVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwICAgICAgICAgfCAgIDE4ICsrKy0KIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tICAgICAgICAgIHwgICAyMSArKyst
CiBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwICAgICAgICAgICB8ICAg
MjAgKysrLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggICAgICAgICAg
ICAgfCAgIDEwICstCiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAg
ICAgICAgICB8ICAgMTggKysrLQogMjggZmlsZXMgY2hhbmdlZCwgMjk5IGluc2VydGlvbnMoKyks
IDg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NmMwNGIyLi5jM2M0NmE0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjkgQEAKKzIwMTItMDgtMjQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAg
ICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciB0aGUgdGVzdHMgdG8gdXNl
IHRoZSByZW5hbWVkIGxlZ2FjeSBBUEkgY2FsbHMuCisKKyAgICAgICAgKiBmYXN0L25vdGlmaWNh
dGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQtZm9jdXMuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1s
OgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRpc3BsYXktY2xv
c2UtZXZlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LXN0b3AtcHJvcGFnYXRpb24uaHRtbC1kaXNhYmxl
ZDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1tdWx0aS1ldmVu
dHMuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0
aW9ucy1uby1pY29uLmh0bWw6CisgICAgICAgICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbnMtcmVwbGFjZS5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmlj
YXRpb25zLXJ0bC5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLXdpdGgtcGVybWlzc2lvbi5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb25zLXdpdGhvdXQtcGVybWlzc2lvbi5odG1sOgorICAgICAgICAqIGZhc3Qvbm90
aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0aW9ucy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNz
aW9uLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vcXQtNS4wLXdrMi9Ta2lwcGVkOgorCiAyMDEy
LTA1LTI1ICBBbm5hIENhdmVuZGVyIDxhbm5hY2NAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gUmVtb3ZpbmcgbWVkaWEvdHJhY2svdHJhY2stbW9kZS5odG1sIC0gcmVzb2x2ZWQu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
cy1jaGVjay1wZXJtaXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0bWwKaW5kZXggNTkxYmM5MS4uYzg5Mzg1
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtY2hlY2stcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLWNoZWNrLXBlcm1pc3Npb24uaHRtbApAQCAtMjUsNyArMjUsNyBA
QAogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgICAgICBOID0gd2luZG93LndlYmtpdE5vdGlmaWNhdGlv
bnMuY2hlY2tQZXJtaXNzaW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlm
aWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC1mb2N1cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQtZm9jdXMuaHRt
bAppbmRleCBjZWVlMTk1Li5iYjM5YTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25v
dGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC1mb2N1cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50LWZv
Y3VzLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZp
bGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKQEAgLTMyLDcgKzMy
LDcgQEAKICAgICAgICAgICAgIE4uc2hvdygpOwogCiAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNpbXVsYXRlRGVza3RvcE5v
dGlmaWNhdGlvbkNsaWNrKCJOZXcgRS1tYWlsIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKCJOZXcgRS1tYWlsIik7CiAgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmlj
YXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sCmluZGV4IDBlZTdmZDkuLjU4MzZhNWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNs
aWNrLWV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlm
aWNhdGlvbnMtY2xpY2stZXZlbnQuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICBmdW5j
dGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3Jh
bnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CiAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9CkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgICAg
ICBOLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbG9nKCJQQVNTOiBjbGljayBldmVudCBmaXJlZC4i
KTsgTi5jYW5jZWwoKTsgIH0KICAgICAgICAgICAgIE4uc2hvdygpOwogICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zaW11bGF0
ZURlc2t0b3BOb3RpZmljYXRpb25DbGljaygiTmV3IEUtbWFpbCIpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljaygiTmV3IEUtbWFp
bCIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1kaXNwbGF5LWNsb3NlLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZGlzcGxheS1jbG9zZS1ldmVudHMuaHRt
bAppbmRleCA3OTRjYTQ0Li4zMTQ3MDQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25v
dGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kaXNwbGF5LWNsb3NlLWV2ZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRpc3BsYXktY2xv
c2UtZXZlbnRzLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Np
b24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRvY3VtZW50LWNsb3NlLWNyYXNoLmh0
bWwKaW5kZXggN2IzYmEyZC4uNTY5YWNhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb2N1bWVudC1j
bG9zZS1jcmFzaC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAgICAgICAgICAgew0KICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOw0KLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdy
YW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsNCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8i
KTsNCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7DQogICAgICAg
ICAgICAgfQ0KICAgICAgICAgICAgIA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRvdWJsZS1zaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1sCmluZGV4IDhj
NmY3YmMuLjViMGNhM2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRvdWJsZS1zaG93Lmh0bWwKQEAgLTEwLDcgKzEw
LDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdy
YW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIp
OwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZXZlbnQtc3Rv
cC1wcm9wYWdhdGlvbi5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtZXZlbnQtc3RvcC1wcm9wYWdhdGlvbi5odG1sLWRpc2FibGVkCmlu
ZGV4IDRlZGI4ZjkuLjJkOGQwNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LXN0b3AtcHJvcGFnYXRpb24uaHRtbC1kaXNhYmxl
ZAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1ldmVu
dC1zdG9wLXByb3BhZ2F0aW9uLmh0bWwtZGlzYWJsZWQKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1tdWx0aS1l
dmVudHMuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3Rp
ZmljYXRpb25zLW11bHRpLWV2ZW50cy5odG1sLWRpc2FibGVkCmluZGV4IDMyNzBmMjMuLjcyNDQ4
MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLW11bHRpLWV2ZW50cy5odG1sLWRpc2FibGVkCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW11bHRpLWV2ZW50cy5odG1sLWRpc2FibGVkCkBAIC0x
MCw3ICsxMCw3IEBACiAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZp
bGU6Ly8iKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25v
dGlmaWNhdGlvbnMtbm8taWNvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbnMtbm8taWNvbi5odG1sCmluZGV4IGIwNjI5NDMuLjQ4OWI3ZjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW5vLWlj
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
cy1uby1pY29uLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Np
b24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1yZXBsYWNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1yZXBsYWNlLmh0bWwKaW5kZXggMjRi
OWNlZC4uZTNjZGFmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbnMtcmVwbGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLXJlcGxhY2UuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnREZXNrdG9w
Tm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CiAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJ0bC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0
bWwKaW5kZXggNmFiZGY2OC4uYzRmZGUzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVz
a3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy13
aXRoLXBlcm1pc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3Rp
ZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sCmluZGV4IDU0MTYxYTQuLmUwZWEzZTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdp
dGgtcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sCkBAIC0xMCw3ICsxMCw3IEBACiAgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudERlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGhvdXQtcGVybWlzc2lvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0aG91
dC1wZXJtaXNzaW9uLmh0bWwKaW5kZXggNjU0YTI5NC4uNDBhZTY1YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0aG91dC1wZXJtaXNz
aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVu
Y3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgICAgICAgICAvLyBOTyBQRVJNSVNTSU9OIHRlc3RSdW5uZXIuZ3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAgICAgICAg
ICAgIC8vIE5PIFBFUk1JU1NJT04gdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb24oImZpbGU6Ly8iKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmlj
YXRpb25zL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0
aW9ucy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWwKaW5kZXggN2I0Y2I0Yy4uNDM4OTdj
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9u
b3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvcmVzb3VyY2VzL25vdGlmaWNhdGlvbnMtY2FuY2VsLXJl
cXVlc3QtcGVybWlzc2lvbi5odG1sCkBAIC0xMyw3ICsxMyw3IEBACiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuaWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXROb3RpZmljYXRpb25zLnJlcXVlc3RQZXJtaXNzaW9uKApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQtNS4wLXdrMi9Ta2lwcGVkCmluZGV4IGNlYWI2OWEuLmNkNTVjOWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC01LjAtd2syL1NraXBwZWQKQEAgLTE0MSw3ICsxNDEsNyBAQCBmYXN0L3RleHQv
Zm9ybWF0LWNvbnRyb2wuaHRtbAogZmFzdC91cmwvYW5jaG9yLmh0bWwKIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1ub24tYXNjaWkuaHRtbAogCi0j
IGxheW91dFRlc3RDb250cm9sbGVyLmlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdHMgaXMgdW5pbXBsZW1lbnRlZAorIyBsYXlvdXRUZXN0Q29udHJvbGxlci5pZ25vcmVM
ZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMgaXMgdW5pbXBsZW1lbnRlZAog
ZmFzdC9ub3RpZmljYXRpb25zCiAKICMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U2Nyb2xsYmFy
UG9saWN5IGlzIHVuaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBiODJiZTc2Li5iZjA4MjdlIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDgt
MjQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBX
ZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIG9mIHRoZSBsZWdhY3kgQVBJcyBhcmUgbGVzcyB0aGFuIGlkZWFs
LCBhbmQgbm90IHRlbmFibGUgd2l0aCB0aGUgV1RSIGluZnJhc3RydWN0dXJlLgorICAgICAgICBU
aGlzIGZpcnN0IHBhdGNoIHJlbmFtZXMgdGhlIFRlc3RSdW5uZXIgY2FsbHMgdG8gdXNlIHRoZSB0
ZXJtICJ3ZWIgbm90aWZpY2F0aW9ucyIgaW5zdGVhZCBvZgorICAgICAgICAiZGVza3RvcCBub3Rp
ZmljYXRpb25zIiwgZGVwcmVjYXRlcyBhIGNvdXBsZSBBUEkgY2FsbHMgdGhhdCBhcmUgbm90IHVz
ZWQgYnkgYW55b25lLCBhbmQgYWRkcworICAgICAgICBhZGRpdGlvbmFsIGNhbGxzIHRoYXQgd2ls
bCBiZSB1c2VkIGluIHRoZSB0ZXN0cyB0aGF0IHRlc3QgdGhlIHN0YW5kYXJkIEFQSS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIp
OiBGb3IgbmFtaW5nIGNvbnNpc3RlbmN5LCByZW5hbWUgYSBjb3VwbGUgbWVtYmVyIHZhcmlhYmxl
cy4gUmVtb3ZlIHVudXNlZCBjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCkKKyAg
ICAgICAgYW5kIGFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVk
KCkuIFJlbW92ZSBvcmlnaW4gbWFwcGluZyBzaW5jZSBlYWNoIHBvcnQgaW1wbGVtZW50cyBpdHMg
b3duIHNvbHV0aW9uLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOiBQ
dXNoIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigpIHRvIGluZGl2aWR1YWwgcG9ydHMu
CisgICAgICAgIChUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKGlnbm9yZUxlZ2Fj
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0NhbGxiYWNrKTogUmVuYW1lZC4KKyAg
ICAgICAgKHNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayk6IFJlbmFt
ZWQuCisgICAgICAgIChncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjayk6IFJl
bmFtZWQuCisgICAgICAgIChkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKTog
QWRkZWQuCisgICAgICAgIChyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uc0NhbGxi
YWNrKTogQWRkZWQuCisgICAgICAgIChzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrQ2FsbGJh
Y2spOiBBZGRlZC4KKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAg
ICAgIChUZXN0UnVubmVyOjppZ25vcmVMZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHMpOgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKTogQWRkZWQgYmlu
ZGluZ3MgZm9yIG5ldyBBUElzLgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OmRlbnlXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKTogU3R1Yi4KKyAgICAgICAgKERSVFRlc3RSdW5uZXI6OnJlbW92
ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKTogU3R1Yi4KKyAgICAgICAgKERSVFRlc3RS
dW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2spOiBTdHViLgorICAgICAgICAoRFJU
VGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oOgorICAgICAgICAoRFJU
VGVzdFJ1bm5lcik6CisKKyAgICAgICAgQWRkZWQgc3R1YnMuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbTogTGF0ZXIgcGF0Y2ggd2lsbCBjb250YWluIGltcGxlbWVudGF0aW9u
IG9mIHRoaXMgQVBJLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHA6IEFkZGVkIFF0LWJhc2VkIHN0dWJzLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcDoKKwogMjAxMi0wOC0yMyAgV2VpIEppYSAgPHdqaWFAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIGNyZWF0ZSBkaWZmZXJlbnQgV2ViS2l0OjpXZWJNZWRpYVBsYXllciBi
YXNlZCBvbiBVUkwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjI5YmYwNi4u
ZDVlNzk5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVS
TCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGUKICAgICAsIG1fdXNlRGVmZXJyZWRGcmFtZUxvYWRp
bmcoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2UodHJ1ZSkKICAgICAsIG1f
c2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoZmFsc2UpCi0gICAgLCBt
X2FyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVkKGZhbHNlKQor
ICAgICwgbV9hcmVMZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNJZ25vcmVk
KGZhbHNlKQogICAgICwgbV9jdXN0b21GdWxsU2NyZWVuQmVoYXZpb3IoZmFsc2UpIAogICAgICwg
bV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRoT3JVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNo
KGV4cGVjdGVkUGl4ZWxIYXNoKQpAQCAtNjQ4LDE5ICs2NDgsNiBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBnb0JhY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTTwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAot
c3RhdGljIEpTVmFsdWVSZWYgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICAvLyBIYXMgV2luZG93cyBp
bXBsZW1lbnRhdGlvbgotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOwotCi0gICAgY29udHJvbGxlci0+Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlz
c2lvbihKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgTlVMTCkpOwot
ICAgICAgICAKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0K
IHN0YXRpYyBKU1ZhbHVlUmVmIGlzQ29tbWFuZEVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIE1hYyBpbXBsZW1lbnRhdGlvbi4KQEAgLTIx
MzQsMTggKzIxMjEsMTggQEAgc3RhdGljIGJvb2wgc2V0R2xvYmFsRmxhZ0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LAogICAgIHJldHVybiB0cnVl
OwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBpZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGlj
IEpTVmFsdWVSZWYgaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Rz
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFRlc3RSdW5uZXIq
IGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzKCk7CisgICAgY29udHJvbGxlci0+aWdub3JlTGVnYWN5V2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzaW11bGF0ZURlc2t0b3BO
b3RpZmljYXRpb25DbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0
YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOyAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gdGl0bGUoQWRvcHQsIEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKLSAgICBj
b250cm9sbGVyLT5zaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayh0aXRsZS5nZXQoKSk7
CisgICAgY29udHJvbGxlci0+c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayh0aXRs
ZS5nZXQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQog
CkBAIC0yMjAwLDYgKzIxODcsNTkgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U3RvcmFnZURhdGFi
YXNlSWRsZUludGVydmFsQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEoKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVm
IGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIFRlc3RSdW5uZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNP
YmplY3QpKTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBvcmlnaW4oQWRvcHQsIEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAg
ICBBU1NFUlQoISpleGNlcHRpb24pOworICAgIGNvbnRyb2xsZXItPmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbihvcmlnaW4uZ2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworfQorCisKK3N0YXRpYyBKU1ZhbHVlUmVmIGRlbnlXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworCisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworCisgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9yaWdpbihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2Vw
dGlvbik7CisgICAgY29udHJvbGxlci0+ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24ob3Jp
Z2luLmdldCgpKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
K30KKworCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBUZXN0UnVu
bmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9ucygpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworfQorCisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9u
Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgLy8gSGFz
IFdpbmRvd3MgaW1wbGVtZW50YXRpb24KKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKworICAgIGNvbnRyb2xsZXItPnNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2soYXJndW1lbnRzWzBdKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFJ1bm5lck9iamVjdEZpbmFsaXplKEpT
T2JqZWN0UmVmIG9iamVjdCkKIHsKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKQEAgLTIzMDIs
OCArMjM0Miw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9u
cygpCiAgICAgICAgIHsgImZpbmRTdHJpbmciLCBmaW5kU3RyaW5nQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAib3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlIiwgb3JpZ2luc1dpdGhBcHBs
aWNhdGlvbkNhY2hlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZ29CYWNrIiwgZ29CYWNr
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwgCi0gICAgICAgIHsgImdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBl
cm1pc3Npb24iLCBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwgCi0gICAgICAgIHsgImlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHMiLCBpZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKKyAgICAgICAgeyAiaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RzIiwgaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiaXNDb21tYW5kRW5hYmxlZCIsIGlzQ29t
bWFuZEVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJrZWVwV2ViSGlzdG9yeSIs
IGtlZXBXZWJIaXN0b3J5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAibGF5ZXJUcmVlQXNU
ZXh0IiwgbGF5ZXJUcmVlQXNUZXh0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTIzOTIsNyArMjQzMSw3
IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAg
ICAgIHsgInNldFhTU0F1ZGl0b3JFbmFibGVkIiwgc2V0WFNTQXVkaXRvckVuYWJsZWRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCIsIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2hvd1dlYkluc3BlY3RvciIsIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAotICAgICAgICB7ICJzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayIsIHNp
bXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAic2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayIsIHNpbXVsYXRlTGVnYWN5V2Vi
Tm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0T25zY3Jl
ZW4iLCB0ZXN0T25zY3JlZW5DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0UmVwYWlu
dCIsIHRlc3RSZXBhaW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAid2FpdEZvclBvbGlj
eURlbGVnYXRlIiwgd2FpdEZvclBvbGljeURlbGVnYXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTI0
MTcsNiArMjQ1NiwxMCBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5j
dGlvbnMoKQogICAgICAgICB7ICJwcmVjaXNlVGltZSIsIHByZWNpc2VUaW1lQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yIiwgc2V0SGFz
Q3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
U3RvcmFnZURhdGFiYXNlSWRsZUludGVydmFsIiwgc2V0U3RvcmFnZURhdGFiYXNlSWRsZUludGVy
dmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uIiwgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
KyAgICAgICAgeyAiZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBkZW55V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zIiwgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzaW11bGF0ZVdlYk5vdGlmaWNhdGlv
bkNsaWNrIiwgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgMCwgMCwgMCB9CiAgICAgfTsKIApAQCAtMjQ1OCwyNiArMjUwMSw5IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6cXVldWVSZWxvYWQoKQogICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnF1ZXVl
KG5ldyBSZWxvYWRJdGVtKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpncmFudERlc2t0b3BOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKLXsKLSAgICBtX2Rlc2t0b3BO
b3RpZmljYXRpb25BbGxvd2VkT3JpZ2lucy5wdXNoX2JhY2soSlNTdHJpbmdSZXRhaW4ob3JpZ2lu
KSk7Ci19Ci0KLWJvb2wgVGVzdFJ1bm5lcjo6Y2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlz
c2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCi17Ci0gICAgc3RkOjp2ZWN0b3I8SlNTdHJpbmdSZWY+
OjppdGVyYXRvciBpOwotICAgIGZvciAoaSA9IG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93ZWRP
cmlnaW5zLmJlZ2luKCk7Ci0gICAgICAgICBpICE9IG1fZGVza3RvcE5vdGlmaWNhdGlvbkFsbG93
ZWRPcmlnaW5zLmVuZCgpOwotICAgICAgICAgKytpKSB7Ci0gICAgICAgIGlmIChKU1N0cmluZ0lz
RXF1YWwoKmksIG9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFRlc3RSdW5uZXI6Omlnbm9yZURlc2t0b3BOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQordm9pZCBUZXN0UnVubmVyOjppZ25vcmVMZWdhY3lX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoKQogewotICAgIG1fYXJlRGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQgPSBmYWxzZTsKKyAgICBtX2FyZUxl
Z2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQgPSBmYWxzZTsKIH0K
IAogdm9pZCBUZXN0UnVubmVyOjp3YWl0VG9EdW1wV2F0Y2hkb2dUaW1lckZpcmVkKCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA4ODViMWRlLi44OWViOTM1IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5oCkBAIC0xMzYsMTEgKzEzNiwxMiBAQCBwdWJsaWM6CiAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2
b2lkIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2lu
KTsKLSAgICBib29sIGNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdS
ZWYgb3JpZ2luKTsKLSAgICB2b2lkIGlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdHMoKTsKLSAgICBib29sIGFyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdHNJZ25vcmVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzSWdub3JlZDsgfQotICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9wTm90aWZp
Y2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpOworICAgIHZvaWQgaWdub3JlTGVnYWN5V2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBzaW11bGF0ZUxlZ2Fj
eVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKTsKKyAgICB2b2lkIGdyYW50
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQg
ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2
b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CisgICAgdm9pZCBzaW11
bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKIAogICAg
IGJvb2wgZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkKEpTU3RyaW5nUmVm
IGlkKTsKIApAQCAtNDE3LDcgKzQxOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZURlZmVy
cmVkRnJhbWVMb2FkaW5nOwogICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbkltYWdlOwogICAg
IGJvb2wgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsKLSAgICBi
b29sIG1fYXJlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7Cisg
ICAgYm9vbCBtX2FyZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9y
ZWQ7CiAgICAgYm9vbCBtX2N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIHN0ZDo6c3Ry
aW5nIG1fYXV0aGVudGljYXRpb25Vc2VybmFtZTsKQEAgLTQzMCw5ICs0MzEsNiBAQCBwcml2YXRl
OgogICAgIAogICAgIC8vIGJhc2U2NCBlbmNvZGVkIFdBViBhdWRpbyBkYXRhIGlzIHN0b3JlZCBo
ZXJlLgogICAgIHN0ZDo6c3RyaW5nIG1fZW5jb2RlZEF1ZGlvRGF0YTsKLSAgICAKLSAgICAvLyBv
cmlnaW5zIHdoaWNoIGhhdmUgYmVlbiBncmFudGVkIGRlc2t0b3Agbm90aWZpY2F0aW9uIGFjY2Vz
cwotICAgIHN0ZDo6dmVjdG9yPEpTU3RyaW5nUmVmPiBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxv
d2VkT3JpZ2luczsKIAogICAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gbV9V
UkxzVG9SZWRpcmVjdDsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggZjYzOTVmYi4uNjA3NDYx
NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0
UnVubmVyQmxhY2tCZXJyeS5jcHAKQEAgLTgxOCw3ICs4MTgsMjMgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRNb2NrU3BlZWNoSW5wdXREdW1wUmVjdChib29sKQogewogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQor
dm9pZCBUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdS
ZWYgb3JpZ2luKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKEpTU3RyaW5nUmVmIGpzT3JpZ2luKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6
OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCkKK3sKK30KKwordm9pZCBUZXN0
UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYganNOb3RpZmlj
YXRpb24pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmlj
YXRpb25DbGljayhKU1N0cmluZ1JlZiB0aXRsZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcAppbmRleCBiYmM5ZjliLi5mOTM3Y2Fk
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNw
cApAQCAtMTU1LDcgKzE1NSwxMCBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RT
aGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZXhlY0NvbW1hbmQiLCAmRFJUVGVzdFJ1bm5l
cjo6ZXhlY0NvbW1hbmQpOwogICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0aW9uQ29sb3Jz
IiwgJkRSVFRlc3RSdW5uZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKLSAgICBiaW5kTWV0aG9kKCJncmFudERlc2t0b3BOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uIiwgJkRSVFRlc3RSdW5uZXI6OmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1p
c3Npb24pOworICAgIGJpbmRNZXRob2QoImdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbiIs
ICZEUlRUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOworICAgIGJp
bmRNZXRob2QoImRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkRSVFRlc3RSdW5uZXI6
OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKTsKKyAgICBiaW5kTWV0aG9kKCJyZW1vdmVB
bGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyIsICZEUlRUZXN0UnVubmVyOjpyZW1vdmVBbGxX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyk7CisgICAgYmluZE1ldGhvZCgic2ltdWxhdGVXZWJO
b3RpZmljYXRpb25DbGljayIsICZEUlRUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlv
bkNsaWNrKTsKICNlbmRpZgogICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmRFJUVGVzdFJ1
bm5lcjo6ZmluZFN0cmluZyk7CiAgICAgYmluZE1ldGhvZCgiaXNDb21tYW5kRW5hYmxlZCIsICZE
UlRUZXN0UnVubmVyOjppc0NvbW1hbmRFbmFibGVkKTsKQEAgLTIzMyw3ICsyMzYsNyBAQCBEUlRU
ZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhv
ZCgic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmRFJUVGVzdFJ1bm5lcjo6
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNo
b3dXZWJJbnNwZWN0b3IiLCAmRFJUVGVzdFJ1bm5lcjo6c2hvd1dlYkluc3BlY3Rvcik7CiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgYmluZE1ldGhvZCgic2ltdWxhdGVEZXNrdG9wTm90
aWZpY2F0aW9uQ2xpY2siLCAmRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0
aW9uQ2xpY2spOworICAgIGJpbmRNZXRob2QoInNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9u
Q2xpY2siLCAmRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGlj
ayk7CiAjZW5kaWYKICAgICBiaW5kTWV0aG9kKCJzdGFydFNwZWVjaElucHV0IiwgJkRSVFRlc3RS
dW5uZXI6OnN0YXJ0U3BlZWNoSW5wdXQpOwogICAgIGJpbmRNZXRob2QoInRlc3RSZXBhaW50Iiwg
JkRSVFRlc3RSdW5uZXI6OnRlc3RSZXBhaW50KTsKQEAgLTExNzgsNyArMTE4MSw3IEBAIHZvaWQg
RFJUVGVzdFJ1bm5lcjo6Y2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqCiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQg
RFJUVGVzdFJ1bm5lcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBEUlRU
ZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1l
bnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgewogICAgICAgICBy
ZXN1bHQtPnNldChmYWxzZSk7CkBAIC0xMTkwLDcgKzExOTMsMjUgQEAgdm9pZCBEUlRUZXN0UnVu
bmVyOjpncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXIKICAgICByZXN1bHQtPnNldCh0cnVlKTsKIH0KIAotdm9pZCBEUlRUZXN0UnVubmVy
OjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBEUlRUZXN0UnVubmVyOjpkZW55
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAg
cmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgRFJUVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJl
c3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90
aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJlc3VsdC0+c2V0
TnVsbCgpOworfQorCit2b2lkIERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90aWZp
Y2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNb
MF0uaXNTdHJpbmcoKSkgewogICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZTljMDE3MS4uMmZm
ZmQ1OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aApAQCAtMjM0LDkgKzIzNCwxMiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykKICAgICAvLyBHcmFudHMgcGVybWlzc2lvbiBmb3IgZGVza3RvcCBub3RpZmljYXRpb25zIHRv
IGFuIG9yaWdpbgotICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBncmFudFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZv
aWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgLy8gU2ltdWxhdGVzIGEgY2xpY2sgb24gYSBkZXNrdG9wIG5vdGlm
aWNhdGlvbi4KLSAgICB2b2lkIHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNpbXVsYXRlTGVnYWN5
V2ViTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogI2VuZGlmCiAKICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDFiMWRjYTMuLjhiOTEwODAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTg4MCw3ICs4
ODAsMjMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IoZG91YmxlKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNr
dG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCit2b2lkIFRlc3RSdW5uZXI6
OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCit7Cit9
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJp
bmdSZWYganNPcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRl
V2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKK3sKK30KKwor
dm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTU3Ry
aW5nUmVmIHRpdGxlKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5l
ckd0ay5jcHAKaW5kZXggNDE1NzVkNy4uODQ4Zjc4YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9UZXN0UnVubmVyR3RrLmNwcApAQCAtOTY3LDcgKzk2NywyMyBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldEJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUpCiB7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCit2
b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1Jl
ZiBvcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBl
cm1pc3Npb24oSlNTdHJpbmdSZWYganNPcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6
cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBqc05vdGlmaWNh
dGlvbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNh
dGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDFkN2RlODUuLmIzNmE4YWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC0xMTYzLDkgKzExNjMsOCBAQCB2
b2lkIFRlc3RSdW5uZXI6OnNldEJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUgYmFja2luZ1NjYWxl
RmFjdG9yKQogICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIF9zZXRDdXN0b21CYWNraW5nU2NhbGVG
YWN0b3I6YmFja2luZ1NjYWxlRmFjdG9yXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0
ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiB0aXRsZSkKK3ZvaWQgVGVzdFJ1
bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiBqc1Rp
dGxlKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6
cmVzZXRQYWdlVmlzaWJpbGl0eSgpCkBAIC0xMTg3LDMgKzExODYsMjEgQEAgdm9pZCBUZXN0UnVu
bmVyOjpkZWxpdmVyV2ViSW50ZW50KEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdS
ZWYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KKworCit2b2lkIFRlc3RSdW5uZXI6
OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0
cmluZ1JlZiBqc09yaWdpbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9ucygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworfQor
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBmMzVmZTI2Li41
ZTM2MjRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTIw
MiwyNCArMjAyLDM0IEBAIGludCBUZXN0UnVubmVyOjp3aW5kb3dDb3VudCgpCiAgICAgcmV0dXJu
IG1fZHJ0LT53aW5kb3dDb3VudCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmdyYW50RGVza3Rv
cE5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQordm9pZCBUZXN0
UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3Jp
Z2luKQogewogICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJh
bWUoKTsKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXRGZWF0dXJlUGVybWlzc2lvbihmcmFtZSwg
UVdlYlBhZ2U6Ok5vdGlmaWNhdGlvbnMsIFFXZWJQYWdlOjpQZXJtaXNzaW9uR3JhbnRlZEJ5VXNl
cik7CiAgICAgbV9kZXNrdG9wTm90aWZpY2F0aW9uQWxsb3dlZE9yaWdpbnMuYXBwZW5kKG9yaWdp
bik7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6aWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0cygpCit2b2lkIFRlc3RSdW5uZXI6Omlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cygpCiB7CiAgICAgbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0
aW9uID0gdHJ1ZTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRp
b25QZXJtaXNzaW9uKGNvbnN0IFFTdHJpbmcmIG9yaWdpbikKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVu
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQogewotICAg
IHJldHVybiAhbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uICYmIG1fZGVza3RvcE5vdGlmaWNh
dGlvbkFsbG93ZWRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbik7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudC4KIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25D
bGljayhjb25zdCBRU3RyaW5nJiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBR
V2ViRWxlbWVudCYgbm90aWZpY2F0aW9uKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9
CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhj
b25zdCBRU3RyaW5nJiB0aXRsZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2lt
dWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2sodGl0bGUpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCA1MmQ1MTJjLi4zNmQ5ZDFiIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTM0LDEwICsxMzQsMTIgQEAgcHVibGljIFFf
U0xPVFM6CiAgICAgdm9pZCBwcm92aXNpb25hbExvYWQoKTsKICAgICB2b2lkIHNldENsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sID0gZmFsc2UpIHsgfQogICAgIGludCB3aW5k
b3dDb3VudCgpOwotICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihj
b25zdCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgaWdub3JlRGVza3RvcE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpOwotICAgIGJvb2wgY2hlY2tEZXNrdG9wTm90aWZpY2F0aW9u
UGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgc2ltdWxhdGVEZXNr
dG9wTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgaWdu
b3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBz
aW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpdGxlKTsK
KyAgICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBv
cmlnaW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0
cmluZyYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFXZWJF
bGVtZW50Jik7CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0
ZWRSZWdpb24oKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggYTJjMTVlMy4uNTMwMjYwYiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtMTQzNCw3
ICsxNDM0LDIzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGRvdWJs
ZSkKIHsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25D
bGljayhKU1N0cmluZ1JlZiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikK
K3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25D
bGljayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6
OnNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCiB7
CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KLS0gCjEuNy4xMC4yIChBcHBsZSBHaXQtMzMp
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160657</attachid>
            <date>2012-08-27 01:28:24 -0700</date>
            <delta_ts>2012-08-27 02:08:53 -0700</delta_ts>
            <desc>2/9 - Add SPI to retrieve internal IDs for notifications</desc>
            <filename>0002-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>18365</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA0YjQxNzA5YzJjNjE2ZDM4ZWU4NDc0MWM0YWJiZDMxOTBkMmU1MDFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBGcmks
IDI0IEF1ZyAyMDEyIDEwOjQxOjIzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYkNvcmU6
CgpFeHBvc2UgZnVuY3Rpb25zIHRvIGNvbnZlcnQgSlNWYWx1ZSB0byBOb3RpZmljYXRpb24sIGFu
ZCB0byBnZXQgdGhlIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIgZnJvbSBhIHBhZ2UuCgoqIFdlYkNv
cmUuZXhwLmluOgoqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUHJvbW90ZSBO
b3RpZmljYXRpb25Db250cm9sbGVyLmggYW5kIEpTTm90aWZpY2F0aW9uLmggdG8gcHJpdmF0ZSBo
ZWFkZXJzLgoKU291cmNlL1dlYktpdC9tYWM6CgpBZGQgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhl
IGludGVybmFsIElEIGZvciBhIG5vdGlmaWNhdGlvbi4gVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9y
dCBzaW11bGF0aW5nCmEgdXNlciBjbGljayBvbiBhIG5vdGlmaWNhdGlvbiwgZm9yIGxheW91dCB0
ZXN0cy4KCiogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6CihXZWJOb3Rp
ZmljYXRpb25DbGllbnQpOgoqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5t
bToKKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKToKKiBX
ZWJWaWV3L1dlYlZpZXcubW06CigtW1dlYlZpZXcgX25vdGlmaWNhdGlvbklERm9yVGVzdGluZzpd
KToKKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6CgpTb3VyY2UvV2ViS2l0MjoKCkFkZCBmdW5j
dGlvbiB0byByZXRyaWV2ZSB0aGUgaW50ZXJuYWwgSUQgZm9yIGEgbm90aWZpY2F0aW9uLiBUaGlz
IGlzIG5lZWRlZCB0byBzdXBwb3J0IHNpbXVsYXRpbmcKYSB1c2VyIGNsaWNrIG9uIGEgbm90aWZp
Y2F0aW9uLCBmb3IgbGF5b3V0IHRlc3RzLgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlLmNwcDoKKFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQpOiBDYWxscyBp
bnRvIG5vdGlmaWNhdGlvbiBtYW5hZ2VyIHRvIGdldCBpbnRlcm5hbCBJRC4KKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOiBBZGQgV0tCdW5kbGVHZXRX
ZWJOb3RpZmljYXRpb25JRCgpIHRvIGJlIGFibGUKcmV0cmlldmUgbm90aWZpY2F0aW9uIElELgoq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgooV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQpOgooV2ViS2l0KToKKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CihJbmplY3RlZEJ1bmRsZSk6CiogV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgooV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcpOgooV2Vi
S2l0KToKKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5o
OgooV2ViTm90aWZpY2F0aW9uTWFuYWdlcik6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArKwogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qICAgfCAgICA0ICstLQog
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5
ICsrKysrKysrKysrKysrCiAuLi4vbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oICAgICB8ICAgIDUgKysrKwogLi4uL21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmlj
YXRpb25DbGllbnQubW0gICAgfCAgIDEwICsrKysrKysrCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gICAgICAgICAgICAgICB8ICAgMTAgKysrKysrKysKIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAgICAgICAgIHwgICAgMiArKwogU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysr
KysrKysrKysrKysrKysrCiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZS5jcHAgICB8ICAgIDYgKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVByaXZhdGUuaCAgICAgICAgIHwgICAgMiArKwogLi4uL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwICAgfCAgICA5ICsrKysrKysKIC4uLi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggICAgIHwgICAgMSArCiAuLi4vTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCAgICAgICB8ICAgMTEgKysrKysrKysrCiAu
Li4vTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggICAgICAgICB8ICAgIDMg
KysrCiAxNSBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNDNmN2Y2Ni4uYzJiNGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEyLTA4LTI0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBX
b3JrIHRvd2FyZHMgV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBub3RpZmljYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk2OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIGZ1bmN0aW9ucyB0byBjb252ZXJ0IEpT
VmFsdWUgdG8gTm90aWZpY2F0aW9uLCBhbmQgdG8gZ2V0IHRoZSBOb3RpZmljYXRpb25Db250cm9s
bGVyIGZyb20gYSBwYWdlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBQcm9tb3RlIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuaCBhbmQgSlNOb3RpZmljYXRpb24uaCB0byBwcml2YXRlIGhlYWRlcnMuCisKIDIw
MTItMDgtMjMgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBSZW5hbWUgTGF5ZXJSZW5kZXJlckNocm9taXVtIHRvIEdMLXNwZWNpZmlj
IG5hbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZGQ2NzdmZC4uYmVhMTRkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTIzMjMsNyArMjMyMyw5IEBAIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0
aW9uMTdkaXNwYXRjaFNob3dFdmVudEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlz
cGF0Y2hDbGlja0V2ZW50RXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaENs
b3NlRXZlbnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xOGRpc3BhdGNoRXJyb3JFdmVu
dEV2CitfX1pON1dlYkNvcmUxNHRvTm90aWZpY2F0aW9uRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dl
YkNvcmUxOXByb3ZpZGVOb3RpZmljYXRpb25FUE5TXzRQYWdlRVBOU18xOE5vdGlmaWNhdGlvbkNs
aWVudEUKK19fWk43V2ViQ29yZTIyTm90aWZpY2F0aW9uQ29udHJvbGxlcjEwY2xpZW50RnJvbUVQ
TlNfNFBhZ2VFCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1YmM4
NzAuLjJiYjNhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTg3MSw3ICs4NzEsNyBAQAogCQkzMTI4OEU3NDBFMzAwNUQ2MDAz
NjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU3MDBFMzAwNUQ2MDAzNjE5QUUgLyogV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CiAJCTMxMjg4RTc1MEUzMDA1RDYwMDM2MTlB
RSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU3MTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5oICovOyB9OwogCQkzMTI4Q0E2ODE0NzMzMTUyMDA3NEM3MkEgLyogTm90
aWZpY2F0aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTI4Q0E2NzE0NzMzMTUyMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5jcHAgKi87IH07Ci0JCTMxMjhDQTZCMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmlj
YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTI4Q0E2QTE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29udHJvbGxl
ci5oICovOyB9OworCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEgLyogTm90aWZpY2F0aW9uQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzEyOENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTJDMEM0MTE0
NkRDNkNDMDAxNkM5MTEgLyogTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzNGNzA0RjBGQjQ5Q0EyMDA4RTEyQTYgLyogTm90aWZp
Y2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzEyRDY3QjExNTM1NjkxRjAwNTYzRDBEIC8qIERpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyRDY3QjAxNTM1NjkxRjAwNTYz
RDBEIC8qIERpY3Rpb25hcnkuY3BwICovOyB9OwogCQkzMTMxM0Y2NTE0NDNCMzVGMDA2RTJBOTAg
LyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzEzMTNGNjMxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVj
dFJlbmRlcmVyLmNwcCAqLzsgfTsKQEAgLTk1Myw3ICs5NTMsNyBAQAogCQkzMzE0QUNFQzEwODky
MDg2MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE0QUNFQTEwODkyMDg2MDAwRjBFNTYgLyogSlNFeGNl
cHRpb25CYXNlLmggKi87IH07CiAJCTMzNTAzQzlBMTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmlj
YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMzNTAzQzk5MTAxNzlBNzQwMDNCNDdFMSAvKiBOb3RpZmljYXRpb25DbGllbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMzUwM0NBMzEw
MTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDOUYxMDE3OUFENzAwM0I0N0UxIC8qIEpT
Tm90aWZpY2F0aW9uLmNwcCAqLzsgfTsKLQkJMzM1MDNDQTQxMDE3OUFENzAwM0I0N0UxIC8qIEpT
Tm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMzUwM0NBMDEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb24uaCAqLzsgfTsK
KwkJMzM1MDNDQTQxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzUwM0NBMDEwMTc5QUQ3MDAz
QjQ3RTEgLyogSlNOb3RpZmljYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkzMzUwM0NBNTEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmlj
YXRpb25DZW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzM1MDNDQTExMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uQ2VudGVyLmNw
cCAqLzsgfTsKIAkJMzM1MDNDQTYxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uQ2Vu
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzUw
M0NBMjEwMTc5QUQ3MDAzQjQ3RTEgLyogSlNOb3RpZmljYXRpb25DZW50ZXIuaCAqLzsgfTsKIAkJ
MzM1MDNDQzAxMDE3OUMxQTAwM0I0N0UxIC8qIEpTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDND
QkYxMDE3OUMxQTAwM0I0N0UxIC8qIEpTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwICov
OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDUzMTEyZTYuLmFmOWQyOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBv
cnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmdW5jdGlvbiB0
byByZXRyaWV2ZSB0aGUgaW50ZXJuYWwgSUQgZm9yIGEgbm90aWZpY2F0aW9uLiBUaGlzIGlzIG5l
ZWRlZCB0byBzdXBwb3J0IHNpbXVsYXRpbmcKKyAgICAgICAgYSB1c2VyIGNsaWNrIG9uIGEgbm90
aWZpY2F0aW9uLCBmb3IgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIChXZWJOb3RpZmljYXRpb25DbGllbnQp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbToKKyAg
ICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX25vdGlm
aWNhdGlvbklERm9yVGVzdGluZzpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRl
Lmg6CisKIDIwMTItMDgtMjIgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQwMQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuaAppbmRleCA5NDUzNWQzLi41YmQ1MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtNDgs
NiArNDgsMTEgQEAgcHVibGljOgogICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICop
OwogICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAorI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAg
Ly8gRm9yIHRlc3RpbmcgcHVycG9zZXMuCisgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KaW5kZXggZTJhMDVjNi4uMWJkYzNlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5tbQpAQCAtMjMwLDYgKzIzMCwxNiBAQCBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhl
YwogfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJ
Q0FUSU9OUykKK3VpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9uSURG
b3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIEhh
c2hNYXA8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4sIFJldGFpblB0cjxXZWJOb3RpZmlj
YXRpb24+ID46Oml0ZXJhdG9yIGl0ID0gbV9ub3RpZmljYXRpb25NYXAuZmluZChub3RpZmljYXRp
b24pOworICAgIGlmIChpdCA9PSBtX25vdGlmaWNhdGlvbk1hcC5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIFtpdC0+c2Vjb25kLmdldCgpIG5vdGlmaWNhdGlvbklEXTsKK30K
KyNlbmRpZgorCisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9U
SUZJQ0FUSU9OUykKIEBpbXBsZW1lbnRhdGlvbiBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5l
cgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggMmJmYWYyNC4uNmU1NWIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMTQzLDEwICsxNDMsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUvSlNEb2N1bWVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNO
b2RlTGlzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU05vdGlmaWNhdGlvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05vZGVMaXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2VHcm91cC5oPgpAQCAtNjU0Niw2ICs2NTQ5LDEzIEBAIHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0
SXRlcmF0aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5
CiB7CiAgICAgW1tzZWxmIF9ub3RpZmljYXRpb25Qcm92aWRlcl0gd2ViVmlldzpzZWxmIGRpZENs
b3NlTm90aWZpY2F0aW9uczpub3RpZmljYXRpb25JRHNdOwogfQorCistICh1aW50NjRfdClfbm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nOihKU1ZhbHVlUmVmKWpzTm90aWZpY2F0aW9uCit7CisgICAg
SlNDb250ZXh0UmVmIGNvbnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxDb250ZXh0XTsK
KyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90aWZpY2F0aW9u
KHRvSlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8V2ViTm90aWZpY2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6Y2xp
ZW50RnJvbShfcHJpdmF0ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rpbmcobm90aWZp
Y2F0aW9uKTsKK30KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZXcgKFdlYlZpZXdQcml2
YXRlU3R5bGVJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5o
CmluZGV4IGMyMGRhYWIuLmFkYjBjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmgKQEAgLTczOSw2ICs3MzksOCBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcg
dG8gdGhlIEFQSS4KIC0gKHZvaWQpX25vdGlmaWNhdGlvbkRpZFNob3c6KHVpbnQ2NF90KW5vdGlm
aWNhdGlvbklEOwogLSAodm9pZClfbm90aWZpY2F0aW9uRGlkQ2xpY2s6KHVpbnQ2NF90KW5vdGlm
aWNhdGlvbklEOwogLSAodm9pZClfbm90aWZpY2F0aW9uc0RpZENsb3NlOihOU0FycmF5ICopbm90
aWZpY2F0aW9uSURzOworCistICh1aW50NjRfdClfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5nOihK
U1ZhbHVlUmVmKWpzTm90aWZpY2F0aW9uOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdl
YlZpZXdQcml2YXRlU3R5bGVJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU3MGRmNDQuLmE1OGJlMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CisKKyAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxk
IHN1cHBvcnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmdW5j
dGlvbiB0byByZXRyaWV2ZSB0aGUgaW50ZXJuYWwgSUQgZm9yIGEgbm90aWZpY2F0aW9uLiBUaGlz
IGlzIG5lZWRlZCB0byBzdXBwb3J0IHNpbXVsYXRpbmcKKyAgICAgICAgYSB1c2VyIGNsaWNrIG9u
IGEgbm90aWZpY2F0aW9uLCBmb3IgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZUdl
dFdlYk5vdGlmaWNhdGlvbklEKTogQ2FsbHMgaW50byBub3RpZmljYXRpb24gbWFuYWdlciB0byBn
ZXQgaW50ZXJuYWwgSUQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVByaXZhdGUuaDogQWRkIFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQoKSB0
byBiZSBhYmxlCisgICAgICAgIHJldHJpZXZlIG5vdGlmaWNhdGlvbiBJRC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6SW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklEKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
OgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIpOgorCiAyMDEy
LTA4LTIyICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBbRUZMXSBVc2UgV1RGX1VTRV9TT1VQIGluc3RlYWQgQlVJTERJTkdf
U09VUF9fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGVlMTBlOTYuLmU2NjBkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yNjAsMyArMjYwLDkgQEAgdm9pZCBXS0J1bmRsZVNldFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24oV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VH
cm91cFIKIHsKICAgICB0b0ltcGwoYnVuZGxlUmVmKS0+c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlv
bih0b0ltcGwocGFnZUdyb3VwUmVmKSwgdG9JbXBsKGxvY2F0aW9uKS0+c3RyaW5nKCkpOwogfQor
Cit1aW50NjRfdCBXS0J1bmRsZUdldFdlYk5vdGlmaWNhdGlvbklEKFdLQnVuZGxlUmVmIGJ1bmRs
ZVJlZiwgSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKQorewor
ICAgIHJldHVybiB0b0ltcGwoYnVuZGxlUmVmKS0+d2ViTm90aWZpY2F0aW9uSUQoY29udGV4dCwg
bm90aWZpY2F0aW9uKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKaW5kZXgg
YjVlMTBlNS4uMTY4OGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCkBAIC05
NSw2ICs5NSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU3dpdGNoTmV0d29ya0xvYWRlclRv
TmV3VGVzdGluZ1Nlc3Npb24oV0tCdW5kbGVSZWYgYnVuZGxlCiAKIFdLX0VYUE9SVCB2b2lkIFdL
QnVuZGxlU2V0UGFnZVZpc2liaWxpdHlTdGF0ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBpbnQgc3RhdGUsIGJvb2wgaXNJbml0aWFsU3RhdGUpOwogCitXS19FWFBP
UlQgdWludDY0X3QgV0tCdW5kbGVHZXRXZWJOb3RpZmljYXRpb25JRChXS0J1bmRsZVJlZiBidW5k
bGUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIG5vdGlmaWNhaXRvbik7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDFl
ODMxMDcuLmZkNGY3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2lu
ZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmg+CkBAIC01MzQsNCArNTM1LDEyIEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFnZUdyb3VwUHJv
eHkqIHBhZ2VHcm91cCwgY29uCiAgICAgICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oS1VSTChLVVJMKCksIGxvY2F0aW9uKSk7CiB9CiAKK3VpbnQ2NF90
IEluamVjdGVkQnVuZGxlOjp3ZWJOb3RpZmljYXRpb25JRChKU0NvbnRleHRSZWYganNDb250ZXh0
LCBKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uID0gdG9Ob3RpZmljYXRpb24odG9KUyh0b0pTKGpzQ29udGV4dCksIGpz
Tm90aWZpY2F0aW9uKSk7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJldHVybiAw
OworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRpb25NYW5hZ2VyKCku
bm90aWZpY2F0aW9uSURGb3JUZXN0aW5nKG5vdGlmaWNhdGlvbik7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDg3ZjdlZjMuLjk4MTJjOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKFdlYkZyYW1lKiwgaW50LCBpbnQsIGludCwgaW50LCBp
bnQsIGludCwgaW50KTsKICAgICBib29sIGlzUGFnZUJveFZpc2libGUoV2ViRnJhbWUqLCBpbnQp
OwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihXZWJQYWdlR3JvdXBQcm94eSos
IGNvbnN0IFN0cmluZyYpOworICAgIHVpbnQ2NF90IHdlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4
dFJlZiwgSlNWYWx1ZVJlZik7CiAKICAgICAvLyBVc2VyQ29udGVudCBBUEkKICAgICB2b2lkIGFk
ZFVzZXJTY3JpcHQoV2ViUGFnZUdyb3VwUHJveHkqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
KiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsLCBJbW11dGFibGVBcnJh
eSogd2hpdGVsaXN0LCBJbW11dGFibGVBcnJheSogYmxhY2tsaXN0LCBXZWJDb3JlOjpVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZSwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMmQ2NjdlZi4uZGQ5M2U1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA1LDYgKzEwNSwxNyBA
QCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
cG9saWN5Rm9yT3JpZ2luKFdlYkNvcmU6OgogICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogfQogCit1aW50NjRfdCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3Rp
ZmljYXRpb24pCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKKyAgICBpZiAoIW5vdGlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uTWFwLmdldChub3RpZmljYXRpb24pOworI2Vsc2UK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiB7CiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDJhMThkNDQuLjA3MDM0OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApAQCAtNjgsNiArNjgsOSBAQCBwdWJsaWM6CiAg
ICAgLy8gTG9va3MgaW4gbG9jYWwgY2FjaGUgZm9yIHBlcm1pc3Npb24uIElmIG5vdCBmb3VuZCwg
cmV0dXJucyBEZWZhdWx0RGVuaWVkLgogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbiBwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25z
dDsKIAorICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuCisgICAgdWludDY0X3Qgbm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
KTsKKwogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKLS0gCjEuNy4xMC4yIChBcHBs
ZSBHaXQtMzMpCgo=
</data>
<flag name="review"
          id="171260"
          type_id="1"
          status="-"
          setter="haraken"
    />
    <flag name="commit-queue"
          id="171273"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160658</attachid>
            <date>2012-08-27 01:29:25 -0700</date>
            <delta_ts>2012-08-27 14:10:01 -0700</delta_ts>
            <desc>3/9 - Add SPI to be able to manually set permissions for origins in tests</desc>
            <filename>0003-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>13802</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA1NDc4NjA2NWRhYjEyZDU2ODE4ZDc4NDUzYjdhNjRiNGMxMzIzZTI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDI3IEF1ZyAyMDEyIDAwOjUzOjUyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzLzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHN1cHBvcnQgZnVu
Y3Rpb25zIHRvIFdlYktpdDIgd2hpY2ggbWFpbnRhaW4gdGhlIG1hcCBvZiBwZXJtaXNzaW9ucyB0
byBvcmlnaW5zIGZvciB3ZWIgbm90aWZpY2F0aW9ucy4KRm9yIFdlYktpdDEgdGhlIG1hcCBpcyBt
YW5hZ2VkIGJ5IER1bXBSZW5kZXJUcmVlLgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmg6IEFkZCBUZXN0UnVubmVyIFNQSS4KKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgooV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3Zl
QWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOiBFeHBvc2UgYXMgV0sgQVBJLgoqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgoKKiBXZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKFdlYktp
dDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzZXRQZXJtaXNzaW9uTGV2
ZWxGb3JUZXN0aW5nKTogTWFudWFsbHkgc2V0IHRoZSBwZXJtaXNzaW9uCmxldmVsIGZvciBhbiBv
cmlnaW4uCihXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVt
b3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKToKKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lz
aW9uKTogV2hlbiB0aGUgdXNlcgptYWtlcyBhIGRlY2lzaW9uLCB3ZSBkaWQgbm90IHByb3Blcmx5
IGNsZWFuIHVwIHNvbWUgb2YgdGhlIG1hcHMgbWFpbnRhaW5lZCBieSB0aGUgcmVxdWVzdCBtYW5h
Z2VyLgpJbiBhZGRpdGlvbiB0byBjbGVhbmluZyB0aG9zZSB1cCwgd2UgYWxzbyBtYWtlIHN1cmUg
dG8gdXBkYXRlIHRoZSB3ZWIgcHJvY2VzcycgcmVwcmVzZW50YXRpb24gb2YgdGhlCnBlcm1pc3Np
b25zLgoqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaDoKKE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6Ciog
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgooV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rp
bmcpOgooV2ViS2l0KToKKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5oOgooV2ViTm90aWZpY2F0aW9uTWFuYWdlcik6Ci0tLQogU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrKysrKysr
KysrKysrCiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAg
ICB8ICAgMTAgKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRl
LmggICAgICAgICB8ICAgIDIgKysKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcCAgIHwgICAyMSArKysrKysrKysrKysKIC4uLi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggICAgIHwgICAgMiArKwogLi4uL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgICAgICAgfCAgIDIyICsrKysrKysrKysrKwog
Li4uL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICAgICAgICAgfCAgICA1
ICsrLQogLi4uL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgICAgICAg
fCAgICA3ICsrKysKIC4uLi9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAg
ICAgICAgIHwgICAgNCArKy0KIDkgZmlsZXMgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKyksIDIg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE1OGJlMzQuLmJiZDg0YmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOCBAQAorMjAxMi0wOC0yNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+
CisKKyAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQg
bm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZ1bmN0
aW9ucyB0byBXZWJLaXQyIHdoaWNoIG1haW50YWluIHRoZSBtYXAgb2YgcGVybWlzc2lvbnMgdG8g
b3JpZ2lucyBmb3Igd2ViIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIEZvciBXZWJLaXQxIHRoZSBt
YXAgaXMgbWFuYWdlZCBieSBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDogQWRkIFRlc3RSdW5uZXIgU1BJLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9ucyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOiBFeHBvc2UgYXMgV0sgQVBJLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyk6IE1hbnVhbGx5IHNldCB0aGUg
cGVybWlzc2lvbgorICAgICAgICBsZXZlbCBmb3IgYW4gb3JpZ2luLgorICAgICAgICAoV2ViS2l0
OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnJlbW92ZUFsbFBlcm1pc3Np
b25zRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6
IFdoZW4gdGhlIHVzZXIKKyAgICAgICAgbWFrZXMgYSBkZWNpc2lvbiwgd2UgZGlkIG5vdCBwcm9w
ZXJseSBjbGVhbiB1cCBzb21lIG9mIHRoZSBtYXBzIG1haW50YWluZWQgYnkgdGhlIHJlcXVlc3Qg
bWFuYWdlci4KKyAgICAgICAgSW4gYWRkaXRpb24gdG8gY2xlYW5pbmcgdGhvc2UgdXAsIHdlIGFs
c28gbWFrZSBzdXJlIHRvIHVwZGF0ZSB0aGUgd2ViIHByb2Nlc3MnIHJlcHJlc2VudGF0aW9uIG9m
IHRoZQorICAgICAgICBwZXJtaXNzaW9ucy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgIChO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0
aW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXIpOgorCiAyMDEyLTA4LTI0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXb3JrIHRvd2FyZHMgV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBub3RpZmlj
YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGU2NjBkYjAuLmJmNmZhZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yNjEsNiArMjYxLDE2IEBAIHZvaWQgV0tCdW5kbGVTZXRV
c2VyU3R5bGVTaGVldExvY2F0aW9uKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdl
R3JvdXBSCiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24o
dG9JbXBsKHBhZ2VHcm91cFJlZiksIHRvSW1wbChsb2NhdGlvbiktPnN0cmluZygpKTsKIH0KIAor
dm9pZCBXS0J1bmRsZVNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYgYnVu
ZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgb3JpZ2luU3RyaW5n
UmVmLCBib29sIGdyYW50ZWQpCit7CisgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24odG9JbXBsKHBhZ2VSZWYpLCB0b0ltcGwob3JpZ2luU3RyaW5nUmVm
KS0+c3RyaW5nKCksIGdyYW50ZWQpOworfQorCit2b2lkIFdLQnVuZGxlUmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VS
ZWYgcGFnZVJlZikKK3sKKyAgICB0b0ltcGwoYnVuZGxlUmVmKS0+cmVtb3ZlQWxsV2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbnModG9JbXBsKHBhZ2VSZWYpKTsKK30KKwogdWludDY0X3QgV0tCdW5k
bGVHZXRXZWJOb3RpZmljYXRpb25JRChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIG5vdGlmaWNhdGlvbikKIHsKICAgICByZXR1cm4gdG9JbXBs
KGJ1bmRsZVJlZiktPndlYk5vdGlmaWNhdGlvbklEKGNvbnRleHQsIG5vdGlmaWNhdGlvbik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAppbmRleCAxNjg4ZGEwLi41YWQzZjVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKQEAgLTk1LDYgKzk1LDggQEAgV0tfRVhQT1JU
IHZvaWQgV0tCdW5kbGVTd2l0Y2hOZXR3b3JrTG9hZGVyVG9OZXdUZXN0aW5nU2Vzc2lvbihXS0J1
bmRsZVJlZiBidW5kbGUKIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRQYWdlVmlzaWJpbGl0
eVN0YXRlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBzdGF0
ZSwgYm9vbCBpc0luaXRpYWxTdGF0ZSk7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0V2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbihXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBXS1N0cmluZ1JlZiBvcmlnaW5TdHJpbmdSZWYsIGJvb2wgZ3JhbnRlZCk7CitXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdL
QnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHVpbnQ2
NF90IFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQoV0tCdW5kbGVSZWYgYnVuZGxlLCBKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub3RpZmljYWl0b24pOwogCiAjaWZkZWYgX19j
cGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggZmQ0Zjc2Ni4uYWE1YWI2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIK
ICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNh
Y2hlTWFuYWdlci5oIgpAQCAtNTM1LDYgKzUzNiwyNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpz
ZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGNv
bgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRVc2VyU3R5bGVTaGVldExvY2F0aW9u
KEtVUkwoS1VSTCgpLCBsb2NhdGlvbikpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luU3RyaW5nLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8
IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlLT5ub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyhvcmln
aW5TdHJpbmcsIGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2Vk
IDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShvcmlnaW5TdHJpbmcpOworICAgIFVO
VVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorfQorCit2b2lkIEluamVjdGVkQnVuZGxlOjpy
ZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQYWdlKiBwYWdlKQoreworI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisg
ICAgcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnJlbW92ZUFs
bFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CisjZW5kaWYKK30KKwogdWludDY0X3QgSW5qZWN0ZWRCdW5kbGU6OndlYk5vdGlmaWNhdGlvbklE
KEpTQ29udGV4dFJlZiBqc0NvbnRleHQsIEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24pCiB7CiAg
ICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24gPSB0b05vdGlmaWNhdGlvbih0
b0pTKHRvSlMoanNDb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApp
bmRleCA5ODEyYzhkLi4zM2QwYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0xMjQsNiArMTI0
LDggQEAgcHVibGljOgogICAgIFN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhXZWJG
cmFtZSosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCk7CiAgICAgYm9vbCBpc1Bh
Z2VCb3hWaXNpYmxlKFdlYkZyYW1lKiwgaW50KTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oV2ViUGFnZUdyb3VwUHJveHkqLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNl
dFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFnZSosIGNvbnN0IFN0cmluZyYsIGJvb2wp
OworICAgIHZvaWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV2ViUGFnZSop
OwogICAgIHVpbnQ2NF90IHdlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJl
Zik7CiAKICAgICAvLyBVc2VyQ29udGVudCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNmQ4OWZjMC4uMjk3MGFh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKQEAgLTEyOCwxMiArMTI4LDM0IEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25M
CiAjZW5kaWYKIH0KIAordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnNldFBlcm1pc3Npb25MZXZlbEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uKQorewor
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLmRpZFVwZGF0
ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKG9yaWdpblN0cmluZywgcGVybWlzc2lvbiA9PSBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KG9yaWdpblN0cmluZyk7CisgICAgVU5VU0VEX1BBUkFNKHBlcm1pc3Npb24pOworI2VuZGlmCit9
CisKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpyZW1vdmVBbGxQ
ZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBF
TkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90
aWZpY2F0aW9uTWFuYWdlcigpLnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2Vu
ZGlmCit9CisKIHZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Ym9vbCBhbGxvd2VkKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4g
b3JpZ2luID0gbV9pZFRvT3JpZ2luTWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBtX29yaWdpblRv
SURNYXAucmVtb3ZlKG9yaWdpbik7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmlj
YXRpb25NYW5hZ2VyKCkuZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24ob3JpZ2luLT50b1N0
cmluZygpLCBhbGxvd2VkKTsKKwogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAg
ICBSZWZQdHI8Vm9pZENhbGxiYWNrPiB2b2lkQ2FsbGJhY2sgPSBtX2lkVG9Wb2lkQ2FsbGJhY2tN
YXAudGFrZShyZXF1ZXN0SUQpOwogICAgIGlmICh2b2lkQ2FsbGJhY2spIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCAxMzhh
MTg0Li4wNWEzYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oCkBAIC01NSw4ICs1NSwxMSBAQCBwdWJsaWM6CiAjZW5kaWYKICAg
ICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAgICAKLSAg
ICAvLyBTeW5jaHJvbm91cyBjYWxsIHRvIHJldHJpZXZlIHBlcm1pc3Npb24gbGV2ZWwgZm9yIGdp
dmVuIHNlY3VyaXR5IG9yaWdpbgogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKKworICAg
IC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuCisgICAgdm9pZCBzZXRQZXJtaXNzaW9uTGV2
ZWxGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb24pOworICAgIHZvaWQgcmVtb3ZlQWxsUGVybWlzc2lvbnNG
b3JUZXN0aW5nKCk7CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGRkOTNlNTAuLjc4MTk5
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwNSw2ICsxMDUs
MTMgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3JlOjoKICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAordm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQoreworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgbV9wZXJtaXNz
aW9uc01hcC5jbGVhcigpOworI2VuZGlmCit9CisKIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbikKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggMDcw
MzQ4Zi4uZTlhNTk0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC02OCw3
ICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gTG9va3MgaW4gbG9jYWwgY2FjaGUgZm9yIHBlcm1p
c3Npb24uIElmIG5vdCBmb3VuZCwgcmV0dXJucyBEZWZhdWx0RGVuaWVkLgogICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKIAorICAgIHZvaWQgZGlkVXBkYXRlTm90aWZpY2F0aW9u
RGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCk7CisKICAg
ICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LgorICAgIHZvaWQgcmVtb3ZlQWxsUGVybWlz
c2lvbnNGb3JUZXN0aW5nKCk7CiAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSURGb3JUZXN0aW5n
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKTsKIAogcHJpdmF0ZToKQEAgLTc4
LDcgKzgxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNob3dOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQgZGlkQ2xpY2tOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpOwogICAgIHZvaWQgZGlkQ2xvc2VOb3RpZmljYXRpb25zKGNvbnN0
IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7Ci0gICAgdm9pZCBkaWRVcGRhdGVO
b3RpZmljYXRpb25EZWNpc2lvbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxv
d2VkKTsKICAgICB2b2lkIGRpZFJlbW92ZU5vdGlmaWNhdGlvbkRlY2lzaW9ucyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgb3JpZ2luU3RyaW5ncyk7CiAgICAgCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLS0gCjEuNy4xMC4yIChBcHBsZSBH
aXQtMzMpCgo=
</data>
<flag name="review"
          id="171261"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160659</attachid>
            <date>2012-08-27 01:30:48 -0700</date>
            <delta_ts>2012-08-27 14:10:09 -0700</delta_ts>
            <desc>4/9 - DRT support</desc>
            <filename>0004-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>25973</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA3MTdiNjRjYmI1ZDEwNzQzMTEyMWQ3ZDEwNGI5Y2I2ZWNiY2RmNTA3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDI3IEF1ZyAyMDEyIDAwOjQ0OjAzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCA0LzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBzdHVicyBmb3Igd2ViIG5vdGlmaWNhdGlvbiBzdXBwb3J0IG9uIERSVC4gQXNz
dW1lIHRoYXQgd2hlbiBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBpcyBjYWxsZWQs
CnRoZSB1c2VyIGFsd2F5cyBjaG9vc2VzIHRvIGFsbG93IGl0LiBUaGlzIGNhbiBiZSBlYXNpbHkg
b3ZlcnJpZGRlbiBpbiBsYXlvdXQgdGVzdHMgd2l0aCB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uKCkKd2hlbiBuZWVkZWQuCgoqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBNb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuCiogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgooY3JlYXRl
V2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6IFNldCBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIgc2luZ2xldG9uIGFzIHRoZSBwcm92aWRlciBmb3IgdGhlIHdlYiB2aWV3LgoocmVzZXRXZWJW
aWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKTogTWFrZSBzdXJlIHRvIHJlc2V0IHRo
ZSBwcm92aWRlcidzIHN0YXRlIGJldHdlZW4gZWFjaCB0ZXN0LgoqIER1bXBSZW5kZXJUcmVlL21h
Yy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDogQWRkZWQuCiogRHVtcFJlbmRlclRyZWUv
bWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbTogQWRkZWQuCigrW01vY2tXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlciBzaGFyZWRdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
IGluaXRdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHJlZ2lzdGVyV2ViVmlldzpd
KToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHVucmVnaXN0ZXJXZWJWaWV3Ol0pOgoo
LVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2hvd05vdGlmaWNhdGlvbjpmcm9tV2ViVmll
dzpdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIGNhbmNlbE5vdGlmaWNhdGlvbjpd
KToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG5vdGlmaWNhdGlvbkRlc3Ryb3llZDpd
KToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIGNsZWFyTm90aWZpY2F0aW9uczpdKToK
KC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHdlYlZpZXc6ZGlkU2hvd05vdGlmaWNhdGlv
bjpdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHdlYlZpZXc6ZGlkQ2xpY2tOb3Rp
ZmljYXRpb246XSk6CigtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZENs
b3NlTm90aWZpY2F0aW9uczpdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNpbXVs
YXRlV2ViTm90aWZpY2F0aW9uQ2xpY2s6XSk6CigtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ciBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrV2l0aFRpdGxlOl0pOgooLVtNb2NrV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIgcG9saWN5Rm9yT3JpZ2luOl0pOgooLVtNb2NrV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIgc2V0V2ViTm90aWZpY2F0aW9uT3JpZ2luOnBlcm1pc3Npb246XSk6CigtW01v
Y2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uc10pOgooLVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgcmVzZXRdKTogUmVtb3ZlIGFs
bCBtYXBwaW5ncyBhbmQgcGVybWlzc2lvbnMuCiogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW06CihUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgoo
VGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOgooVGVzdFJ1bm5lcjo6
cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOgooVGVzdFJ1bm5lcjo6c2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayk6CihUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5v
dGlmaWNhdGlvbkNsaWNrKToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKC1b
VUlEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RGcm9t
T3JpZ2luOmxpc3RlbmVyOl0pOiBBc3N1bWUgd2hlbiBhc2tlZCwgdGhlIHVzZXIgYWxsb3dzIHdl
YiBub3RpZmljYXRpb25zLgotLS0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICA0NCArKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qICAgICAgIHwgICAxMiArLQogVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tICAgICAgICAgfCAgICAzICsKIC4uLi9tYWMvTW9ja1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmggICAgICAgICAgICAgIHwgICA2MSArKysrKysrCiAuLi4vbWFj
L01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbSAgICAgICAgICAgICB8ICAxNjcgKysrKysr
KysrKysrKysrKysrKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1t
ICAgICAgICAgIHwgICAxOSArKy0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRl
Lm1tICAgICAgICAgICAgIHwgICAgNyArCiA3IGZpbGVzIGNoYW5nZWQsIDMwNiBpbnNlcnRpb25z
KCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0K
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmYw
ODI3ZS4uNWRjY2Y2MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtNiw2ICs2LDUwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCiAKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBzdHVicyBmb3Igd2Vi
IG5vdGlmaWNhdGlvbiBzdXBwb3J0IG9uIERSVC4gQXNzdW1lIHRoYXQgd2hlbiBOb3RpZmljYXRp
b24ucmVxdWVzdFBlcm1pc3Npb24oKSBpcyBjYWxsZWQsCisgICAgICAgIHRoZSB1c2VyIGFsd2F5
cyBjaG9vc2VzIHRvIGFsbG93IGl0LiBUaGlzIGNhbiBiZSBlYXNpbHkgb3ZlcnJpZGRlbiBpbiBs
YXlvdXQgdGVzdHMgd2l0aCB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
KCkKKyAgICAgICAgd2hlbiBuZWVkZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOiBTZXQgTW9j
a1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNpbmdsZXRvbiBhcyB0aGUgcHJvdmlkZXIgZm9yIHRo
ZSB3ZWIgdmlldy4KKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3Jl
VGVzdGluZyk6IE1ha2Ugc3VyZSB0byByZXNldCB0aGUgcHJvdmlkZXIncyBzdGF0ZSBiZXR3ZWVu
IGVhY2ggdGVzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Nb2Nr
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW06IEFkZGVkLgorICAgICAgICAoK1tNb2NrV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIgc2hhcmVkXSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRp
b25Qcm92aWRlciBpbml0XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ciByZWdpc3RlcldlYlZpZXc6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlciB1bnJlZ2lzdGVyV2ViVmlldzpdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyIHNob3dOb3RpZmljYXRpb246ZnJvbVdlYlZpZXc6XSk6CisgICAgICAgICgtW01v
Y2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBjYW5jZWxOb3RpZmljYXRpb246XSk6CisgICAgICAg
ICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBub3RpZmljYXRpb25EZXN0cm95ZWQ6XSk6
CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBjbGVhck5vdGlmaWNhdGlv
bnM6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciB3ZWJWaWV3OmRp
ZFNob3dOb3RpZmljYXRpb246XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlciB3ZWJWaWV3OmRpZENsaWNrTm90aWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtNb2NrV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIgd2ViVmlldzpkaWRDbG9zZU5vdGlmaWNhdGlvbnM6XSk6Cisg
ICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaW11bGF0ZVdlYk5vdGlmaWNh
dGlvbkNsaWNrOl0pOgorICAgICAgICAoLVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2lt
dWxhdGVXZWJOb3RpZmljYXRpb25DbGlja1dpdGhUaXRsZTpdKToKKyAgICAgICAgKC1bTW9ja1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyIHBvbGljeUZvck9yaWdpbjpdKToKKyAgICAgICAgKC1bTW9j
a1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNldFdlYk5vdGlmaWNhdGlvbk9yaWdpbjpwZXJtaXNz
aW9uOl0pOgorICAgICAgICAoLVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgcmVtb3ZlQWxs
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnNdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyIHJlc2V0XSk6IFJlbW92ZSBhbGwgbWFwcGluZ3MgYW5kIHBlcm1pc3Npb25z
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2spOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVsZWdhdGUg
d2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25SZXF1ZXN0RnJvbU9yaWdpbjpsaXN0
ZW5lcjpdKTogQXNzdW1lIHdoZW4gYXNrZWQsIHRoZSB1c2VyIGFsbG93cyB3ZWIgbm90aWZpY2F0
aW9ucy4KKworMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5
NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFNvbWUgb2YgdGhlIGxlZ2FjeSBBUElzIGFy
ZSBsZXNzIHRoYW4gaWRlYWwsIGFuZCBub3QgdGVuYWJsZSB3aXRoIHRoZSBXVFIgaW5mcmFzdHJ1
Y3R1cmUuCiAgICAgICAgIFRoaXMgZmlyc3QgcGF0Y2ggcmVuYW1lcyB0aGUgVGVzdFJ1bm5lciBj
YWxscyB0byB1c2UgdGhlIHRlcm0gIndlYiBub3RpZmljYXRpb25zIiBpbnN0ZWFkIG9mCiAgICAg
ICAgICJkZXNrdG9wIG5vdGlmaWNhdGlvbnMiLCBkZXByZWNhdGVzIGEgY291cGxlIEFQSSBjYWxs
cyB0aGF0IGFyZSBub3QgdXNlZCBieSBhbnlvbmUsIGFuZCBhZGRzCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBjMmFjNjc5Li5kMmVlMjM5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTYwLDYgKzYwLDggQEAKIAkJMkQ0MDNGMDYxNTA4NzFGOTAwNTM1OEQyIC8qIENvY29h
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NEY2MDg5MDhCMTM2REEwMEU5NzQ1RiAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJ
CTJENDAzRjA4MTUwODcxRjkwMDUzNThEMiAvKiBPcGVuR0wuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjNCQ0I4OEYwRUE1NzYyMzAw
M0M2Mjg5IC8qIE9wZW5HTC5mcmFtZXdvcmsgKi87IH07CiAJCTJENDAzRjFCMTUwODcyMDkwMDUz
NThEMiAvKiBMYXlvdXRUZXN0SGVscGVyLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDQwM0VBMjE1MDg3MTQyMDA1MzU4RDIgLyogTGF5b3V0VGVzdEhl
bHBlci5tICovOyB9OworCQkzMTExN0IzQzE1RDlBNTZBMDAxNjNCQzggLyogTW9ja1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTExN0IzQTE1RDlBNTZBMDAxNjNCQzggLyogTW9ja1dlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmggKi87IH07CisJCTMxMTE3QjNEMTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTExN0IzQjE1RDlBNTZBMDAxNjNCQzggLyogTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLm1tICovOyB9OwogCQkzQTU2MjZDQjEzMUNBMDJBMDAyQkU2RDkgLyogU3RvcmFn
ZVRyYWNrZXJEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNBNTYyNkMxMTMxQzhCMTcwMDJCRTZEOSAvKiBTdG9yYWdlVHJhY2tlckRlbGVn
YXRlLm1tICovOyB9OwogCQkzQTU2MjZDQzEzMUNBMDM2MDAyQkU2RDkgLyogU3RvcmFnZVRyYWNr
ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0E1NjI2QzAxMzFDOEIxNzAwMkJFNkQ5IC8qIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUuaCAq
LzsgfTsKIAkJNDE3REFBMUQxMzdCM0UyNDAwN0M1N0ZCIC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REFBMUMx
MzdCM0UyNDAwN0M1N0ZCIC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovOyB9OwpAQCAtMjYzLDYg
KzI2NSw4IEBACiAJCTI5Q0ZCQTJEMTIyNzNBMTAwMEJDMzBDMCAvKiBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlUZXh0
TWFya2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDQwM0VBMjE1MDg3
MTQyMDA1MzU4RDIgLyogTGF5b3V0VGVzdEhlbHBlci5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lm9iamM7IG5hbWUgPSBMYXlvdXRUZXN0SGVscGVyLm07IHBhdGggPSBtYWMvTGF5b3V0VGVzdEhl
bHBlci5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDQwM0YxOTE1MDg3MUY5MDA1
MzU4RDIgLyogTGF5b3V0VGVzdEhlbHBlciAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUlu
SW5kZXggPSAwOyBwYXRoID0gTGF5b3V0VGVzdEhlbHBlcjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJMzExMTdCM0ExNUQ5QTU2QTAwMTYzQkM4IC8qIE1vY2tXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNb2Nr
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgcGF0aCA9IG1hYy9Nb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzExMTdCM0IxNUQ5QTU2
QTAwMTYzQkM4IC8qIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5t
bTsgcGF0aCA9IG1hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAvKiBEdW1wUmVuZGVy
VHJlZVByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEdW1wUmVuZGVy
VHJlZVByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzVGMDk3MTBEQUMz
Q0I2MDBDOEI0RTUgLyogV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2Vp
Z2h0V2F0Y2hlcjEwMC50dGY7IHBhdGggPSBmb250cy9XZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0
Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc1RjA5NzIwREFDM0NCNjAwQzhCNEU1
IC8qIFdlYktpdFdlaWdodFdhdGNoZXIyMDAudHRmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IFdlYktpdFdlaWdodFdhdGNoZXIy
MDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2VpZ2h0V2F0Y2hlcjIwMC50dGY7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIsMTEgKzQ4NiwxMSBAQAogCQkxNDIyQTI2OTBBRjZG
NDUyMDBFMUE4ODMgLyogQ29udHJvbGxlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAotCQkJCTgwMDQ1QUVCMTQ3NzE4RTcwMDgyOTBBOCAvKiBBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovLAotCQkJCTgwMDQ1QUVDMTQ3NzE4RTcwMDgyOTBB
OCAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSAqLywKIAkJCQlCQ0QwOEIz
OTBFMTA1N0VGMDBBN0QwQzEgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICovLAogCQkJ
CUJDRDA4QTU4MEUxMDQ5NkIwMEE3RDBDMSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oICov
LAogCQkJCUJDRDA4QjcwMEUxMDU5RDIwMEE3RDBDMSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ck1hYy5tbSAqLywKKwkJCQk4MDA0NUFFQjE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLywKKwkJCQk4MDA0NUFFQzE0NzcxOEU3MDA4MjkwQTgg
LyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gKi8sCiAJCQkJMjlDRkJBMEYx
MjI3MzZFNjAwQkMzMEMwIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcCAqLywKIAkJCQky
OUNGQkEwRTEyMjczNkU2MDBCQzMwQzAgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaCAqLywK
IAkJCQkyOUNGQkEyRDEyMjczQTEwMDBCQzMwQzAgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJN
YWMubW0gKi8sCkBAIC01MDUsNiArNTA5LDggQEAKIAkJCQlCQ0ExOEIyMjBDOUIwMTRCMDAxMTQz
NjkgLyogVGVzdFJ1bm5lck1hYy5tbSAqLywKIAkJCQlFMUI3ODA4NTExQUYxNjQzMDA3RTFCQzIg
LyogTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlFMUI3ODA4NzExQUYxNjY5MDA3
RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIubW0gKi8sCisJCQkJMzExMTdCM0ExNUQ5
QTU2QTAwMTYzQkM4IC8qIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJCTMx
MTE3QjNCMTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0g
Ki8sCiAJCQkJQkNBMThCNkQwQzlCMDhEQjAwMTE0MzY5IC8qIE5hdmlnYXRpb25Db250cm9sbGVy
LmggKi8sCiAJCQkJQkNBMThCNkUwQzlCMDhEQjAwMTE0MzY5IC8qIE5hdmlnYXRpb25Db250cm9s
bGVyLm0gKi8sCiAJCQkJQkNBMThCMkYwQzlCMDFCNDAwMTE0MzY5IC8qIE9iakNDb250cm9sbGVy
LmggKi8sCkBAIC03MzYsNiArNzQyLDcgQEAKIAkJCQkzQTU2MjZDQzEzMUNBMDM2MDAyQkU2RDkg
LyogU3RvcmFnZVRyYWNrZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3REFBMUQx
MzdCM0UyNDAwN0M1N0ZCIC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODAwNDVBRUQxNDc3MThFNzAwODI5MEE4IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTExN0IzQzE1RDlBNTZBMDAxNjNCQzggLyog
TW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTk2Nyw2ICs5
NzQsNyBAQAogCQkJCTNBNTYyNkNCMTMxQ0EwMkEwMDJCRTZEOSAvKiBTdG9yYWdlVHJhY2tlckRl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODAwNDVBRUUxNDc3MThFNzAwODI5MEE4IC8q
IEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTgzMEYzMUYxNUM4MTE4MTAwNUFCMjA2IC8qIER1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTMxMTE3QjNEMTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAyYmQ1NGJiLi4yN2MyZjQzIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1w
b3J0ICJKYXZhU2NyaXB0VGhyZWFkaW5nLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCiAjaW1w
b3J0ICJNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oIgorI2ltcG9ydCAiTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uQ29udHJvbGxlci5oIgogI2ltcG9y
dCAiT2JqQ1BsdWdpbi5oIgogI2ltcG9ydCAiT2JqQ1BsdWdpbkZ1bmN0aW9uLmgiCkBAIC01MTks
NiArNTIwLDcgQEAgV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCiAg
ICAgW3dlYlZpZXcgc2V0UmVzb3VyY2VMb2FkRGVsZWdhdGU6cmVzb3VyY2VMb2FkRGVsZWdhdGVd
OwogICAgIFt3ZWJWaWV3IF9zZXRHZW9sb2NhdGlvblByb3ZpZGVyOltNb2NrR2VvbG9jYXRpb25Q
cm92aWRlciBzaGFyZWRdXTsKICAgICBbd2ViVmlldyBfc2V0RGV2aWNlT3JpZW50YXRpb25Qcm92
aWRlcjpbV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2sgc2hhcmVkXV07CisgICAgW3dl
YlZpZXcgX3NldE5vdGlmaWNhdGlvblByb3ZpZGVyOltNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIgc2hhcmVkXV07CiAKICAgICAvLyBSZWdpc3RlciB0aGUgc2FtZSBzY2hlbWVzIHRoYXQgU2Fm
YXJpIGRvZXMKICAgICBbV2ViVmlldyByZWdpc3RlclVSTFNjaGVtZUFzTG9jYWw6QCJmZWVkIl07
CkBAIC0xMjY5LDYgKzEyNzEsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NSb3VuZGluZ0hh
Y2tzOk5PXTsKIAogICAgIFtbTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIgc2hhcmVkXSBzdG9wVGlt
ZXJdOworICAgIFtbTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNoYXJlZF0gcmVzZXRdOwog
ICAgIAogICAgIC8vIENsZWFyIHRoZSBjb250ZW50cyBvZiB0aGUgZ2VuZXJhbCBwYXN0ZWJvYXJk
CiAgICAgW1tOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdIGRlY2xhcmVUeXBlczpbTlNB
cnJheSBhcnJheVdpdGhPYmplY3Q6TlNTdHJpbmdQYm9hcmRUeXBlXSBvd25lcjpuaWxdOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDgxMjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXJfaAorI2RlZmluZSBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaAorCisjaW1w
b3J0IDxXZWJLaXQvV2ViTm90aWZpY2F0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1By
aXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CisjaW1wb3J0IDx3dGYvSGFzaFNldC5o
PgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCit0eXBlZGVmIEhhc2hNYXA8dWludDY0X3Qs
IFJldGFpblB0cjxXZWJOb3RpZmljYXRpb24+ID4gTm90aWZpY2F0aW9uSURNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIFdlYlZpZXcgKj4gTm90aWZpY2F0aW9uVmlld01hcDsKKworQGlu
dGVyZmFjZSBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgOiBOU09iamVjdCA8V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXI+IHsKKyAgICBIYXNoU2V0PFdlYlZpZXcgKj4gX3JlZ2lzdGVyZWRXZWJW
aWV3czsKKyAgICBOb3RpZmljYXRpb25JRE1hcCBfbm90aWZpY2F0aW9uczsKKyAgICBOb3RpZmlj
YXRpb25WaWV3TWFwIF9ub3RpZmljYXRpb25WaWV3TWFwOworICAgIC8vIFRoaXMgaXMgdG8gc3Vw
cG9ydCB0aGUgbGVnYWN5IEFQSS4KKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4g
X25vdGlmaWNhdGlvbnNCeVRpdGxlOworICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5
PiBfcGVybWlzc2lvbnM7Cit9CisKKysgKE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciAqKXNo
YXJlZDsKKworLSAodm9pZClzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrOih1aW50NjRfdClu
b3RpZmljYXRpb25JRDsKKy8vIFRoaXMgaXMgdG8gc3VwcG9ydCB0aGUgbGVnYWN5IEFQSS4KKy0g
KHZvaWQpc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja1dpdGhUaXRsZTooTlNTdHJpbmcgKil0
aXRsZTsKKy0gKHZvaWQpc2V0V2ViTm90aWZpY2F0aW9uT3JpZ2luOihOU1N0cmluZyopb3JpZ2lu
IHBlcm1pc3Npb246KEJPT0wpYWxsb3dlZDsKKy0gKHZvaWQpcmVtb3ZlQWxsV2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbnM7CisKKy0gKHZvaWQpcmVzZXQ7CitAZW5kCisKKyNlbmRpZiAvLyBNb2Nr
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXJfaApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZjI1MjUKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLm1tCkBAIC0wLDAgKzEsMTY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJNb2NrV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJTZWN1cml0eU9yaWdpblByaXZh
dGUuaD4KKworQGltcGxlbWVudGF0aW9uIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlcgorCisr
IChNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgKilzaGFyZWQKK3sKKyAgICBzdGF0aWMgTW9j
a1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlciA9IFtbTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gcHJvdmlkZXI7Cit9CisKKy0gKGlk
KWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJu
IG5pbDsKKyAgICBfbm90aWZpY2F0aW9uc0J5VGl0bGUuYWRvcHROUyhbW05TTXV0YWJsZURpY3Rp
b25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBfcGVybWlzc2lvbnMuYWRvcHROUyhbW05TTXV0YWJs
ZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClyZWdpc3RlcldlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgQVNTRVJUKCFfcmVn
aXN0ZXJlZFdlYlZpZXdzLmNvbnRhaW5zKHdlYlZpZXcpKTsKKyAgICBfcmVnaXN0ZXJlZFdlYlZp
ZXdzLmFkZCh3ZWJWaWV3KTsKK30KKworLSAodm9pZCl1bnJlZ2lzdGVyV2ViVmlldzooV2ViVmll
dyAqKXdlYlZpZXcKK3sKKyAgICBBU1NFUlQoX3JlZ2lzdGVyZWRXZWJWaWV3cy5jb250YWlucyh3
ZWJWaWV3KSk7CisgICAgX3JlZ2lzdGVyZWRXZWJWaWV3cy5yZW1vdmUod2ViVmlldyk7Cit9CisK
Ky0gKHZvaWQpc2hvd05vdGlmaWNhdGlvbjooV2ViTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
IGZyb21XZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldworeworICAgIEFTU0VSVChfcmVnaXN0ZXJl
ZFdlYlZpZXdzLmNvbnRhaW5zKHdlYlZpZXcpKTsKKworICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEID0gW25vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRF07CisgICAgX25vdGlmaWNhdGlvbnMu
YWRkKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOworICAgIF9ub3RpZmljYXRpb25WaWV3
TWFwLmFkZChub3RpZmljYXRpb25JRCwgd2ViVmlldyk7CisgICAgW19ub3RpZmljYXRpb25zQnlU
aXRsZS5nZXQoKSBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExvbmdMb25n
Om5vdGlmaWNhdGlvbklEXSBmb3JLZXk6W25vdGlmaWNhdGlvbiB0aXRsZV1dOworCisgICAgW3dl
YlZpZXcgX25vdGlmaWNhdGlvbkRpZFNob3c6bm90aWZpY2F0aW9uSURdOworfQorCistICh2b2lk
KWNhbmNlbE5vdGlmaWNhdGlvbjooV2ViTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7Cisg
ICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBbbm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklE
XTsKKyAgICBBU1NFUlQoX25vdGlmaWNhdGlvbnMuY29udGFpbnMobm90aWZpY2F0aW9uSUQpKTsK
KworICAgIFtfbm90aWZpY2F0aW9uVmlld01hcC5nZXQobm90aWZpY2F0aW9uSUQpIF9ub3RpZmlj
YXRpb25zRGlkQ2xvc2U6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OltOU051bWJlciBudW1iZXJX
aXRoVW5zaWduZWRMb25nTG9uZzpub3RpZmljYXRpb25JRF1dXTsKK30KKworLSAodm9pZClub3Rp
ZmljYXRpb25EZXN0cm95ZWQ6KFdlYk5vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAg
IF9ub3RpZmljYXRpb25zLnJlbW92ZShbbm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEXSk7Cisg
ICAgW19ub3RpZmljYXRpb25zQnlUaXRsZS5nZXQoKSByZW1vdmVPYmplY3RGb3JLZXk6W25vdGlm
aWNhdGlvbiB0aXRsZV1dOworfQorCistICh2b2lkKWNsZWFyTm90aWZpY2F0aW9uczooTlNBcnJh
eSAqKW5vdGlmaWNhdGlvbklEcworeworICAgIGZvciAoTlNOdW1iZXIgKm5vdGlmaWNhdGlvbklE
IGluIG5vdGlmaWNhdGlvbklEcykgeworICAgICAgICB1aW50NjRfdCBpZCA9IFtub3RpZmljYXRp
b25JRCB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworICAgICAgICBSZXRhaW5QdHI8V2ViTm90aWZp
Y2F0aW9uPiBub3RpZmljYXRpb24gPSBfbm90aWZpY2F0aW9ucy50YWtlKGlkKTsKKyAgICAgICAg
X25vdGlmaWNhdGlvblZpZXdNYXAucmVtb3ZlKGlkKTsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlv
bikKKyAgICAgICAgICAgIFtfbm90aWZpY2F0aW9uc0J5VGl0bGUuZ2V0KCkgcmVtb3ZlT2JqZWN0
Rm9yS2V5Oltub3RpZmljYXRpb24uZ2V0KCkgdGl0bGVdXTsKKyAgICB9Cit9CisKKy0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkU2hvd05vdGlmaWNhdGlvbjoodWludDY0X3Qp
bm90aWZpY2F0aW9uSUQKK3sKKyAgICBOb3RpZmljYXRpb25JRE1hcDo6aXRlcmF0b3IgaXQgPSBf
bm90aWZpY2F0aW9ucy5maW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICBBU1NFUlQoaXQgIT0gX25v
dGlmaWNhdGlvbnMuZW5kKCkpOworICAgIFtpdC0+c2Vjb25kLmdldCgpIGRpc3BhdGNoU2hvd0V2
ZW50XTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkaWRDbGlja05v
dGlmaWNhdGlvbjoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQKK3sKKyAgICBOb3RpZmljYXRpb25J
RE1hcDo6aXRlcmF0b3IgaXQgPSBfbm90aWZpY2F0aW9ucy5maW5kKG5vdGlmaWNhdGlvbklEKTsK
KyAgICBBU1NFUlQoaXQgIT0gX25vdGlmaWNhdGlvbnMuZW5kKCkpOworICAgIFtpdC0+c2Vjb25k
LmdldCgpIGRpc3BhdGNoQ2xpY2tFdmVudF07Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmll
dyAqKXdlYlZpZXcgZGlkQ2xvc2VOb3RpZmljYXRpb25zOihOU0FycmF5ICopbm90aWZpY2F0aW9u
SURzCit7CisgICAgZm9yIChOU051bWJlciAqbm90aWZpY2F0aW9uSUQgaW4gbm90aWZpY2F0aW9u
SURzKSB7CisgICAgICAgIHVpbnQ2NF90IGlkID0gW25vdGlmaWNhdGlvbklEIHVuc2lnbmVkTG9u
Z0xvbmdWYWx1ZV07CisgICAgICAgIE5vdGlmaWNhdGlvbklETWFwOjppdGVyYXRvciBpdCA9IF9u
b3RpZmljYXRpb25zLmZpbmQoaWQpOworICAgICAgICBBU1NFUlQoaXQgIT0gX25vdGlmaWNhdGlv
bnMuZW5kKCkpOworICAgICAgICBbaXQtPnNlY29uZC5nZXQoKSBkaXNwYXRjaENsb3NlRXZlbnRd
OworICAgICAgICBbX25vdGlmaWNhdGlvbnNCeVRpdGxlLmdldCgpIHJlbW92ZU9iamVjdEZvcktl
eTpbaXQtPnNlY29uZC5nZXQoKSB0aXRsZV1dOworICAgICAgICBfbm90aWZpY2F0aW9ucy5yZW1v
dmUoaXQpOworICAgICAgICBfbm90aWZpY2F0aW9uVmlld01hcC5yZW1vdmUoaWQpOworICAgIH0K
K30KKworLSAodm9pZClzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrOih1aW50NjRfdClub3Rp
ZmljYXRpb25JRAoreworICAgIEFTU0VSVChfbm90aWZpY2F0aW9ucy5jb250YWlucyhub3RpZmlj
YXRpb25JRCkpOworICAgIFtfbm90aWZpY2F0aW9uVmlld01hcC5nZXQobm90aWZpY2F0aW9uSUQp
IF9ub3RpZmljYXRpb25EaWRDbGljazpub3RpZmljYXRpb25JRF07Cit9CisKKy0gKHZvaWQpc2lt
dWxhdGVXZWJOb3RpZmljYXRpb25DbGlja1dpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZQorewor
ICAgIE5TTnVtYmVyICpub3RpZmljYXRpb25JRCA9IFtfbm90aWZpY2F0aW9uc0J5VGl0bGUuZ2V0
KCkgb2JqZWN0Rm9yS2V5OnRpdGxlXTsKKyAgICBBU1NFUlQobm90aWZpY2F0aW9uSUQpOworICAg
IHVpbnQ2NF90IGlkID0gW25vdGlmaWNhdGlvbklEIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cisg
ICAgW19ub3RpZmljYXRpb25WaWV3TWFwLmdldChpZCkgX25vdGlmaWNhdGlvbkRpZENsaWNrOmlk
XTsKK30KKworLSAoV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbilwb2xpY3lGb3JPcmlnaW46KFdl
YlNlY3VyaXR5T3JpZ2luICopb3JpZ2luCit7CisgICAgTlNOdW1iZXIgKnBlcm1pc3Npb24gPSBb
X3Blcm1pc3Npb25zLmdldCgpIG9iamVjdEZvcktleTpbb3JpZ2luIHN0cmluZ1ZhbHVlXV07Cisg
ICAgaWYgKCFwZXJtaXNzaW9uKQorICAgICAgICByZXR1cm4gV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbk5vdEFsbG93ZWQ7CisgICAgaWYgKFtwZXJtaXNzaW9uIGJvb2xWYWx1ZV0pCisgICAgICAg
IHJldHVybiBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQWxsb3dlZDsKKyAgICByZXR1cm4gV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkRlbmllZDsKK30KKworLSAodm9pZClzZXRXZWJOb3RpZmlj
YXRpb25PcmlnaW46KE5TU3RyaW5nKilvcmlnaW4gcGVybWlzc2lvbjooQk9PTClhbGxvd2VkCit7
CisgICAgW19wZXJtaXNzaW9ucy5nZXQoKSBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhC
b29sOmFsbG93ZWRdIGZvcktleTpvcmlnaW5dOworfQorCistICh2b2lkKXJlbW92ZUFsbFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25zCit7CisgICAgW19wZXJtaXNzaW9ucy5nZXQoKSByZW1vdmVB
bGxPYmplY3RzXTsKK30KKworLSAodm9pZClyZXNldAoreworICAgIF9ub3RpZmljYXRpb25zLmNs
ZWFyKCk7CisgICAgX25vdGlmaWNhdGlvblZpZXdNYXAuY2xlYXIoKTsKKyAgICBbX25vdGlmaWNh
dGlvbnNCeVRpdGxlLmdldCgpIHJlbW92ZUFsbE9iamVjdHNdOworICAgIFtzZWxmIHJlbW92ZUFs
bFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBiMzZhOGFjLi42YzY1MTY2IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMzIsNiArMzIsNyBAQAog
CiAjaW1wb3J0ICJFZGl0aW5nRGVsZWdhdGUuaCIKICNpbXBvcnQgIk1vY2tHZW9sb2NhdGlvblBy
b3ZpZGVyLmgiCisjaW1wb3J0ICJNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbXBv
cnQgIlBvbGljeURlbGVnYXRlLmgiCiAjaW1wb3J0ICJTdG9yYWdlVHJhY2tlckRlbGVnYXRlLmgi
CiAjaW1wb3J0ICJVSURlbGVnYXRlLmgiCkBAIC0xMTYzLDEwICsxMTY0LDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IoZG91YmxlIGJhY2tpbmdTY2FsZUZhY3RvcikK
ICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBfc2V0Q3VzdG9tQmFja2luZ1NjYWxlRmFjdG9yOmJh
Y2tpbmdTY2FsZUZhY3Rvcl07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lX
ZWJOb3RpZmljYXRpb25DbGljayhKU1N0cmluZ1JlZiBqc1RpdGxlKQotewotfQotCiB2b2lkIFRl
c3RSdW5uZXI6OnJlc2V0UGFnZVZpc2liaWxpdHkoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQuCkBAIC0xMTg3LDIwICsxMTg0LDMyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6ZGVsaXZlcldlYklu
dGVudChKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQuCiB9CiAKLQogdm9pZCBUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb24oSlNTdHJpbmdSZWYganNPcmlnaW4pCiB7CisgICAgUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBjZk9yaWdpbihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBqc09yaWdpbikpOworICAgIEFTU0VSVChbW21haW5GcmFtZSB3ZWJWaWV3XSBf
bm90aWZpY2F0aW9uUHJvdmlkZXJdID09IFtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2hh
cmVkXSk7CisgICAgW1tNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2hhcmVkXSBzZXRXZWJO
b3RpZmljYXRpb25PcmlnaW46KE5TU3RyaW5nICopY2ZPcmlnaW4uZ2V0KCkgcGVybWlzc2lvbjpU
UlVFXTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bihKU1N0cmluZ1JlZiBqc09yaWdpbikKIHsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGNm
T3JpZ2luKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGpzT3JpZ2luKSk7CisgICAgQVNTRVJUKFtbbWFpbkZyYW1lIHdlYlZpZXddIF9ub3RpZmljYXRp
b25Qcm92aWRlcl0gPT0gW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaGFyZWRdKTsKKyAg
ICBbW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaGFyZWRdIHNldFdlYk5vdGlmaWNhdGlv
bk9yaWdpbjooTlNTdHJpbmcgKiljZk9yaWdpbi5nZXQoKSBwZXJtaXNzaW9uOkZBTFNFXTsKIH0K
IAogdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygp
CiB7CisgICAgW1tNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2hhcmVkXSByZW1vdmVBbGxX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uc107CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxh
dGVXZWJOb3RpZmljYXRpb25DbGljayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQogeworICAg
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0gW1ttYWluRnJhbWUgd2ViVmlld10gX25vdGlmaWNh
dGlvbklERm9yVGVzdGluZzpqc05vdGlmaWNhdGlvbl07CisgICAgW1tNb2NrV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIgc2hhcmVkXSBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrOm5vdGlmaWNh
dGlvbklEXTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNh
dGlvbkNsaWNrKEpTU3RyaW5nUmVmIGpzVGl0bGUpCit7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZGRkZWM3YS4uNTgwYjBkNiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1VJRGVsZWdhdGUubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkR1bXBS
ZW5kZXJUcmVlLmgiCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5oIgogI2lt
cG9ydCAiRXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIgorI2ltcG9ydCAiTW9ja1dlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCiAjaW1wb3J0IDxXZWJLaXQv
V2ViQXBwbGljYXRpb25DYWNoZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lUHJpdmF0ZS5o
PgpAQCAtMjg4LDYgKzI4OSwxMiBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dp
bmdJbmZvID0gbmlsOwogICAgIHJldHVybiBUUlVFOwogfQogCistICh2b2lkKXdlYlZpZXc6KFdl
YlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RGcm9tT3Jp
Z2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBsaXN0ZW5lcjooaWQ8V2ViQWxsb3dEZW55
UG9saWN5TGlzdGVuZXI+KWxpc3RlbmVyCit7CisgICAgWyhNb2NrV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIgKilbd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdIHNldFdlYk5vdGlmaWNhdGlv
bk9yaWdpbjpbb3JpZ2luIHN0cmluZ1ZhbHVlXSBwZXJtaXNzaW9uOllFU107CisgICAgW2xpc3Rl
bmVyIGFsbG93XTsKK30KKwogLSAodm9pZClkZWFsbG9jCiB7CiAgICAgW2RyYWdnaW5nSW5mbyBy
ZWxlYXNlXTsKLS0gCjEuNy4xMC4yIChBcHBsZSBHaXQtMzMpCgo=
</data>
<flag name="review"
          id="171262"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160660</attachid>
            <date>2012-08-27 01:32:09 -0700</date>
            <delta_ts>2012-08-27 02:09:12 -0700</delta_ts>
            <desc>5/9 - WTR support</desc>
            <filename>0005-WebKitTestRunner-should-support-notifications.patch</filename>
            <type>text/plain</type>
            <size>30555</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA3YWMzMTAwNzJhZWY1ZDVmNGViOTY1ZTQ1MjU2M2YxM2IzODFiODhhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDI2IEF1ZyAyMDEyIDIzOjIzOjU5IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA1LzldIFdlYktpdFRl
c3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucwogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CiA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkRlZmluZSBzYW1lIHNldCBvZiBmdW5jdGlvbnMg
aW4gRFJUIGhlcmUuIExlZ2FjeSBBUElzIHdpbGwgbm90IGJlIHN1cHBvcnRlZCwgc2luY2UgbWFu
eSBvZiB0aGUgdGVzdHMgYXJlIHNraXBwZWQKb24gcG9ydHMgdGhhdCBkbyB0ZXN0IG5vdGlmaWNh
dGlvbnMsIGFuZCB0aGUgaXNzdWUgd2l0aCB1c2luZyBmaWxlOi8vIGFzIHRoZSBvcmlnaW4gbWVh
bnMgYSBsb3Qgb2YgdGhlIHBlcm1pc3Npb25zCnRlc3RzIHdvbid0IHdvcmsuIEJ1Z3MgODEwNDgg
YW5kIDgxNjk3IHdpbGwgdHJhY2sgbWlncmF0aW5nIHRoZSBleGlzdGluZyB0ZXN0cyB0byB1c2Ug
dGhlIG5ldyB0ZXN0UnVubmVyIEFQSSwgYW5kIG1vdmUKdGhlIHRlc3RzIHRvIGh0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy4KClBlcm1pc3Npb25zIHdpbGwgYmUgaGFuZGxlZCBvbmx5IGluIHRoZSBp
bmplY3RlZCBidW5kbGUuIFRoaXMgYWxsb3dzIHRlc3RzIHRvIHNldCBwZXJtaXNzaW9uIHN5bmNo
cm9ub3VzbHksIGFuZCBub3QKcmVxdWlyZSBhIGNoYWluIG9mIHNldFRpbWVvdXQoKSdzIHdoZW4g
d3JpdGluZyBhIG5vdGlmaWNhdGlvbiB0ZXN0LiBDbGlja2luZyBhIG5vdGlmaWNhdGlvbiwgaG93
ZXZlciwgc2hvdWxkCmJlIGludm9rZWQgZnJvbSB0aGUgVUlQcm9jZXNzLgoKKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgoqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgooV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBXaGVuIHRvbGQgdG8gIlJlc2V0IiwgY2xlYXIg
b3V0IGFsbCBvZiB0aGUgcGVybWlzc2lvbnMuCihXVFI6OkluamVjdGVkQnVuZGxlOjpwb3N0U2lt
dWxhdGVXZWJOb3RpZmljYXRpb25DbGljayk6IFRlbGwgdGhlIGJ1bmRsZSBjbGllbnQgdG8gc2lt
dWxhdGUgYSBjbGljayBiYXNlZCBvbiB0aGUKbm90aWZpY2F0aW9uJ3MgaW50ZXJuYWwgSUQuCiog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgoqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CihXVFI6OlRlc3RSdW5u
ZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6IE1hbnVhbGx5IHNldCB0aGUgcGVy
bWlzc2lvbiB1c2luZyBXS0J1bmRsZSBTUEkuCihXVFI6OlRlc3RSdW5uZXI6OmRlbnlXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKTogTWFudWFsbHkgc2V0IHRoZSBwZXJtaXNzaW9uIHVzaW5nIFdL
QnVuZGxlIFNQSS4KKFdUUjo6VGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbnMpOgooV1RSOjpUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNr
KTogUG9zdCBhIG1lc3NhZ2UgdGhyb3VnaCB0aGUgaW5qZWN0ZWQgYnVuZGxlLgoqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgoKQmVjYXVzZSBzdXBwb3J0aW5n
IHdlYiBub3RpZmljYXRpb25zIGdvZXMgYmV5b25kIGEgY291cGxlIGZ1bmN0aW9ucywgbW92ZSBh
bGwgb2YgdGhlIGxvZ2ljIGludG8gYSBXZWJOb3RpZmljYXRpb25Qcm92aWRlcgpjbGFzcy4KKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogV2hlbiB0aGUgaW5qZWN0ZWQg
YnVuZGxlIHNlbmRzIGEgbWVzc2FnZSB0byBzaW11bGF0ZSBhIGNsaWNrLApUZXN0SW52b2NhdGlv
biBmb3J3YXJkcyB0aGF0IHJlcXVlc3QgdG8gdGhlIFRlc3RDb250cm9sbGVyLgoqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgooV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlh
bGl6ZSk6IFNldCB0aGUgcHJvdmlkZXIuCihXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRl
VG9Db25zaXN0ZW50VmFsdWVzKTogVGVsbCB0aGUgcHJvdmlkZXIgdG8gcmVzZXQuCihXVFI6OlRl
c3RDb250cm9sbGVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTogVGVsbCB0aGUgcHJv
dmlkZXIgdG8gc2ltdWxhdGUgYSB1c2VyIGNsaWNraW5nIG9uIGEgcGxhdGZvcm0gbm90aWZpY2F0
aW9uLgoqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDogSG9sZHMgYW4gaW5zdGFu
Y2UgdG8gdGhlIHByb3ZpZGVyLgoKVGhlIHByb3ZpZGVyIG1haW50YWlucyBhIHBvaW50ZXIgdG8g
b25lIG5vdGlmaWNhdGlvbiBtYW5hZ2VyIChwcmVzdW1hYmx5IHRoZSB3ZWIgcHJvY2VzcyBhc3Nv
Y2lhdGVkIHdpdGggV1RSKSwgYW5kIGEgc2V0Cm9mIG5vdGlmaWNhdGlvbiBJRHMgdGhhdCBoYXZl
IGJlZW4gInNob3duIiBieSB0aGUgcGxhdGZvcm0uIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRl
IGEgY2xpY2sgb24gYSBub3RpZmljYXRpb24uCiogV2ViS2l0VGVzdFJ1bm5lci9XZWJOb3RpZmlj
YXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKiBXZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcDogQWRkZWQuCihXVFI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaG93
V2ViTm90aWZpY2F0aW9uKTogQWRkcyB0aGUgbm90aWZpY2F0aW9uIHRvIHNldCBvZiBzaG93biBu
b3RpZmljYXRpb25zLiBOb3RpZmllcyBwcm92aWRlciB0aGF0CnRoZSBub3RpZmljYXRpb24gZ290
IHNob3duLgooV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2xvc2VXZWJOb3RpZmljYXRp
b24pOiBSZW1vdmVzIHRoZSBub3RpZmljYXRpb24gZnJvbSB0aGUgc2V0LiBOb3RpZmllcyBwcm92
aWRlciB0aGF0IHRoZSBub3RpZmljYXRpb24KZ290IGNsb3NlZC4KKFdUUjo6V2ViTm90aWZpY2F0
aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIpOiBNYWludGFpbnMgb25lIG1hbmFn
ZXIsIHdoaWNoIGlzIGZpbmUgZm9yIHRlc3RpbmcgcHVycG9zZXMuCihXVFI6OldlYk5vdGlmaWNh
dGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKTogTWFpbnRhaW5zIG9uZSBt
YW5hZ2VyLgooV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6bm90aWZpY2F0aW9uUGVybWlz
c2lvbnMpOiBXaGVuIHRoZSB3ZWIgcHJvY2VzcyBzdGFydHMsIGl0IG1haW50YWlucyBhbiBpbml0
aWFsIHNldCBvZiBrbm93bgpwZXJtaXNzaW9ucy4gRm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIGFs
d2F5cyB3YW50IHRoaXMgc2V0IHRvIGJlIGVtcHR5LgooV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92
aWRlcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayk6IE5vdGlmaWVzIHByb3ZpZGVyIHRo
YXQgdGhlIG5vdGlmaWNhdGlvbiBnb3QgImNsaWNrZWQiLgooV1RSOjpXZWJOb3RpZmljYXRpb25Q
cm92aWRlcjo6cmVzZXQpOiBUbyByZXNldCB0aGUgc3RhdGUsIHdlIHByZXRlbmQgdGhhdCB3ZSBj
bG9zZWQgYWxsIG9mIHRoZSBwbGF0Zm9ybSBub3RpZmljYXRpb25zLgoKKiBXZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLgotLS0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICA1OCArKysrKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsICAgICAgICAgfCAgICA2ICsKIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHAgICAgICAgICAgICAgIHwgICAgOCArCiAuLi4vSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgfCAgIDI1ICsrKysKIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIHwgICAgNiAr
CiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICB8ICAg
MTQgKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCAgICAgICAgICAg
IHwgICAgOSArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgICAg
ICAgICAgfCAgICA3ICsKIC4uLi9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogICAgIHwgICAgNiArCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCB8ICAxNTUgKysrKysrKysrKysrKysrKysrKysKIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAgIHwgICA1NyArKysrKysrCiAxMiBm
aWxlcyBjaGFuZ2VkLCAzNTIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
CgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVk
Y2NmNjEuLmUwZTkzNzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsNSArMSw2MyBAQAogMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CiAKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBub3Rp
ZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03Nzk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVmaW5lIHNhbWUgc2V0IG9mIGZ1
bmN0aW9ucyBpbiBEUlQgaGVyZS4gTGVnYWN5IEFQSXMgd2lsbCBub3QgYmUgc3VwcG9ydGVkLCBz
aW5jZSBtYW55IG9mIHRoZSB0ZXN0cyBhcmUgc2tpcHBlZAorICAgICAgICBvbiBwb3J0cyB0aGF0
IGRvIHRlc3Qgbm90aWZpY2F0aW9ucywgYW5kIHRoZSBpc3N1ZSB3aXRoIHVzaW5nIGZpbGU6Ly8g
YXMgdGhlIG9yaWdpbiBtZWFucyBhIGxvdCBvZiB0aGUgcGVybWlzc2lvbnMKKyAgICAgICAgdGVz
dHMgd29uJ3Qgd29yay4gQnVncyA4MTA0OCBhbmQgODE2OTcgd2lsbCB0cmFjayBtaWdyYXRpbmcg
dGhlIGV4aXN0aW5nIHRlc3RzIHRvIHVzZSB0aGUgbmV3IHRlc3RSdW5uZXIgQVBJLCBhbmQgbW92
ZQorICAgICAgICB0aGUgdGVzdHMgdG8gaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zLgorCisgICAg
ICAgIFBlcm1pc3Npb25zIHdpbGwgYmUgaGFuZGxlZCBvbmx5IGluIHRoZSBpbmplY3RlZCBidW5k
bGUuIFRoaXMgYWxsb3dzIHRlc3RzIHRvIHNldCBwZXJtaXNzaW9uIHN5bmNocm9ub3VzbHksIGFu
ZCBub3QKKyAgICAgICAgcmVxdWlyZSBhIGNoYWluIG9mIHNldFRpbWVvdXQoKSdzIHdoZW4gd3Jp
dGluZyBhIG5vdGlmaWNhdGlvbiB0ZXN0LiBDbGlja2luZyBhIG5vdGlmaWNhdGlvbiwgaG93ZXZl
ciwgc2hvdWxkCisgICAgICAgIGJlIGludm9rZWQgZnJvbSB0aGUgVUlQcm9jZXNzLgorCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmRpZFJlY2VpdmVNZXNz
YWdlKTogV2hlbiB0b2xkIHRvICJSZXNldCIsIGNsZWFyIG91dCBhbGwgb2YgdGhlIHBlcm1pc3Np
b25zLgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6cG9zdFNpbXVsYXRlV2ViTm90aWZp
Y2F0aW9uQ2xpY2spOiBUZWxsIHRoZSBidW5kbGUgY2xpZW50IHRvIHNpbXVsYXRlIGEgY2xpY2sg
YmFzZWQgb24gdGhlCisgICAgICAgIG5vdGlmaWNhdGlvbidzIGludGVybmFsIElELgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24p
OiBNYW51YWxseSBzZXQgdGhlIHBlcm1pc3Npb24gdXNpbmcgV0tCdW5kbGUgU1BJLgorICAgICAg
ICAoV1RSOjpUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6IE1hbnVh
bGx5IHNldCB0aGUgcGVybWlzc2lvbiB1c2luZyBXS0J1bmRsZSBTUEkuCisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKToKKyAgICAg
ICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayk6IFBvc3Qg
YSBtZXNzYWdlIHRocm91Z2ggdGhlIGluamVjdGVkIGJ1bmRsZS4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKworICAgICAgICBCZWNhdXNl
IHN1cHBvcnRpbmcgd2ViIG5vdGlmaWNhdGlvbnMgZ29lcyBiZXlvbmQgYSBjb3VwbGUgZnVuY3Rp
b25zLCBtb3ZlIGFsbCBvZiB0aGUgbG9naWMgaW50byBhIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
CisgICAgICAgIGNsYXNzLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUpOiBXaGVuIHRoZSBpbmplY3RlZCBidW5kbGUgc2VuZHMgYSBtZXNz
YWdlIHRvIHNpbXVsYXRlIGEgY2xpY2ssCisgICAgICAgIFRlc3RJbnZvY2F0aW9uIGZvcndhcmRz
IHRoYXQgcmVxdWVzdCB0byB0aGUgVGVzdENvbnRyb2xsZXIuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
Ojppbml0aWFsaXplKTogU2V0IHRoZSBwcm92aWRlci4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMpOiBUZWxsIHRoZSBwcm92aWRlciB0
byByZXNldC4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlV2ViTm90aWZp
Y2F0aW9uQ2xpY2spOiBUZWxsIHRoZSBwcm92aWRlciB0byBzaW11bGF0ZSBhIHVzZXIgY2xpY2tp
bmcgb24gYSBwbGF0Zm9ybSBub3RpZmljYXRpb24uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oOiBIb2xkcyBhbiBpbnN0YW5jZSB0byB0aGUgcHJvdmlkZXIuCisK
KyAgICAgICAgVGhlIHByb3ZpZGVyIG1haW50YWlucyBhIHBvaW50ZXIgdG8gb25lIG5vdGlmaWNh
dGlvbiBtYW5hZ2VyIChwcmVzdW1hYmx5IHRoZSB3ZWIgcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGgg
V1RSKSwgYW5kIGEgc2V0CisgICAgICAgIG9mIG5vdGlmaWNhdGlvbiBJRHMgdGhhdCBoYXZlIGJl
ZW4gInNob3duIiBieSB0aGUgcGxhdGZvcm0uIFRoaXMgYWxsb3dzIHVzIHRvIHNpbXVsYXRlIGEg
Y2xpY2sgb24gYSBub3RpZmljYXRpb24uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXVFI6OldlYk5v
dGlmaWNhdGlvblByb3ZpZGVyOjpzaG93V2ViTm90aWZpY2F0aW9uKTogQWRkcyB0aGUgbm90aWZp
Y2F0aW9uIHRvIHNldCBvZiBzaG93biBub3RpZmljYXRpb25zLiBOb3RpZmllcyBwcm92aWRlciB0
aGF0CisgICAgICAgIHRoZSBub3RpZmljYXRpb24gZ290IHNob3duLgorICAgICAgICAoV1RSOjpX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6Y2xvc2VXZWJOb3RpZmljYXRpb24pOiBSZW1vdmVzIHRo
ZSBub3RpZmljYXRpb24gZnJvbSB0aGUgc2V0LiBOb3RpZmllcyBwcm92aWRlciB0aGF0IHRoZSBu
b3RpZmljYXRpb24KKyAgICAgICAgZ290IGNsb3NlZC4KKyAgICAgICAgKFdUUjo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXI6OmFkZE5vdGlmaWNhdGlvbk1hbmFnZXIpOiBNYWludGFpbnMgb25lIG1h
bmFnZXIsIHdoaWNoIGlzIGZpbmUgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisgICAgICAgIChXVFI6
OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKTogTWFp
bnRhaW5zIG9uZSBtYW5hZ2VyLgorICAgICAgICAoV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRl
cjo6bm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOiBXaGVuIHRoZSB3ZWIgcHJvY2VzcyBzdGFydHMs
IGl0IG1haW50YWlucyBhbiBpbml0aWFsIHNldCBvZiBrbm93bgorICAgICAgICBwZXJtaXNzaW9u
cy4gRm9yIHRlc3RpbmcgcHVycG9zZXMsIHdlIGFsd2F5cyB3YW50IHRoaXMgc2V0IHRvIGJlIGVt
cHR5LgorICAgICAgICAoV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2ltdWxhdGVXZWJO
b3RpZmljYXRpb25DbGljayk6IE5vdGlmaWVzIHByb3ZpZGVyIHRoYXQgdGhlIG5vdGlmaWNhdGlv
biBnb3QgImNsaWNrZWQiLgorICAgICAgICAoV1RSOjpXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6
cmVzZXQpOiBUbyByZXNldCB0aGUgc3RhdGUsIHdlIHByZXRlbmQgdGhhdCB3ZSBjbG9zZWQgYWxs
IG9mIHRoZSBwbGF0Zm9ybSBub3RpZmljYXRpb25zLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZCBXZWJO
b3RpZmljYXRpb25Qcm92aWRlci4KKworMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKICAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1
cHBvcnQgbm90aWZpY2F0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzc5NjkKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZmY5MTU3OS4uMDdhMzVhMiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsCkBAIC0xNjAsNiArMTYwLDEyIEBAIG1vZHVsZSBXVFIgewogCiAgICAg
ICAgIC8vIENvbnRyb2wgZnVsbCBzY3JlZW4gYmVoYXZpb3IuCiAgICAgICAgIHZvaWQgc2V0SGFz
Q3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGluIGJvb2xlYW4gdmFsdWUpOworCisgICAgICAgIC8v
IFdlYiBub3RpZmljYXRpb25zIHN1cHBvcnQKKyAgICAgICAgdm9pZCBncmFudFdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oaW4gRE9NU3RyaW5nIG9yaWdpbik7CisgICAgICAgIHZvaWQgZGVueVdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb24oaW4gRE9NU3RyaW5nIG9yaWdpbik7CisgICAgICAgIHZv
aWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKKyAgICAgICAgdm9pZCBz
aW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKGluIG9iamVjdCBub3RpZmljYXRpb24pOwogICAg
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNjNlZDE3OC4uM2MyZDRmYSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAKQEAgLTE3MSw2ICsxNzEsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRSZWNl
aXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZwogICAg
ICAgICBtX2R1bXBQaXhlbHMgPSBmYWxzZTsKIAogICAgICAgICByZXNldExvY2FsU2V0dGluZ3Mo
KTsKKyAgICAgICAgbV90ZXN0UnVubmVyLT5yZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucygpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMzgsNCArMzM5LDExIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3RTZXRXaW5kb3dJc0tleShib29sIGlzS2V5KQogICAgIFdL
QnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShtX2J1bmRsZSwgbWVzc2FnZU5hbWUuZ2V0KCks
IG1lc3NhZ2VCb2R5LmdldCgpLCAwKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZTo6cG9zdFNp
bXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrIikpOwor
ICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS1VJbnQ2
NENyZWF0ZShub3RpZmljYXRpb25JRCkpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5k
bGUsIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IGQxZjE5OGYuLjdlODlhYzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcG9zdEZvY3VzV2ViVmlldygp
OwogICAgIHZvaWQgcG9zdFNldEJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUpOwogICAgIHZvaWQg
cG9zdFNldFdpbmRvd0lzS2V5KGJvb2wpOworICAgIHZvaWQgcG9zdFNpbXVsYXRlV2ViTm90aWZp
Y2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogCiBwcml2YXRlOgogICAgIElu
amVjdGVkQnVuZGxlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBiOTRlNWQ0Li4xYWRjZGFjIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTY4NCw0ICs2ODQsMjkgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKEpTU3RyaW5nUmVmIGxvY2F0aW9uKQogICAgICAgICBzZXRVc2VyU3R5bGVTaGVldEVu
YWJsZWQodHJ1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gb3JpZ2luV0sgPSB0b1dLKG9yaWdpbik7CisgICAgV0tCdW5kbGVTZXRXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpLCBvcmlnaW5XSy5nZXQoKSwgdHJ1ZSk7
Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNT
dHJpbmdSZWYgb3JpZ2luKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmlnaW5X
SyA9IHRvV0sob3JpZ2luKTsKKyAgICBXS0J1bmRsZVNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkucGFnZSgpLT5wYWdlKCksIG9yaWdpbldLLmdldCgpLCBmYWxzZSk7Cit9CisKK3ZvaWQg
VGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworICAg
IFdLQnVuZGxlUmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5w
YWdlKCkpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xp
Y2soSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pCit7CisgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWlu
RnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnBhZ2UoKS0+cGFnZSgpKTsKKyAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOworICAgIHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEID0gV0tCdW5kbGVHZXRXZWJOb3RpZmljYXRpb25JRChJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkuYnVuZGxlKCksIGNvbnRleHQsIG5vdGlmaWNhdGlvbik7CisgICAgSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKG5vdGlmaWNhdGlv
bklEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDMyYjQzZmYuLjhjNDA0MmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC0yMjQsNiArMjI0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcihib29sIHZhbHVlKSB7IG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2
aW9yID0gdmFsdWU7IH0KICAgICBib29sIGhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpIGNv
bnN0IHsgcmV0dXJuIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOyB9CiAKKyAgICAvLyBXZWIg
bm90aWZpY2F0aW9ucy4KKyAgICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihK
U1N0cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24oSlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25zKCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpT
VmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBw
bGF0Zm9ybU5hbWUoKTsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYg
c3RhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBk
MThmZTNmLi5jOWFlYzNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2lu
Y2x1ZGUgIlRlc3RJbnZvY2F0aW9uLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHRQcml2
YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05vdGlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS051bWJl
ci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLUGFnZVByaXZhdGUuaD4KQEAgLTMzMyw2ICszMzUsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIH07CiAgICAg
V0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQobV9jb250ZXh0LmdldCgpLCAmaW5qZWN0
ZWRCdW5kbGVDbGllbnQpOwogCisgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG5vdGlmaWNh
dGlvbk1hbmFnZXIgPSBXS0NvbnRleHRHZXROb3RpZmljYXRpb25NYW5hZ2VyKG1fY29udGV4dC5n
ZXQoKSk7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlciBub3RpZmljYXRpb25LaXQgPSBtX3dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLnByb3ZpZGVyKCk7CisgICAgV0tOb3RpZmljYXRpb25NYW5h
Z2VyU2V0UHJvdmlkZXIobm90aWZpY2F0aW9uTWFuYWdlciwgJm5vdGlmaWNhdGlvbktpdCk7CisK
ICAgICBpZiAodGVzdFBsdWdpbkRpcmVjdG9yeSgpKQogICAgICAgICBXS0NvbnRleHRTZXRBZGRp
dGlvbmFsUGx1Z2luc0RpcmVjdG9yeShtX2NvbnRleHQuZ2V0KCksIHRlc3RQbHVnaW5EaXJlY3Rv
cnkoKSk7CiAKQEAgLTUwMSw2ICs1MDcsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0
YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICAvLyBSZS1zZXQgdG8gdGhlIGRlZmF1bHQgYmFj
a2luZyBzY2FsZSBmYWN0b3IgYnkgc2V0dGluZyB0aGUgY3VzdG9tIHNjYWxlIGZhY3RvciB0byAw
LgogICAgIFdLUGFnZVNldEN1c3RvbUJhY2tpbmdTY2FsZUZhY3RvcihtX21haW5XZWJWaWV3LT5w
YWdlKCksIDApOwogCisgICAgLy8gUmVzZXQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zCisgICAg
bV93ZWJOb3RpZmljYXRpb25Qcm92aWRlci5yZXNldCgpOworCiAgICAgLy8gUmVzZXQgbWFpbiBw
YWdlIGJhY2sgdG8gYWJvdXQ6YmxhbmsKICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxzZTsKIApA
QCAtOTIxLDQgKzkzMCw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnByb2Nlc3NEaWRDcmFzaCgp
CiAgICAgICAgIGV4aXQoMSk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJO
b3RpZmljYXRpb25Qcm92aWRlci5zaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKG5vdGlmaWNh
dGlvbklEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKaW5kZXggMDEyYWI3ZS4uYTUzZDM0OSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjksNyArMjksMTIgQEAKICNpbmNsdWRlIDxXZWJL
aXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHZlY3Rvcj4K
KyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIgorCit1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV1RSIHsKIApAQCAt
NjIsNiArNjcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBiZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWU7IH0KICAgICB2b2lkIHNl
dEJlZm9yZVVubG9hZFJldHVyblZhbHVlKGJvb2wgdmFsdWUpIHsgbV9iZWZvcmVVbmxvYWRSZXR1
cm5WYWx1ZSA9IHZhbHVlOyB9CiAKKyAgICB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xp
Y2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworCiAgICAgYm9vbCByZXNldFN0YXRlVG9Db25z
aXN0ZW50VmFsdWVzKCk7CiAKIHByaXZhdGU6CkBAIC0xMTIsNiArMTE5LDggQEAgcHJpdmF0ZToK
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbV9pbmplY3RlZEJ1bmRsZVBhdGg7CiAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1fdGVzdFBsdWdpbkRpcmVjdG9yeTsKIAorICAgIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CisKICAgICBP
d25QdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gbV9jb250ZXh0OwogICAgIFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBt
X3BhZ2VHcm91cDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5k
ZXggZmQzNWFmOS4uYTU0ZmY2NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTMzOSw2ICszMzksMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayIpKSB7CisgICAg
ICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tVSW50NjRHZXRUeXBlSUQo
KSk7CisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0gV0tVSW50NjRHZXRWYWx1ZShz
dGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4obWVzc2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNoYXJlZCgpLnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0aW9u
SUQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
ci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmU4MjYyZi4uN2Nl
ZGQwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0LDYgKzM0LDcg
QEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyogQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OworCQkzMTY0QzhGMDE1RDFBREExMDBF
RjFGRTAgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJNTMyMkZCNDMxM0ZEQTBDRDAwNDFB
QkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIyRkI0MTEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGlj
UmVkdW5kYW5jeUNoZWNrLmNwcCAqLzsgfTsKIAkJNTMyMkZCNDYxM0ZEQTBFQTAwNDFBQkNDIC8q
IFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTMyMkZCNDQxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQu
Y3BwICovOyB9OwogCQk1NjQxRTJEMDE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU2NDFFMkNFMTQzMzVFOTUwMDgzMDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwICov
OyB9OwpAQCAtMTIwLDYgKzEyMSw4IEBACiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBK
U0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMjlBOEZD
RTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTEw
QkUwRjE1QkEwMTE0MDBEMjE2QUMgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc4RDQ0MjIx
MzM0NkQwMDAwNkE3NzdCIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNBIC8qIGxp
YldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2Vi
Q29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk0MTgxNzMxQjEzOEFEMzlEMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBwYXRo
ID0gV2ViQ29yZVRlc3RTdXBwb3J0L1dlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjYwLDYgKzI2Myw4IEBACiAJCQkJQkNEN0QyRjYx
MTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmggKi8sCiAJCQkJQkNEN0QyRjcxMTky
MTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCAqLywKIAkJCQlCQzI1MUExNzExRDE2
Nzc0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oICovLAorCQkJCTMxMTBCRTBG
MTVCQTAxMTQwMEQyMTZBQyAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJCTMx
NjRDOEVGMTVEMUFEQTEwMEVGMUZFMCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8s
CiAJCQkpOwogCQkJbmFtZSA9IFRlc3RSdW5uZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtNTY3LDYgKzU3Miw3IEBACiAJCQkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8qIFRl
c3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTE5MjA1MTMzM0U0RjgwMDMw
MTFEQyAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NzBCODI4
MTM4NkZDQTUwMDJFQjM1NSAvKiBFdmVudFNlbmRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzE2NEM4RjAxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJO
b3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i
NzI3Nzk4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKwor
I2luY2x1ZGUgPFdlYktpdDIvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dL
Tm90aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS051bWJlci5oPgorI2luY2x1ZGUg
PFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CisKK25hbWVzcGFjZSBXVFIgeworCitzdGF0aWMgdm9pZCBzaG93V2ViTm90aWZpY2F0aW9uKFdL
UGFnZVJlZiBwYWdlLCBXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPnNob3dXZWJOb3RpZmljYXRpb24ocGFn
ZSwgbm90aWZpY2F0aW9uKTsKK30KKworc3RhdGljIHZvaWQgY2xvc2VXZWJOb3RpZmljYXRpb24o
V0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5jbG9zZVdlYk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOwor
fQorCitzdGF0aWMgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFu
YWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19j
YXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5hZGROb3RpZmljYXRpb25NYW5hZ2VyKG1hbmFnZXIpOworfQorCitzdGF0aWMgdm9pZCBy
ZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2Vy
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5yZW1vdmVOb3Rp
ZmljYXRpb25NYW5hZ2VyKG1hbmFnZXIpOworfQorCitzdGF0aWMgV0tEaWN0aW9uYXJ5UmVmIG5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpLT5ub3RpZmljYXRpb25QZXJtaXNzaW9ucygpOworfQorCitXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlcjo6V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIoKQoreworfQorCitXS05v
dGlmaWNhdGlvblByb3ZpZGVyIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpwcm92aWRlcigpCit7
CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlciBub3RpZmljYXRpb25Qcm92aWRlciA9IHsKKyAg
ICAgICAga1dLTm90aWZpY2F0aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgdGhp
cywKKyAgICAgICAgV1RSOjpzaG93V2ViTm90aWZpY2F0aW9uLAorICAgICAgICBXVFI6OmNsb3Nl
V2ViTm90aWZpY2F0aW9uLAorICAgICAgICAwLCAvLyBkaWREZXN0cm95Tm90aWZpY2F0aW9uCisg
ICAgICAgIFdUUjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlciwKKyAgICAgICAgV1RSOjpyZW1vdmVO
b3RpZmljYXRpb25NYW5hZ2VyLAorICAgICAgICBXVFI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25z
LAorICAgICAgICAwLCAvLyBjbGVhck5vdGlmaWNhdGlvbnMKKyAgICB9OworICAgIHJldHVybiBu
b3RpZmljYXRpb25Qcm92aWRlcjsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6
c2hvd1dlYk5vdGlmaWNhdGlvbihXS1BhZ2VSZWYsIFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNh
dGlvbikKK3sKKyAgICBpZiAoIW1fbm90aWZpY2F0aW9uTWFuYWdlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgdWludDY0X3QgaWQgPSBXS05vdGlmaWNhdGlvbkdldElEKG5vdGlmaWNhdGlvbik7
CisgICAgSGFzaFNldDx1aW50NjRfdD46OkFkZFJlc3VsdCByZXN1bHQgPSBtX3Nob3duTm90aWZp
Y2F0aW9ucy5hZGQoaWQpOworICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7CisKKyAgICBX
S05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZFNob3dOb3RpZmljYXRpb24obV9ub3RpZmlj
YXRpb25NYW5hZ2VyLmdldCgpLCBXS05vdGlmaWNhdGlvbkdldElEKG5vdGlmaWNhdGlvbikpOwor
fQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpjbG9zZVdlYk5vdGlmaWNhdGlvbihX
S05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlv
bk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHVpbnQ2NF90IGlkID0gV0tOb3RpZmlj
YXRpb25HZXRJRChub3RpZmljYXRpb24pOworICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiB3
a0lEID0gV0tVSW50NjRDcmVhdGUoaWQpOworICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZUFycmF5
UmVmPiBhcnJheShBZG9wdFdLLCBXS011dGFibGVBcnJheUNyZWF0ZSgpKTsKKyAgICBXS0FycmF5
QXBwZW5kSXRlbShhcnJheS5nZXQoKSwgd2tJRC5nZXQoKSk7CisgICAgbV9zaG93bk5vdGlmaWNh
dGlvbnMucmVtb3ZlKGlkKTsKKyAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZENs
b3NlTm90aWZpY2F0aW9ucyhtX25vdGlmaWNhdGlvbk1hbmFnZXIuZ2V0KCksIGFycmF5LmdldCgp
KTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFu
YWdlcihXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgbWFuYWdlcikKK3sKKyAgICAvLyBXZSBhc3N1
bWUgdGhlcmUgaXMgb25seSBvbmUgZm9yIHRlc3RpbmcuCisgICAgQVNTRVJUKCFtX25vdGlmaWNh
dGlvbk1hbmFnZXIpOworICAgIG1fbm90aWZpY2F0aW9uTWFuYWdlciA9IG1hbmFnZXI7Cit9CisK
K3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIo
V0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG1hbmFnZXIpCit7CisgICAgLy8gV2UgYXNzdW1lIHRo
ZXJlIGlzIG9ubHkgb25lIGZvciB0ZXN0aW5nLgorICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbk1h
bmFnZXIpOworICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbk1hbmFnZXIuZ2V0KCkgPT0gbWFuYWdl
cik7CisgICAgbV9ub3RpZmljYXRpb25NYW5hZ2VyID0gMDsKK30KKworV0tEaWN0aW9uYXJ5UmVm
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpub3RpZmljYXRpb25QZXJtaXNzaW9ucygpCit7Cisg
ICAgLy8gSW5pdGlhbCBwZXJtaXNzaW9ucyBhcmUgYWx3YXlzIGVtcHR5LgorICAgIHJldHVybiBX
S011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIEFTU0VSVChtX3Nob3duTm90aWZpY2F0aW9ucy5jb250YWlucyhub3RpZmljYXRpb25J
RCkpOworICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRp
b24obV9ub3RpZmljYXRpb25NYW5hZ2VyLmdldCgpLCBub3RpZmljYXRpb25JRCk7Cit9CisKK3Zv
aWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1fbm90aWZp
Y2F0aW9uTWFuYWdlcikgeworICAgICAgICBtX3Nob3duTm90aWZpY2F0aW9ucy5jbGVhcigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlQXJyYXlS
ZWY+IGFycmF5KEFkb3B0V0ssIFdLTXV0YWJsZUFycmF5Q3JlYXRlKCkpOworICAgIEhhc2hTZXQ8
dWludDY0X3Q+Ojpjb25zdF9pdGVyYXRvciBpdEVuZCA9IG1fc2hvd25Ob3RpZmljYXRpb25zLmVu
ZCgpOworICAgIGZvciAoSGFzaFNldDx1aW50NjRfdD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9z
aG93bk5vdGlmaWNhdGlvbnMuYmVnaW4oKTsgaXQgIT0gaXRFbmQ7ICsraXQpIHsKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHdrSUQgPSBXS1VJbnQ2NENyZWF0ZSgqaXQpOworICAg
ICAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheS5nZXQoKSwgd2tJRC5nZXQoKSk7CisgICAgfQor
CisgICAgbV9zaG93bk5vdGlmaWNhdGlvbnMuY2xlYXIoKTsKKyAgICBXS05vdGlmaWNhdGlvbk1h
bmFnZXJQcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhtX25vdGlmaWNhdGlvbk1hbmFnZXIu
Z2V0KCksIGFycmF5LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkxMTRjZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCisjZGVm
aW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05vdGlmaWNhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLTm90aWZpY2F0aW9uUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0
YWluUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92
aWRlciB7CitwdWJsaWM6CisgICAgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIoKTsKKyAgICBXS05v
dGlmaWNhdGlvblByb3ZpZGVyIHByb3ZpZGVyKCk7CisKKyAgICB2b2lkIHNob3dXZWJOb3RpZmlj
YXRpb24oV0tQYWdlUmVmLCBXS05vdGlmaWNhdGlvblJlZik7CisgICAgdm9pZCBjbG9zZVdlYk5v
dGlmaWNhdGlvbihXS05vdGlmaWNhdGlvblJlZik7CisgICAgdm9pZCBhZGROb3RpZmljYXRpb25N
YW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZik7CisgICAgdm9pZCByZW1vdmVOb3RpZmlj
YXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZik7CisgICAgV0tEaWN0aW9uYXJ5
UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKCk7CisKKyAgICB2b2lkIHNpbXVsYXRlV2ViTm90
aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgcmVzZXQo
KTsKKworcHJpdmF0ZToKKyAgICBXS1JldGFpblB0cjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY+
IG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyAgICBIYXNoU2V0PHVpbnQ2NF90PiBtX3Nob3duTm90
aWZpY2F0aW9uczsKK307CisKK30KKworI2VuZGlmCi0tIAoxLjcuMTAuMiAoQXBwbGUgR2l0LTMz
KQoK
</data>
<flag name="review"
          id="171263"
          type_id="1"
          status="-"
          setter="haraken"
    />
    <flag name="commit-queue"
          id="171274"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160661</attachid>
            <date>2012-08-27 01:33:16 -0700</date>
            <delta_ts>2012-08-27 02:09:25 -0700</delta_ts>
            <desc>6/9 - Support for adding test output for platform events in DRT</desc>
            <filename>0006-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>14021</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA3ZGIxN2U4MDlkMmNmYzMzYWExNjBkYjdhYjlhMWY1MGIzY2VjMTNiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDI2IEF1ZyAyMDEyIDE5OjIyOjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA2LzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKU291cmNlL1dlYktpdC9t
YWM6CgoqIFdlYktpdC5leHA6IEV4cG9ydCBXZWJOb3RpZmljYXRpb24gY2xhc3MuCiogV2ViVmll
dy9XZWJOb3RpZmljYXRpb24uaDogRXhwb3NlIGljb25VUkwuCiogV2ViVmlldy9XZWJOb3RpZmlj
YXRpb24ubW06CigtW1dlYk5vdGlmaWNhdGlvbiBpY29uVVJMXSk6CgpUb29sczoKCkFkZCBhZGRp
dGlvbmFsIG91dHB1dCB3aGVuIHJ1bm5pbmcgdGVzdCwgaWYgdGVzdFJ1bm5lci5kdW1wV2ViTm90
aWZpY2F0aW9uQ2FsbGJhY2tzKCkgaXMgY2FsbGVkLgoKKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgoqIER1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwOgooVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CihkdW1wV2ViTm90aWZpY2F0aW9u
Q2FsbGJhY2tzQ2FsbGJhY2spOgooVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CihUZXN0UnVubmVyKToKKFRlc3RSdW5uZXI6OmR1bXBX
ZWJOb3RpZmljYXRpb25DYWxsYmFja3MpOgooVGVzdFJ1bm5lcjo6c2V0RHVtcFdlYk5vdGlmaWNh
dGlvbkNhbGxiYWNrcyk6CiogRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Q
cm92aWRlci5tbToKKC1bV2ViTm90aWZpY2F0aW9uIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZv
clRlc3RSZXN1bHRdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHdlYlZpZXc6ZGlk
U2hvd05vdGlmaWNhdGlvbjpdKToKKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHdlYlZp
ZXc6ZGlkQ2xpY2tOb3RpZmljYXRpb246XSk6CigtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ciB3ZWJWaWV3OmRpZENsb3NlTm90aWZpY2F0aW9uczpdKToKKiBEdW1wUmVuZGVyVHJlZS9tYWMv
VUlEZWxlZ2F0ZS5tbToKKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblJlcXVlc3RGcm9tT3JpZ2luOmxpc3RlbmVyOl0pOgotLS0KIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrCiBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJLaXQuZXhwICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24uaCAgICAgICAgfCAgICAx
ICsKIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1tICAgICAgIHwg
ICAxMCArKysrKysKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyNyArKysrKysrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogICAgICAgfCAgICA2ICsrLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwICAgICAgICAgICAgICAgIHwgICAgOSArKysrKwogVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKy0KIC4uLi9t
YWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1tICAgICAgICAgICAgIHwgICAzNyArKysr
KysrKysrKysrKysrKystLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0g
ICAgICAgICAgICAgfCAgICAxICsKIDEwIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCsp
LCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBhZjlkMjk2Li4yMjVhNTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjYgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVy
IHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1
NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdC5leHA6IEV4cG9ydCBXZWJOb3RpZmljYXRpb24gY2xhc3MuCisgICAgICAgICogV2Vi
Vmlldy9XZWJOb3RpZmljYXRpb24uaDogRXhwb3NlIGljb25VUkwuCisgICAgICAgICogV2ViVmll
dy9XZWJOb3RpZmljYXRpb24ubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvbiBpY29uVVJM
XSk6CisKIDIwMTItMDgtMjQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAg
IFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXQuZXhwCmluZGV4IDA0OTAwODAuLjJiYjIzZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0
LmV4cApAQCAtMjUsNiArMjUsNyBAQAogLm9iamNfY2xhc3NfbmFtZV9XZWJKYXZhU2NyaXB0VGV4
dElucHV0UGFuZWwKIC5vYmpjX2NsYXNzX25hbWVfV2ViS2V5R2VuZXJhdG9yCiAub2JqY19jbGFz
c19uYW1lX1dlYktpdFN0YXRpc3RpY3MKKy5vYmpjX2NsYXNzX25hbWVfV2ViTm90aWZpY2F0aW9u
CiAub2JqY19jbGFzc19uYW1lX1dlYlBhbmVsQXV0aGVudGljYXRpb25IYW5kbGVyCiAub2JqY19j
bGFzc19uYW1lX1dlYlBsdWdpbkRhdGFiYXNlCiAub2JqY19jbGFzc19uYW1lX1dlYlByZWZlcmVu
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24uaAppbmRleCBm
YjljNTBlLi40OTI1NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
Yk5vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTm90aWZp
Y2F0aW9uLmgKQEAgLTM3LDYgKzM3LDcgQEAKIC0gKE5TU3RyaW5nICopdGl0bGU7CiAtIChOU1N0
cmluZyAqKWJvZHk7CiAtIChOU1N0cmluZyAqKXRhZzsKKy0gKE5TU3RyaW5nICopaWNvblVSTDsK
IC0gKFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luOwogLSAodWludDY0X3Qpbm90aWZpY2F0aW9u
SUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24ubW0KaW5k
ZXggNmExMjNmNi4uYmU4MmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJOb3RpZmljYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJO
b3RpZmljYXRpb24ubW0KQEAgLTExMSw2ICsxMTEsMTYgQEAgTm90aWZpY2F0aW9uKiBjb3JlKFdl
Yk5vdGlmaWNhdGlvbiAqbm90aWZpY2F0aW9uKQogI2VuZGlmCiB9CiAKKy0gKE5TU3RyaW5nICop
aWNvblVSTAoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCisgICAgQVNTRVJUKGNvcmUoc2VsZikpOworICAgIHJldHVybiBjb3JlKHNl
bGYpLT5pY29uVVJMKCk7CisjZWxzZQorICAgIHJldHVybiBuaWw7CisjZW5kaWYKK30KKwogLSAo
V2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4KIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUwZTkzNzEuLmUzYzM5MzcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAor
MjAxMi0wOC0yNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgV29yayB0
b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhZGRpdGlvbmFsIG91dHB1dCB3aGVuIHJ1bm5pbmcg
dGVzdCwgaWYgdGVzdFJ1bm5lci5kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKCkgaXMgY2Fs
bGVkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoZHVtcFdlYk5v
dGlmaWNhdGlvbkNhbGxiYWNrc0NhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgIChUZXN0UnVubmVyOjpkdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldER1bXBXZWJOb3RpZmljYXRp
b25DYWxsYmFja3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvbiBfZHJ0X2Rlc2Ny
aXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmlj
YXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZFNob3dOb3RpZmljYXRpb246XSk6CisgICAgICAgICgt
W01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZENsaWNrTm90aWZpY2F0aW9u
Ol0pOgorICAgICAgICAoLVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgd2ViVmlldzpkaWRD
bG9zZU5vdGlmaWNhdGlvbnM6XSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVs
ZWdhdGUubW06CisgICAgICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JO
b3RpZmljYXRpb25SZXF1ZXN0RnJvbU9yaWdpbjpsaXN0ZW5lcjpdKToKKwogMjAxMi0wOC0yNCAg
Sm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBz
aG91bGQgc3VwcG9ydCBub3RpZmljYXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkMmVlMjM5Li4xZjhjNWUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNCw5
ICs1MDQsNiBAQAogCQkJCUJDRjZDNjRGMEM5OEU5QzAwMEFDMDYzRSAvKiBHQ0NvbnRyb2xsZXIu
Y3BwICovLAogCQkJCTE0NzcwRkUwMEEyMkFERjcwMDkzNDJFRSAvKiBHQ0NvbnRyb2xsZXIuaCAq
LywKIAkJCQlCQ0ExOEIyMTBDOUIwMTRCMDAxMTQzNjkgLyogR0NDb250cm9sbGVyTWFjLm1tICov
LAotCQkJCUJDMDEzMUQ4MEM5NzcyMDEwMDg3MzE3RCAvKiBUZXN0UnVubmVyLmNwcCAqLywKLQkJ
CQlCQzAxMzFEOTBDOTc3MjAxMDA4NzMxN0QgLyogVGVzdFJ1bm5lci5oICovLAotCQkJCUJDQTE4
QjIyMEM5QjAxNEIwMDExNDM2OSAvKiBUZXN0UnVubmVyTWFjLm1tICovLAogCQkJCUUxQjc4MDg1
MTFBRjE2NDMwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oICovLAogCQkJCUUx
Qjc4MDg3MTFBRjE2NjkwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbSAqLywK
IAkJCQkzMTExN0IzQTE1RDlBNTZBMDAxNjNCQzggLyogTW9ja1dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmggKi8sCkBAIC01MTUsNiArNTEyLDkgQEAKIAkJCQlCQ0ExOEI2RTBDOUIwOERCMDAxMTQz
NjkgLyogTmF2aWdhdGlvbkNvbnRyb2xsZXIubSAqLywKIAkJCQlCQ0ExOEIyRjBDOUIwMUI0MDAx
MTQzNjkgLyogT2JqQ0NvbnRyb2xsZXIuaCAqLywKIAkJCQlCQ0ExOEIzMDBDOUIwMUI0MDAxMTQz
NjkgLyogT2JqQ0NvbnRyb2xsZXIubSAqLywKKwkJCQlCQzAxMzFEODBDOTc3MjAxMDA4NzMxN0Qg
LyogVGVzdFJ1bm5lci5jcHAgKi8sCisJCQkJQkMwMTMxRDkwQzk3NzIwMTAwODczMTdEIC8qIFRl
c3RSdW5uZXIuaCAqLywKKwkJCQlCQ0ExOEIyMjBDOUIwMTRCMDAxMTQzNjkgLyogVGVzdFJ1bm5l
ck1hYy5tbSAqLywKIAkJCQlCQ0ExOEIzQTBDOUIwMjQ5MDAxMTQzNjkgLyogVGV4dElucHV0Q29u
dHJvbGxlci5oICovLAogCQkJCUJDQTE4QjQ4MEM5QjAyQzQwMDExNDM2OSAvKiBUZXh0SW5wdXRD
b250cm9sbGVyLm0gKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRl
eCBkNWU3OTlkLi5lNmY5YjkwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAt
NjksNiArNjksNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0
ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZQogICAgICwgbV9kdW1wSWNvbkNo
YW5nZXMoZmFsc2UpCiAgICAgLCBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjayhmYWxzZSkKICAg
ICAsIG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlKGZhbHNlKQorICAgICwgbV9kdW1wV2ViTm90aWZp
Y2F0aW9uQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9nZW5lcmF0ZVBpeGVsUmVzdWx0cyh0cnVl
KQogICAgICwgbV9jYWxsQ2xvc2VPbldlYlZpZXdzKHRydWUpCiAgICAgLCBtX2Nhbk9wZW5XaW5k
b3dzKGZhbHNlKQpAQCAtMjU4LDYgKzI1OSwxMyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wV2ls
bENhY2hlUmVzcG9uc2VDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZQog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpT
VmFsdWVSZWYgZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAg
Y29udHJvbGxlci0+c2V0RHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcyh0cnVlKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVl
UmVmIHBhdGhUb0xvY2FsUmVzb3VyY2VDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMjMzMyw2ICsyMzQxLDcgQEAg
SlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAg
eyAiZHVtcFRpdGxlQ2hhbmdlcyIsIGR1bXBUaXRsZUNoYW5nZXNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJkdW1wSWNvbkNoYW5nZXMiLCBkdW1wSWNvbkNoYW5nZXNDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJkdW1wV2lsbENhY2hlUmVzcG9uc2UiLCBkdW1wV2lsbENhY2hlUmVz
cG9uc2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJkdW1wV2ViTm90aWZpY2F0aW9uQ2Fs
bGJhY2tzIiwgZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZCIsIGVsZW1l
bnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImVuY29kZUhvc3ROYW1lIiwgZW5jb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgZXZhbHVhdGVJbldlYkluc3BlY3Rv
ckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggODllYjkz
NS4uZmVkZGNhZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjE5LDcgKzIxOSwx
MCBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBkdW1wV2lsbENhY2hlUmVzcG9uc2UoKSBjb25z
dCB7IHJldHVybiBtX2R1bXBXaWxsQ2FjaGVSZXNwb25zZTsgfQogICAgIHZvaWQgc2V0RHVtcFdp
bGxDYWNoZVJlc3BvbnNlKGJvb2wgZHVtcFdpbGxDYWNoZVJlc3BvbnNlKSB7IG1fZHVtcFdpbGxD
YWNoZVJlc3BvbnNlID0gZHVtcFdpbGxDYWNoZVJlc3BvbnNlOyB9Ci0gICAgCisKKyAgICBib29s
IGR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBXZWJO
b3RpZmljYXRpb25DYWxsYmFja3M7fQorICAgIHZvaWQgc2V0RHVtcFdlYk5vdGlmaWNhdGlvbkNh
bGxiYWNrcyhib29sIGR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MpIHsgbV9kdW1wV2ViTm90
aWZpY2F0aW9uQ2FsbGJhY2tzID0gZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrczsgfQorCiAg
ICAgYm9vbCBjYWxsQ2xvc2VPbldlYlZpZXdzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsQ2xvc2VP
bldlYlZpZXdzOyB9CiAgICAgdm9pZCBzZXRDYWxsQ2xvc2VPbldlYlZpZXdzKGJvb2wgY2FsbENs
b3NlT25XZWJWaWV3cykgeyBtX2NhbGxDbG9zZU9uV2ViVmlld3MgPSBjYWxsQ2xvc2VPbldlYlZp
ZXdzOyB9CiAKQEAgLTM5NSw2ICszOTgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wSWNv
bkNoYW5nZXM7CiAgICAgYm9vbCBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjazsKICAgICBib29s
IG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlOworICAgIGJvb2wgbV9kdW1wV2ViTm90aWZpY2F0aW9u
Q2FsbGJhY2tzOwogICAgIGJvb2wgbV9nZW5lcmF0ZVBpeGVsUmVzdWx0czsKICAgICBib29sIG1f
Y2FsbENsb3NlT25XZWJWaWV3czsKICAgICBib29sIG1fY2FuT3BlbldpbmRvd3M7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5tbQppbmRleCAyZmYyNTI1Li5mZWE1ODdhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0KQEAgLTI2LDkgKzI2
LDI1IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
TW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCisKKyNpbXBvcnQgIkR1bXBSZW5kZXJUcmVl
LmgiCisjaW1wb3J0ICJUZXN0UnVubmVyLmgiCisjaW1wb3J0IDxXZWJLaXQvV2ViTm90aWZpY2F0
aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2VjdXJpdHlPcmlnaW5Qcml2YXRlLmg+CiAKK0Bp
bnRlcmZhY2UgV2ViTm90aWZpY2F0aW9uIChEUlRFeHRyYXMpCistIChOU1N0cmluZyAqKV9kcnRf
ZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQ7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXZWJOb3RpZmljYXRpb24gKERSVEV4dHJhcykKKy0gKE5TU3RyaW5nICopX2RydF9kZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdAoreworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAInt0aXRsZTogXCIlQFwiLCBib2R5OiBcIiVAXCIsIHRhZzogXCIlQFwiLCBp
Y29uVVJMOiAlQH0iLCBbc2VsZiB0aXRsZV0sIFtzZWxmIGJvZHldLCBbc2VsZiB0YWddLCBbc2Vs
ZiBpY29uVVJMXV07Cit9CitAZW5kCisKIEBpbXBsZW1lbnRhdGlvbiBNb2NrV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIKIAogKyAoTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyICopc2hhcmVkCkBA
IC05OSwxNCArMTE1LDI0IEBACiB7CiAgICAgTm90aWZpY2F0aW9uSURNYXA6Oml0ZXJhdG9yIGl0
ID0gX25vdGlmaWNhdGlvbnMuZmluZChub3RpZmljYXRpb25JRCk7CiAgICAgQVNTRVJUKGl0ICE9
IF9ub3RpZmljYXRpb25zLmVuZCgpKTsKLSAgICBbaXQtPnNlY29uZC5nZXQoKSBkaXNwYXRjaFNo
b3dFdmVudF07CisKKyAgICBXZWJOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbiA9IGl0LT5zZWNv
bmQuZ2V0KCk7CisgICAgaWYgKCFkb25lICYmIGdUZXN0UnVubmVyLT5kdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiU0hPV0VEIFdFQiBOT1RJRklDQVRJT04g
JXNcbiIsIFtbbm90aWZpY2F0aW9uIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1
bHRdIFVURjhTdHJpbmddKTsKKworICAgIFtub3RpZmljYXRpb24gZGlzcGF0Y2hTaG93RXZlbnRd
OwogfQogCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZENsaWNrTm90aWZp
Y2F0aW9uOih1aW50NjRfdClub3RpZmljYXRpb25JRAogewogICAgIE5vdGlmaWNhdGlvbklETWFw
OjppdGVyYXRvciBpdCA9IF9ub3RpZmljYXRpb25zLmZpbmQobm90aWZpY2F0aW9uSUQpOwogICAg
IEFTU0VSVChpdCAhPSBfbm90aWZpY2F0aW9ucy5lbmQoKSk7Ci0gICAgW2l0LT5zZWNvbmQuZ2V0
KCkgZGlzcGF0Y2hDbGlja0V2ZW50XTsKKworICAgIFdlYk5vdGlmaWNhdGlvbiAqbm90aWZpY2F0
aW9uID0gaXQtPnNlY29uZC5nZXQoKTsKKyAgICBpZiAoIWRvbmUgJiYgZ1Rlc3RSdW5uZXItPmR1
bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCJDTElDS0VEIFdF
QiBOT1RJRklDQVRJT04gJXNcbiIsIFtbbm90aWZpY2F0aW9uIF9kcnRfZGVzY3JpcHRpb25TdWl0
YWJsZUZvclRlc3RSZXN1bHRdIFVURjhTdHJpbmddKTsKKworICAgIFtub3RpZmljYXRpb24gZGlz
cGF0Y2hDbGlja0V2ZW50XTsKIH0KIAogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmll
dyBkaWRDbG9zZU5vdGlmaWNhdGlvbnM6KE5TQXJyYXkgKilub3RpZmljYXRpb25JRHMKQEAgLTEx
NSw3ICsxNDEsMTIgQEAKICAgICAgICAgdWludDY0X3QgaWQgPSBbbm90aWZpY2F0aW9uSUQgdW5z
aWduZWRMb25nTG9uZ1ZhbHVlXTsKICAgICAgICAgTm90aWZpY2F0aW9uSURNYXA6Oml0ZXJhdG9y
IGl0ID0gX25vdGlmaWNhdGlvbnMuZmluZChpZCk7CiAgICAgICAgIEFTU0VSVChpdCAhPSBfbm90
aWZpY2F0aW9ucy5lbmQoKSk7Ci0gICAgICAgIFtpdC0+c2Vjb25kLmdldCgpIGRpc3BhdGNoQ2xv
c2VFdmVudF07CisKKyAgICAgICAgV2ViTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24gPSBpdC0+
c2Vjb25kLmdldCgpOworICAgICAgICBpZiAoIWRvbmUgJiYgZ1Rlc3RSdW5uZXItPmR1bXBXZWJO
b3RpZmljYXRpb25DYWxsYmFja3MoKSkKKyAgICAgICAgICAgIHByaW50ZigiQ0xPU0VEIFdFQiBO
T1RJRklDQVRJT04gJXNcbiIsIFtbbm90aWZpY2F0aW9uIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJs
ZUZvclRlc3RSZXN1bHRdIFVURjhTdHJpbmddKTsKKworICAgICAgICBbbm90aWZpY2F0aW9uIGRp
c3BhdGNoQ2xvc2VFdmVudF07CiAgICAgICAgIFtfbm90aWZpY2F0aW9uc0J5VGl0bGUuZ2V0KCkg
cmVtb3ZlT2JqZWN0Rm9yS2V5OltpdC0+c2Vjb25kLmdldCgpIHRpdGxlXV07CiAgICAgICAgIF9u
b3RpZmljYXRpb25zLnJlbW92ZShpdCk7CiAgICAgICAgIF9ub3RpZmljYXRpb25WaWV3TWFwLnJl
bW92ZShpZCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0
ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCmluZGV4IDU4MGIw
ZDYuLjY5M2ZhMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVn
YXRlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCkBAIC0y
OTEsNiArMjkxLDcgQEAgRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9
IG5pbDsKIAogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25SZXF1ZXN0RnJvbU9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmln
aW4gbGlzdGVuZXI6KGlkPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPilsaXN0ZW5lcgogewor
ICAgIHByaW50ZigiUkVRVUVTVEVEIFdFQiBOT1RJRklDQVRJT04gUEVSTUlTU0lPTiBGT1IgJXNc
biIsIFtbb3JpZ2luIHN0cmluZ1ZhbHVlXSBVVEY4U3RyaW5nXSk7CiAgICAgWyhNb2NrV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIgKilbd2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdIHNldFdl
Yk5vdGlmaWNhdGlvbk9yaWdpbjpbb3JpZ2luIHN0cmluZ1ZhbHVlXSBwZXJtaXNzaW9uOllFU107
CiAgICAgW2xpc3RlbmVyIGFsbG93XTsKIH0KLS0gCjEuNy4xMC4yIChBcHBsZSBHaXQtMzMpCgo=
</data>
<flag name="review"
          id="171264"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160662</attachid>
            <date>2012-08-27 01:34:29 -0700</date>
            <delta_ts>2012-08-27 14:10:18 -0700</delta_ts>
            <desc>7/9 - Add WK2 support for that output</desc>
            <filename>0007-WebKitTestRunner-should-support-notifications.patch</filename>
            <type>text/plain</type>
            <size>52671</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBlZTM3OTVmN2I2YWRjMmQxZGU5NzFiOGQ1YzY2MWZhYTYxYjdhYzgwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDI3IEF1ZyAyMDEyIDAxOjAyOjU4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA3LzldIFdlYktpdFRl
c3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucwogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CiA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBpbmplY3RlZCBidW5kbGUgaG9va3MgdGhh
dCBhbGxvdyBXVFIgdG8gYWRkIG91dHB1dCB0byByZWZsZWN0IHRoZSBzdGF0ZSBvZiBub3RpZmlj
YXRpb25zIG9uIHRoZSBwbGF0Zm9ybS4KVG8gYWNjb21wbGlzaCB0aGlzLCB3ZSBhZGQgYSB3cmFw
cGVyIG5vdGlmaWNhdGlvbiBvYmplY3QgY2FsbGVkIFdLQnVuZGxlTm90aWZpY2F0aW9uLCBhbmQg
dXBkYXRlIHRoZSBwcm92aWRlcgpjYWxsYmFja3MgaW4gV2ViTm90aWZpY2F0aW9uTWFuYWdlciB0
byBjYWxsIHRoZSBpbmplY3RlZCBidW5kbGUuCgpBZGQgYSBuZXcgaW5qZWN0ZWQgYnVuZGxlIGNs
aWVudCBmb3Igd2ViIG5vdGlmaWNhdGlvbnMuCiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKFdlYktpdCk6
CihXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudDo6ZGlkU2hvd05v
dGlmaWNhdGlvbik6CihXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVu
dDo6ZGlkQ2xpY2tOb3RpZmljYXRpb24pOgooV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VOb3Rp
ZmljYXRpb25DbGllbnQ6OmRpZENsb3NlTm90aWZpY2F0aW9uKToKKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKToKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZU5vdGlmaWNhdGlvbkNsaWVudC5oOiBBZGRlZC4KKFdlYkNvcmUpOgooV2ViS2l0KToKKElu
amVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCk6CgpBZGQgZnVuY3Rpb25zIHRvIHNl
dCBpbmplY3RlZCBidW5kbGUgbm90aWZpY2F0aW9uIGNsaWVudC4KKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CihXS0J1bmRsZVBhZ2VTZXROb3RpZmlj
YXRpb25DbGllbnQpOgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmg6IEFsc28gZGVjbGFyZSBub3RpZmljYXRpb24gY2xpZW50IGNhbGxiYWNrcy4KKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CihXZWJLaXQpOgooV2ViS2l0OjpXZWJQYWdlOjpp
bml0aWFsaXplSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQpOgoqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CihXZWJQYWdlKToKKFdlYktpdDo6V2ViUGFnZTo6aW5qZWN0ZWRC
dW5kbGVOb3RpZmljYXRpb25DbGllbnQpOgoKVXBkYXRlIGNhbGxiYWNrcyBpbiB3ZWIgcHJvY2Vz
cyB0byBjYWxsIHRoZSBpbmplY3RlZCBidW5kbGUsIHdoZW4gdGhlIHBsYXRmb3JtIHNob3dlZCBv
ciBjbG9zZWQgYSBub3RpZmljYXRpb24sCm9yIHRoZSB1c2VyIG1hZGUgYSBkZWNpc2lvbi4KKiBX
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcDoKKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTogQWxzbyBmaXggYSBsZWFr
IHdoZXJlCndlIGhvbGQgb250byBhIG1hcHBpbmcgdGhhdCBzaG93IGJlIHJlbW92ZWQuCiogV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgooV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFu
YWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CihXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OmRpZENsaWNrTm90aWZpY2F0aW9uKToKKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25zKToKKFdlYktpdCk6CihXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklERGF0YTo6Y3JlYXRlKToKKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlcjo6Tm90aWZpY2F0aW9uSUREYXRhOjpOb3RpZmljYXRpb25JRERhdGEp
OgoqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg6IEZv
ciB0aGUgbWFwIHRoYXQgYXNzb2NpYXRlcyBub3RpZmljYXRpb24gSURzIHRvIG5vdGlmaWNhdGlv
bnMsCnVwZGF0ZSB0aGUgdmFsdWUgdHlwZSB0byB1c2UgYSBzaW1wbGUgY2xhc3MgdGhhdCBpbmNs
dWRlcyB0aGUgd2ViIHBhZ2UgaW4gd2hpY2ggdGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVk
LgpUaGlzIGlzIG5lZWRlZCB0byByZXRyaWV2ZSB0aGUgaW5qZWN0ZWQgYnVuZGxlIG5vdGlmaWNh
dGlvbiBjbGllbnQuCgpBZGQgSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24gY2xhc3MsIHdoaWNo
IGlzIGEgdGhpbiB3cmFwcGVyIGFib3V0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbi4KKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcDogQWRkZWQu
CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5o
OiBBZGRlZC4KCkV4cG9zZSBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbiBhcyBXS0J1bmRsZU5v
dGlmaWNhdGlvbiwgYW5kIGltcGxlbWVudCBmdW5jdGlvbnMgbmVlZGVkIGJ5IFdUUiB0byBvdXRw
dXQKbm90aWZpY2F0aW9uIGNvbnRlbnRzLgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVOb3RpZmljYXRpb24uY3BwOiBBZGRlZC4KKFdLQnVuZGxlTm90aWZpY2F0aW9u
R2V0VHlwZUlEKToKKFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRpdGxlKToKKFdLQnVuZGxlTm90
aWZpY2F0aW9uQ29weUJvZHkpOgooV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5SWNvblVSTCk6CihX
S0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlUYWcpOgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVOb3RpZmljYXRpb24uaDogQWRkZWQuCiogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaDogQWRkZWQuCgpFeHBv
c2UgSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24gYXMgV0sgQVBJLgoqIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaDoKKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CiogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBBZGQgbm90aWZpY2F0aW9uIGNsYXNzZXMuCiogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaDoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzQgKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCAgICAgICAgICAgICAgIHwgICAg
MSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmggICAgICAgICAgICAgICAgICB8
ICAgIDEgKwogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
ICAgfCAgIDI4ICsrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNh
c3QuaCAgICAgICAgIHwgICAgMiArCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVO
b3RpZmljYXRpb24uY3BwICB8ICAgNTkgKysrKysrKysrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNhdGlvbi5oICAgIHwgICA0MSArKysrKysrKysrCiAuLi4v
QVBJL2MvV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlLmggICAgICAgICAgICB8ICAgNDQgKysr
KysrKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgICAgICAg
ICAgfCAgICA1ICsrCiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaCB8ICAgMTkgKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5v
dGlmaWNhdGlvbi5jcHAgIHwgICAzOCArKysrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5oICAgIHwgICA1NCArKysrKysrKysrKysrCiAuLi4vSW5q
ZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAgICAgICB8ICAgODQgKysrKysr
KysrKysrKysrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQu
aCAgICAgICAgIHwgICA1NyArKysrKysrKysrKysrCiAuLi4vTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcCAgICAgICB8ICAgIDMgKy0KIC4uLi9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwICAgICAgIHwgICA1MyArKysrKysrLS0tLS0KIC4uLi9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCAgICAgICAgIHwgICAxNSArKyst
CiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAg
IDcgKysKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggICAgICAg
IHwgICAxMCArKysKIDE5IGZpbGVzIGNoYW5nZWQsIDU3NSBpbnNlcnRpb25zKCspLCAyMCBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uLmNwcAogY3JlYXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb3RpZmljYXRpb24uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRl
LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVO
b3RpZmljYXRpb24uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNw
cAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmgKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYmJkODRiZS4uNWNmODIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTA4
LTI2ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXRUZXN0UnVu
bmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MDM1NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgaW5qZWN0ZWQgYnVuZGxlIGhvb2tzIHRoYXQgYWxsb3cgV1RSIHRvIGFkZCBvdXRwdXQg
dG8gcmVmbGVjdCB0aGUgc3RhdGUgb2Ygbm90aWZpY2F0aW9ucyBvbiB0aGUgcGxhdGZvcm0uCisg
ICAgICAgIFRvIGFjY29tcGxpc2ggdGhpcywgd2UgYWRkIGEgd3JhcHBlciBub3RpZmljYXRpb24g
b2JqZWN0IGNhbGxlZCBXS0J1bmRsZU5vdGlmaWNhdGlvbiwgYW5kIHVwZGF0ZSB0aGUgcHJvdmlk
ZXIKKyAgICAgICAgY2FsbGJhY2tzIGluIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgdG8gY2FsbCB0
aGUgaW5qZWN0ZWQgYnVuZGxlLgorCisgICAgICAgIEFkZCBhIG5ldyBpbmplY3RlZCBidW5kbGUg
Y2xpZW50IGZvciB3ZWIgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
Tm90aWZpY2F0aW9uQ2xpZW50OjpkaWRTaG93Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRDbGlja05vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNs
aWVudDo6ZGlkQ2xvc2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZp
Y2F0aW9uQ2xpZW50KToKKworICAgICAgICBBZGQgZnVuY3Rpb25zIHRvIHNldCBpbmplY3RlZCBi
dW5kbGUgbm90aWZpY2F0aW9uIGNsaWVudC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTZXRO
b3RpZmljYXRpb25DbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmg6IEFsc28gZGVjbGFyZSBub3RpZmljYXRpb24gY2xpZW50IGNh
bGxiYWNrcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0
ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQpOgorCisgICAgICAgIFVwZGF0ZSBj
YWxsYmFja3MgaW4gd2ViIHByb2Nlc3MgdG8gY2FsbCB0aGUgaW5qZWN0ZWQgYnVuZGxlLCB3aGVu
IHRoZSBwbGF0Zm9ybSBzaG93ZWQgb3IgY2xvc2VkIGEgbm90aWZpY2F0aW9uLAorICAgICAgICBv
ciB0aGUgdXNlciBtYWRlIGEgZGVjaXNpb24uCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2
ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6IEFsc28gZml4IGEgbGVhayB3aGVyZQor
ICAgICAgICB3ZSBob2xkIG9udG8gYSBtYXBwaW5nIHRoYXQgc2hvdyBiZSByZW1vdmVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZFNob3dOb3RpZmlj
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbGlj
a05vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6
OmRpZENsb3NlTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpOb3RpZmljYXRpb25JRERhdGE6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklE
RGF0YTo6Tm90aWZpY2F0aW9uSUREYXRhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOiBGb3IgdGhlIG1hcCB0aGF0IGFzc29jaWF0
ZXMgbm90aWZpY2F0aW9uIElEcyB0byBub3RpZmljYXRpb25zLAorICAgICAgICB1cGRhdGUgdGhl
IHZhbHVlIHR5cGUgdG8gdXNlIGEgc2ltcGxlIGNsYXNzIHRoYXQgaW5jbHVkZXMgdGhlIHdlYiBw
YWdlIGluIHdoaWNoIHRoZSBub3RpZmljYXRpb24gd2FzIGRpc3BsYXllZC4KKyAgICAgICAgVGhp
cyBpcyBuZWVkZWQgdG8gcmV0cmlldmUgdGhlIGluamVjdGVkIGJ1bmRsZSBub3RpZmljYXRpb24g
Y2xpZW50LgorCisgICAgICAgIEFkZCBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbiBjbGFzcywg
d2hpY2ggaXMgYSB0aGluIHdyYXBwZXIgYWJvdXQgV2ViQ29yZTo6Tm90aWZpY2F0aW9uLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRp
b24uY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlTm90aWZpY2F0aW9uLmg6IEFkZGVkLgorCisgICAgICAgIEV4cG9zZSBJbmplY3Rl
ZEJ1bmRsZU5vdGlmaWNhdGlvbiBhcyBXS0J1bmRsZU5vdGlmaWNhdGlvbiwgYW5kIGltcGxlbWVu
dCBmdW5jdGlvbnMgbmVlZGVkIGJ5IFdUUiB0byBvdXRwdXQKKyAgICAgICAgbm90aWZpY2F0aW9u
IGNvbnRlbnRzLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb3RpZmljYXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQnVuZGxlTm90aWZpY2F0
aW9uR2V0VHlwZUlEKToKKyAgICAgICAgKFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRpdGxlKToK
KyAgICAgICAgKFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weUJvZHkpOgorICAgICAgICAoV0tCdW5k
bGVOb3RpZmljYXRpb25Db3B5SWNvblVSTCk6CisgICAgICAgIChXS0J1bmRsZU5vdGlmaWNhdGlv
bkNvcHlUYWcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb3RpZmljYXRpb24uaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaDogQWRkZWQuCisKKyAg
ICAgICAgRXhwb3NlIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uIGFzIFdLIEFQSS4KKyAgICAg
ICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5o
OgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5vdGlm
aWNhdGlvbiBjbGFzc2VzLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVBUElDYXN0Lmg6CisKIDIwMTItMDgtMjcgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBz
dXBwb3J0IG5vdGlmaWNhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCAwNmFhMjg2Li4yMzgyMTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBA
IC0xMzksNiArMTM5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVJbnRl
bnQqIFdLQnVuZGxlSW50ZW50UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5k
bGVJbnRlbnRSZXF1ZXN0KiBXS0J1bmRsZUludGVudFJlcXVlc3RSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24qIFdLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlTm9kZUhhbmRs
ZSogV0tCdW5kbGVOb2RlSGFuZGxlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tC
dW5kbGVOb3RpZmljYXRpb24qIFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVQYWdlKiBXS0J1bmRsZVBhZ2VSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZVBhZ2VHcm91cCogV0tCdW5kbGVQYWdlR3JvdXBSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZVBhZ2VPdmVybGF5KiBXS0J1bmRs
ZVBhZ2VPdmVybGF5UmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDcwOGVmZmUu
LjE3YjBiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTEyMSw2ICsxMjEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFR5cGVCdW5kbGVJbnRlbnRSZXF1ZXN0LAogICAgICAgICBUeXBl
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbiwKICAgICAgICAgVHlwZUJ1bmRsZU5vZGVIYW5kbGUsCisg
ICAgICAgIFR5cGVCdW5kbGVOb3RpZmljYXRpb24sCiAgICAgICAgIFR5cGVCdW5kbGVQYWdlLAog
ICAgICAgICBUeXBlQnVuZGxlUGFnZUdyb3VwLAogICAgICAgICBUeXBlQnVuZGxlUGFnZU92ZXJs
YXksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggOGM4MGNlZC4uNDkxMjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUxLDYgKzI1MSwxMyBAQAogCQkyOUNE
NTVBQjEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE5MTI4
RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovOyB9Owog
CQkzMTA5OTk3MzE0NkM3NUEyMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTcxMTQ2
Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovOyB9OwogCQkzMTA5
OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2ODE0NkM3MUY1MDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi87IH07CisJCTMxMURDRDUzMTVFOEMw
MzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzExRENENTExNUU4
QzAzMzAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5jcHAg
Ki87IH07CisJCTMxMURDRDU0MTVFOEMwMzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VO
b3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMURDRDUyMTVFOEMwMzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VO
b3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKKwkJMzExRENENTgxNUU4QzA2NTAwMUU2RDAwIC8q
IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDU2MTVFOEMwNjUwMDFFNkQwMCAvKiBJbmplY3Rl
ZEJ1bmRsZU5vdGlmaWNhdGlvbi5jcHAgKi87IH07CisJCTMxMURDRDU5MTVFOEMwNjUwMDFFNkQw
MCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzExRENENTcxNUU4QzA2NTAwMUU2RDAwIC8qIEluamVj
dGVkQnVuZGxlTm90aWZpY2F0aW9uLmggKi87IH07CisJCTMxMURDRDVFMTVFQUQyMjQwMDFFNkQw
MCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDVEMTVFQUNGNjMwMDFFNkQwMCAvKiBXS0J1
bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkzMTFEQ0Q1RjE1RUFEMjI4MDAxRTZEMDAgLyogV0tCdW5kbGVO
b3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxMURDRDVCMTVFQUNGM0EwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJMzExRENENjAx
NUVBRDIyRDAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDVBMTVFQUNGMzgwMDFFNkQw
MCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvbi5jcHAgKi87IH07CiAJCTMxMkMwQzRBMTQ2RERDOEEw
MDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tO
b3RpZmljYXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTMxMzEyNjFFMTQ4RkY4MkMwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzEzMTI2MTkxNDhGRjgyQjAwQkEyQTM5IC8qIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07CiAJCTMxMzEyNjFGMTQ4RkY4MkMw
MEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEyNjFBMTQ4RkY4MkIw
MEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsK
QEAgLTEyODQsNiArMTI5MSwxMyBAQAogCQkyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAvKiBXZWJOb3RpZmlj
YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBX
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzExRENENTExNUU4QzAzMzAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlUGFnZU5vdGlm
aWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTFEQ0Q1MjE1RThDMDMzMDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTFEQ0Q1NjE1RThDMDY1MDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVO
b3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMTFEQ0Q1NzE1RThDMDY1MDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVOb3RpZmlj
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzExRENENUExNUVBQ0YzODAw
MUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzExRENENUIxNUVBQ0YzQTAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZp
Y2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlTm90aWZp
Y2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxMURDRDVEMTVFQUNGNjMw
MDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEzMTI2MTkxNDhGRjgyQjAwQkEyQTM5
IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTMxMjYxQTE0OEZGODJC
MDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI3OCw2ICszMjkyLDgg
QEAKIAkJCQlCQzQ5ODYxNjEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmggKi8sCiAJCQkJQkM4MTQ3RDQxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVu
ZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi8sCiAJCQkJQkM4MTQ3RDMxMkY2NkQzMTAwN0IyQzMy
IC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oICovLAorCQkJCTMxMURDRDU2MTVF
OEMwNjUwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5jcHAgKi8sCisJCQkJ
MzExRENENTcxNUU4QzA2NTAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgg
Ki8sCiAJCQkJQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8qIEluamVjdGVkQnVuZGxlUGFnZURp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLywKIAkJCQlDRDY3RDMwOTE1QzA3QkUwMDA4NDNB
REYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKIAkJ
CQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1l
bnVDbGllbnQuY3BwICovLApAQCAtMzI5MCw2ICszMzA2LDggQEAKIAkJCQlDRDVDNjY5RjEzNEI5
RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oICovLAog
CQkJCUJDQThDNkE2MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQuY3BwICovLAogCQkJCUJDQThDNkE3MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCAqLywKKwkJCQkzMTFEQ0Q1MTE1RThDMDMzMDAxRTZEMDAg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKKwkJCQkzMTFE
Q0Q1MjE1RThDMDMzMDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xp
ZW50LmggKi8sCiAJCQkJQkM4MTQ3QTgxMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxl
UGFnZVBvbGljeUNsaWVudC5jcHAgKi8sCiAJCQkJQkM4MTQ3QTcxMkY2NENEQTAwN0IyQzMyIC8q
IEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oICovLAogCQkJCTY1NDZBODI5MTMwMDAx
NjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwICov
LApAQCAtMzM0NCw2ICszMzYyLDkgQEAKIAkJCQlCQzRCRUZFMDEyMEExQTRDMDBGQkEwQzcgLyog
V0tCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzRCRUZERjEyMEExQTRDMDBGQkEwQzcg
LyogV0tCdW5kbGVOb2RlSGFuZGxlLmggKi8sCiAJCQkJQkM1NzQ1MEIxMjYzQjE1NTAwNkYwRjEy
IC8qIFdLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCAqLywKKwkJCQkzMTFEQ0Q1QTE1RUFDRjM4
MDAxRTZEMDAgLyogV0tCdW5kbGVOb3RpZmljYXRpb24uY3BwICovLAorCQkJCTMxMURDRDVCMTVF
QUNGM0EwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvbi5oICovLAorCQkJCTMxMURDRDVE
MTVFQUNGNjMwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCAqLywKIAkJ
CQlCQzIwNTI4MDExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmNwcCAqLywKIAkJCQlC
QzIwNTI3RjExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmggKi8sCiAJCQkJQkM3QjYz
M0MxMkE0NUQxMjAwRDE3NEE0IC8qIFdLQnVuZGxlUGFnZUdyb3VwLmNwcCAqLywKQEAgLTQyNDcs
NiArNDI2OCwxMCBAQAogCQkJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNo
b29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODdCOUMwMTU4OTQwRDgwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1OTU0ODkxNUM3ODY4
NTAwRkQxRTNFIC8qIFdlYktpdDIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxMURDRDU0MTVFOEMw
MzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMxMURDRDU5MTVFOEMwNjUwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRs
ZU5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzExRENENUUxNUVBRDIyNDAwMUU2
RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzExRENENUYxNUVBRDIyODAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTUwMjEsNiArNTA0Niw5IEBACiAJCQkJMUEyQTRCMEUxNTg2QTIyNDAwOTBD
OUU5IC8qIENvbG9yU3BhY2VEYXRhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y4N0I5QkQxNTg5
NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzExRENENTMxNUU4QzAzMzAwMUU2
RDAwIC8qIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzMTFEQ0Q1ODE1RThDMDY1MDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVOb3Rp
ZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzExRENENjAxNUVBRDIyRDAwMUU2RDAw
IC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVBUElDYXN0LmgKaW5kZXggMDE4ZWY3OS4uN2VkMmJlNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElD
YXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUFQSUNhc3QuaApAQCAtNTAsNiArNTAsNyBAQCBjbGFzcyBJbmplY3RlZEJ1bmRs
ZUludGVudDsKIGNsYXNzIEluamVjdGVkQnVuZGxlSW50ZW50UmVxdWVzdDsKIGNsYXNzIEluamVj
dGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZTsKK2NsYXNzIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uOwogY2xhc3MgSW5qZWN0ZWRCdW5k
bGVSYW5nZUhhbmRsZTsKIGNsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ7CiBjbGFzcyBQ
YWdlT3ZlcmxheTsKQEAgLTY5LDYgKzcwLDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxl
SW50ZW50UmVmLCBJbmplY3RlZEJ1bmRsZUludGVudCkKIFdLX0FERF9BUElfTUFQUElORyhXS0J1
bmRsZUludGVudFJlcXVlc3RSZWYsIEluamVjdGVkQnVuZGxlSW50ZW50UmVxdWVzdCkKIFdLX0FE
RF9BUElfTUFQUElORyhXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25SZWYsIEluamVjdGVkQnVuZGxl
TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZU5vZGVIYW5kbGVS
ZWYsIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSkKK1dLX0FERF9BUElfTUFQUElORyhXS0J1bmRs
ZU5vdGlmaWNhdGlvblJlZiwgSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24pCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tCdW5kbGVQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cFByb3h5KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYsIFBhZ2VPdmVybGF5KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQnVuZGxlUGFnZVJlZiwgV2ViUGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb3RpZmlj
YXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5vdGlmaWNhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDM3MzI3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb3RpZmljYXRpb24uY3BwCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tC
dW5kbGVOb3RpZmljYXRpb24uaCIKKyNpbmNsdWRlICJXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZh
dGUuaCIKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgiCisjaW5jbHVk
ZSAiV0tCdW5kbGVBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tCdW5kbGVOb3RpZmljYXRpb25HZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbjo6QVBJ
VHlwZSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRpdGxlKFdL
QnVuZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gdG9Db3Bp
ZWRBUEkodG9JbXBsKG5vdGlmaWNhdGlvbiktPmNvcmVOb3RpZmljYXRpb24oKS0+dGl0bGUoKSk7
Cit9CisKK1dLU3RyaW5nUmVmIFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weUJvZHkoV0tCdW5kbGVO
b3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiB0b0NvcGllZEFQSSh0
b0ltcGwobm90aWZpY2F0aW9uKS0+Y29yZU5vdGlmaWNhdGlvbigpLT5ib2R5KCkpOworfQorCitX
S1N0cmluZ1JlZiBXS0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlJY29uVVJMKFdLQnVuZGxlTm90aWZp
Y2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBs
KG5vdGlmaWNhdGlvbiktPmNvcmVOb3RpZmljYXRpb24oKS0+aWNvblVSTCgpKTsKK30KKworV0tT
dHJpbmdSZWYgV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5VGFnKFdLQnVuZGxlTm90aWZpY2F0aW9u
UmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKG5vdGlm
aWNhdGlvbiktPmNvcmVOb3RpZmljYXRpb24oKS0+dGFnKCkpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlm
aWNhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5vdGlmaWNhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjQ3NDY4MmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uLmgKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tCdW5kbGVOb3RpZmljYXRpb25faAorI2RlZmlu
ZSBXS0J1bmRsZU5vdGlmaWNhdGlvbl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBX
S1R5cGVJRCBXS0J1bmRsZU5vdGlmaWNhdGlvbkdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1
c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tCdW5kbGVOb3RpZmljYXRpb25faApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg5NjQyNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVO
b3RpZmljYXRpb25Qcml2YXRlLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlX2gKKyNkZWZpbmUgV0tCdW5kbGVOb3RpZmlj
YXRpb25Qcml2YXRlX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVm
IFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRpdGxlKFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5v
dGlmaWNhdGlvbik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVOb3RpZmljYXRpb25D
b3B5Qm9keShXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pOworV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weUljb25VUkwoV0tCdW5kbGVOb3Rp
ZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0J1bmRs
ZU5vdGlmaWNhdGlvbkNvcHlUYWcoV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9u
KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLQnVuZGxl
Tm90aWZpY2F0aW9uUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXgg
OTFkMGFkOC4uMmU2ZDJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtMTM0
LDYgKzEzNCwxMSBAQCB2b2lkIFdLQnVuZGxlUGFnZVNldERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZwogICAgIHRvSW1wbChwYWdlUmVm
KS0+aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoY2xpZW50
KTsKIH0KIAordm9pZCBXS0J1bmRsZVBhZ2VTZXROb3RpZmljYXRpb25DbGllbnQoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCogY2xpZW50KQor
eworICAgIHRvSW1wbChwYWdlUmVmKS0+aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlTm90aWZpY2F0
aW9uQ2xpZW50KGNsaWVudCk7Cit9CisKIFdLQnVuZGxlUGFnZUdyb3VwUmVmIFdLQnVuZGxlUGFn
ZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4gdG9B
UEkodG9JbXBsKHBhZ2VSZWYpLT5wYWdlR3JvdXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aAppbmRleCA4YmM3NjcwLi42YzE2ODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAg
LTM3MSw2ICszNzEsMjQgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRW50ZXJGdWxs
U2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFn
ZVdpbGxFeGl0RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVBhZ2VEaWRFeGl0RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiAK
Ky8vIFdlYiBub3RpZmljYXRpb25zIGNsaWVudAordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
Tm90aWZpY2F0aW9uRGlkU2hvd0NhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
K3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkRpZENsaWNrQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRp
b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
Tm90aWZpY2F0aW9uRGlkQ2xvc2VDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VOb3RpZmljYXRpb25EaWRSZWNlaXZlUGVybWlz
c2lvbkRlY2lzaW9uQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3Jp
Z2luUmVmIG9yaWdpbiwgYm9vbCBhbGxvd2VkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKwor
c3RydWN0IFdLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCB7CisgICAgaW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0J1bmRsZVBhZ2VOb3Rp
ZmljYXRpb25EaWRTaG93Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFNo
b3dOb3RpZmljYXRpb247CisgICAgV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uRGlkQ2xpY2tDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDbGlja05vdGlmaWNhdGlvbjsKKyAg
ICBXS0J1bmRsZVBhZ2VOb3RpZmljYXRpb25EaWRDbG9zZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZENsb3NlTm90aWZpY2F0aW9uOworICAgIFdLQnVuZGxlUGFnZU5vdGlm
aWNhdGlvbkRpZFJlY2VpdmVQZXJtaXNzaW9uRGVjaXNpb25DYWxsYmFjayAgICAgICAgZGlkUmVj
ZWl2ZVBlcm1pc3Npb25EZWNpc2lvbjsKK307Cit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VO
b3RpZmljYXRpb25DbGllbnQgV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OworCitlbnVt
IHsga1dLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudEN1cnJlbnRWZXJzaW9uID0gMCB9Owor
CiBXS19FWFBPUlQgV0tUeXBlSUQgV0tCdW5kbGVQYWdlR2V0VHlwZUlEKCk7CiAKIFdLX0VYUE9S
VCB2b2lkIFdLQnVuZGxlUGFnZVNldENvbnRleHRNZW51Q2xpZW50KFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudCogY2xpZW50KTsKQEAgLTM4Miw2ICs0
MDAsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRQb2xpY3lDbGllbnQoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVBvbAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQ
YWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVVJQ2xpZW50
KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0RnVsbFNjcmVlbkNsaWVu
dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCogY2xp
ZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldERpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldE5vdGlmaWNhdGlv
bkNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xp
ZW50KiBjbGllbnQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQ
YWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRs
ZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmM4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTm90aWZp
Y2F0aW9uLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxJbmpl
Y3RlZEJ1bmRsZU5vdGlmaWNhdGlvbj4gSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb246OmNyZWF0
ZShOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDZiYzk2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uaApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbmplY3RlZEJ1bmRsZU5vdGlm
aWNhdGlvbl9oCisjZGVmaW5lIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uX2gKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbiA6IHB1
YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUg
PSBUeXBlQnVuZGxlTm90aWZpY2F0aW9uOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5qZWN0
ZWRCdW5kbGVOb3RpZmljYXRpb24+IGNyZWF0ZShXZWJDb3JlOjpOb3RpZmljYXRpb24qKTsKKyAg
ICBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb24qIGNvcmVOb3RpZmljYXRpb24oKSBjb25zdCB7
IHJldHVybiBtX25vdGlmaWNhdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQorICAgICAgICA6IG1fbm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikKKyAgICB7Cisg
ICAgfQorCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9
CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiBtX25vdGlmaWNhdGlvbjsKK307
CisKK30KKworI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjU1MDllCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQ
YWdlTm90aWZpY2F0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vdGlm
aWNhdGlvbi5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJTZWN1
cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0
aW9uQ2xpZW50OjpkaWRTaG93Tm90aWZpY2F0aW9uKFdlYlBhZ2UqIHBhZ2UsIE5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuZGlkU2hvd05vdGlmaWNhdGlv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm90aWZpY2F0
aW9uPiBidW5kbGVOb3RpZmljYXRpb24gPSBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbjo6Y3Jl
YXRlKG5vdGlmaWNhdGlvbik7CisgICAgbV9jbGllbnQuZGlkU2hvd05vdGlmaWNhdGlvbih0b0FQ
SShwYWdlKSwgdG9BUEkoYnVuZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xpZW50
SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Ojpk
aWRDbGlja05vdGlmaWNhdGlvbihXZWJQYWdlKiBwYWdlLCBOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENsb3NlTm90aWZpY2F0aW9uKQorICAgICAg
ICByZXR1cm47CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24+IGJ1bmRs
ZU5vdGlmaWNhdGlvbiA9IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uOjpjcmVhdGUobm90aWZp
Y2F0aW9uKTsKKyAgICBtX2NsaWVudC5kaWRDbGlja05vdGlmaWNhdGlvbih0b0FQSShwYWdlKSwg
dG9BUEkoYnVuZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRDbG9zZU5v
dGlmaWNhdGlvbihXZWJQYWdlKiBwYWdlLCBOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sK
KyAgICBpZiAoIW1fY2xpZW50LmRpZENsb3NlTm90aWZpY2F0aW9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24+IGJ1bmRsZU5vdGlmaWNh
dGlvbiA9IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uOjpjcmVhdGUobm90aWZpY2F0aW9uKTsK
KyAgICBtX2NsaWVudC5kaWRDbG9zZU5vdGlmaWNhdGlvbih0b0FQSShwYWdlKSwgdG9BUEkoYnVu
ZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlTm90aWZpY2F0
aW9uUGVybWlzc2lvbkRlY2lzaW9uKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4sIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZFJlY2Vp
dmVQZXJtaXNzaW9uRGVjaXNpb24pCisgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8V2ViU2Vj
dXJpdHlPcmlnaW4+IHdlYk9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVBlcm1pc3Np
b25EZWNpc2lvbih0b0FQSShwYWdlKSwgdG9BUEkod2ViT3JpZ2luLmdldCgpKSwgYWxsb3dlZCwg
bV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZTJlN2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudF9o
CisjZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisj
aW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBOb3RpZmljYXRpb247CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVu
ZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tCdW5kbGVQYWdl
Tm90aWZpY2F0aW9uQ2xpZW50LCBrV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Q3VycmVu
dFZlcnNpb24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZFNob3dOb3RpZmljYXRpb24oV2ViUGFn
ZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgZGlkQ2xpY2tOb3RpZmljYXRp
b24oV2ViUGFnZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgZGlkQ2xvc2VO
b3RpZmljYXRpb24oV2ViUGFnZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihXZWJQYWdlKiBwYWdlLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBib29sIGFsbG93ZWQpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVQ
YWdlTm90aWZpY2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggMjk3MGFhNS4uOTMzMTk5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKQEAgLTE1NSw2ICsxNTUsNyBAQCB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpcwogICAgIG1f
b3JpZ2luVG9JRE1hcC5yZW1vdmUob3JpZ2luKTsKIAogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
Lm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5kaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihvcmln
aW4tPnRvU3RyaW5nKCksIGFsbG93ZWQpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVOb3Rp
ZmljYXRpb25DbGllbnQoKS5kaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KG1fcGFnZSwgb3JpZ2luLmdldCgpLCBhbGxvd2VkKTsKIAogI2lmIEVOQUJMRShMRUdBQ1lfTk9U
SUZJQ0FUSU9OUykKICAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiB2b2lkQ2FsbGJhY2sgPSBtX2lk
VG9Wb2lkQ2FsbGJhY2tNYXAudGFrZShyZXF1ZXN0SUQpOwpAQCAtMTY4LDcgKzE2OSw3IEBAIHZv
aWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkRlY2lzCiAgICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaz4gY2FsbGJhY2sgPSBtX2lkVG9DYWxsYmFja01hcC50YWtlKHJlcXVlc3RJRCk7CiAg
ICAgaWYgKCFjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgY2FsbGJhY2st
PmhhbmRsZUV2ZW50KE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvblN0cmluZyhhbGxvd2VkID8gTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbkRlbmllZCkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcAppbmRleCA3ODE5OWY1Li5jZjUxNmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwCkBAIC0xMjgsMTEgKzEyOCwxMSBAQCBib29sIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAj
aWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykK
ICAgICBpZiAoIW5vdGlmaWNhdGlvbiB8fCAhcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+
bm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAorCiAg
ICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBnZW5lcmF0ZU5vdGlmaWNhdGlvbklEKCk7CiAg
ICAgbV9ub3RpZmljYXRpb25NYXAuc2V0KG5vdGlmaWNhdGlvbiwgbm90aWZpY2F0aW9uSUQpOwot
ICAgIG1fbm90aWZpY2F0aW9uSURNYXAuc2V0KG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24p
OwotICAgIAorICAgIG1fbm90aWZpY2F0aW9uSURNYXAuc2V0KG5vdGlmaWNhdGlvbklELCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpOb3RpZmljYXRpb25JRERhdGE6OmNyZWF0ZShub3RpZmljYXRp
b24sIHBhZ2UpKTsKKwogICAgIE5vdGlmaWNhdGlvbkNvbnRleHRNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+c2Vjb25k
LmFwcGVuZChub3RpZmljYXRpb25JRCk7CiAKQEAgLTE3MiwxMSArMTcyLDEyIEBAIHZvaWQgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqCiAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eTo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlm
aWNhdGlvbklEcyksIHBhZ2UtPnBhZ2VJRCgpKTsKICAgICBzaXplX3QgY291bnQgPSBub3RpZmlj
YXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkg
ewotICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNh
dGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsKLSAgICAgICAgaWYgKCFub3RpZmlj
YXRpb24pCisgICAgICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEID0gbm90aWZpY2F0aW9uSURz
W2ldOworICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uSUREYXRhPiBkYXRhID0gbV9ub3RpZmlj
YXRpb25JRE1hcC50YWtlKG5vdGlmaWNhdGlvbklEKTsKKyAgICAgICAgaWYgKCFkYXRhKQogICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG5vdGlmaWNhdGlvbi0+ZmluYWxpemUoKTsKLSAg
ICAgICAgbV9ub3RpZmljYXRpb25NYXAucmVtb3ZlKG5vdGlmaWNhdGlvbik7CisgICAgICAgIGRh
dGEtPm5vdGlmaWNhdGlvbigpLT5maW5hbGl6ZSgpOworICAgICAgICBtX25vdGlmaWNhdGlvbk1h
cC5yZW1vdmUoZGF0YS0+bm90aWZpY2F0aW9uKCkpOwogICAgIH0KICAgICAKICAgICBtX25vdGlm
aWNhdGlvbkNvbnRleHRNYXAucmVtb3ZlKGl0KTsKQEAgLTIwMiwxMSArMjAzLDEyIEBAIHZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbih1aW50NjRfdCBub3Rp
ZmljYXRpb25JRCkKICAgICBpZiAoIWlzTm90aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25J
RCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3Rp
ZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbklETWFwLmdldChub3RpZmljYXRpb25JRCk7Ci0gICAg
aWYgKCFub3RpZmljYXRpb24pCisgICAgTm90aWZpY2F0aW9uSURNYXA6Oml0ZXJhdG9yIGl0ID0g
bV9ub3RpZmljYXRpb25JRE1hcC5maW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICBpZiAoaXQgPT0g
bV9ub3RpZmljYXRpb25JRE1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbm90aWZp
Y2F0aW9uLT5kaXNwYXRjaFNob3dFdmVudCgpOworICAgIGl0LT5zZWNvbmQtPndlYlBhZ2UoKS0+
aW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoKS5kaWRTaG93Tm90aWZpY2F0aW9uKGl0
LT5zZWNvbmQtPndlYlBhZ2UoKSwgaXQtPnNlY29uZC0+bm90aWZpY2F0aW9uKCkpOworICAgIGl0
LT5zZWNvbmQtPm5vdGlmaWNhdGlvbigpLT5kaXNwYXRjaFNob3dFdmVudCgpOwogI2VuZGlmCiB9
CiAKQEAgLTIxNiwxMSArMjE4LDEyIEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlk
Q2xpY2tOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAgICAgaWYgKCFpc05v
dGlmaWNhdGlvbklEVmFsaWQobm90aWZpY2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNhdGlvbklETWFw
LmdldChub3RpZmljYXRpb25JRCk7Ci0gICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgTm90aWZp
Y2F0aW9uSURNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ub3RpZmljYXRpb25JRE1hcC5maW5kKG5vdGlm
aWNhdGlvbklEKTsKKyAgICBpZiAoaXQgPT0gbV9ub3RpZmljYXRpb25JRE1hcC5lbmQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbm90aWZpY2F0aW9uLT5kaXNwYXRjaENsaWNrRXZlbnQoKTsK
KyAgICBpdC0+c2Vjb25kLT53ZWJQYWdlKCktPmluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uQ2xp
ZW50KCkuZGlkQ2xpY2tOb3RpZmljYXRpb24oaXQtPnNlY29uZC0+d2ViUGFnZSgpLCBpdC0+c2Vj
b25kLT5ub3RpZmljYXRpb24oKSk7CisgICAgaXQtPnNlY29uZC0+bm90aWZpY2F0aW9uKCktPmRp
c3BhdGNoQ2xpY2tFdmVudCgpOwogI2VuZGlmCiB9CiAKQEAgLTIzMywxNCArMjM2LDE1IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3RpZmljYXRpb25zKGNvbnN0IFZl
Y3Rvcjx1aW50NjRfdD4mIG5vdGlmCiAgICAgICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlk
KG5vdGlmaWNhdGlvbklEKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFJlZlB0
cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShu
b3RpZmljYXRpb25JRCk7Ci0gICAgICAgIGlmICghbm90aWZpY2F0aW9uKQorICAgICAgICBSZWZQ
dHI8Tm90aWZpY2F0aW9uSUREYXRhPiBkYXRhID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5v
dGlmaWNhdGlvbklEKTsKKyAgICAgICAgaWYgKCFkYXRhKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgbV9ub3RpZmljYXRpb25NYXAucmVtb3ZlKG5vdGlmaWNhdGlvbik7Ci0gICAg
ICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlmaWNhdGlvbklELCBub3Rp
ZmljYXRpb24uZ2V0KCkpOworICAgICAgICBtX25vdGlmaWNhdGlvbk1hcC5yZW1vdmUoZGF0YS0+
bm90aWZpY2F0aW9uKCkpOworICAgICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1h
cChub3RpZmljYXRpb25JRCwgZGF0YS0+bm90aWZpY2F0aW9uKCkpOwogCi0gICAgICAgIG5vdGlm
aWNhdGlvbi0+ZGlzcGF0Y2hDbG9zZUV2ZW50KCk7CisgICAgICAgIGRhdGEtPndlYlBhZ2UoKS0+
aW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoKS5kaWRDbG9zZU5vdGlmaWNhdGlvbihk
YXRhLT53ZWJQYWdlKCksIGRhdGEtPm5vdGlmaWNhdGlvbigpKTsKKyAgICAgICAgZGF0YS0+bm90
aWZpY2F0aW9uKCktPmRpc3BhdGNoQ2xvc2VFdmVudCgpOwogICAgIH0KICNlbmRpZgogfQpAQCAt
MjU5LDQgKzI2MywxNyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnJlbW92ZU5vdGlm
aWNhdGlvbkZyb21Db250ZXh0TWFwKHVpbnQ2NF90IG5vdGlmaWNhdAogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQor
UGFzc1JlZlB0cjxXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpOb3RpZmljYXRpb25JRERhdGE+IFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklERGF0YTo6Y3JlYXRlKE5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiB3ZWJQYWdlKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Tm90aWZpY2F0aW9uSUREYXRhKG5vdGlm
aWNhdGlvbiwgd2ViUGFnZSkpOworfQorCitXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpOb3RpZmlj
YXRpb25JRERhdGE6Ok5vdGlmaWNhdGlvbklERGF0YShOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
biwgV2ViUGFnZSogd2ViUGFnZSkKKyAgICA6IG1fbm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikK
KyAgICAsIG1fd2ViUGFnZSh3ZWJQYWdlKQoreworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggZTlhNTk0Ni4uZmMx
N2Y5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC04NSw2ICs4NSwxOSBA
QCBwcml2YXRlOgogICAgIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCiAgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4
dE1hcCh1aW50NjRfdCBub3RpZmljYXRpb25JRCwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKik7CisK
KyAgICBjbGFzcyBOb3RpZmljYXRpb25JRERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmlj
YXRpb25JRERhdGE+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5v
dGlmaWNhdGlvbklERGF0YT4gY3JlYXRlKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiosIFdlYlBhZ2Uq
KTsKKworICAgICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uLmdldCgpOyB9CisgICAgICAgIFdlYlBhZ2UqIHdlYlBh
Z2UoKSBjb25zdCB7IHJldHVybiBtX3dlYlBhZ2U7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBO
b3RpZmljYXRpb25JRERhdGEoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiwgV2ViUGFnZSopOworCisg
ICAgICAgIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb24+IG1fbm90aWZpY2F0aW9uOworICAg
ICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CisgICAgfTsKICNlbmRpZgogCiAgICAgV2ViUHJvY2Vz
cyogbV9wcm9jZXNzOwpAQCAtOTMsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhh
c2hNYXA8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4sIHVpbnQ2NF90PiBOb3RpZmljYXRp
b25NYXA7CiAgICAgTm90aWZpY2F0aW9uTWFwIG1fbm90aWZpY2F0aW9uTWFwOwogICAgIAotICAg
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4g
PiBOb3RpZmljYXRpb25JRE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxOb3RpZmljYXRpb25JRERhdGE+ID4gTm90aWZpY2F0aW9uSURNYXA7CiAgICAgTm90aWZpY2F0
aW9uSURNYXAgbV9ub3RpZmljYXRpb25JRE1hcDsKICAgICAKICAgICB0eXBlZGVmIEhhc2hNYXA8
UmVmUHRyPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+LCBWZWN0b3I8dWludDY0X3Q+
ID4gTm90aWZpY2F0aW9uQ29udGV4dE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlY2FjMTJjLi43NzBiYTQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MjcsNiArNDI3LDEz
IEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQoV0tCdW5kbGVQYWdlRGlhZ25vCiAgICAgbV9sb2dEaWFnbm9zdGljTWVzc2FnZUNs
aWVudC5pbml0aWFsaXplKGNsaWVudCk7CiB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQordm9pZCBXZWJQYWdlOjppbml0aWFsaXpl
SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9u
Q2xpZW50KiBjbGllbnQpCit7CisgICAgbV9ub3RpZmljYXRpb25DbGllbnQuaW5pdGlhbGl6ZShj
bGllbnQpOworfQorI2VuZGlmCisKIFBhc3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCwg
Y29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIFN0cmluZyBwbHVn
aW5QYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggNzg5NzI3YS4uNzZjOTU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBh
Z2VVSUNsaWVudC5oIgpAQCAtMjUzLDYgKzI1NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRp
YWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudCopOwogI2VuZGlmCiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudChXS0J1bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCop
OworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCisgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQo
V0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Kik7CisjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogICAgIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50JiBp
bmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KCkgeyByZXR1cm4gbV9jb250ZXh0TWVudUNs
aWVudDsgfQpAQCAtMjY3LDYgKzI3MSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCYgaW5qZWN0ZWRC
dW5kbGVGdWxsU2NyZWVuQ2xpZW50KCkgeyByZXR1cm4gbV9mdWxsU2NyZWVuQ2xpZW50OyB9CiAj
ZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQorICAgIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCYgaW5qZWN0
ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbkNsaWVu
dDsgfQorI2VuZGlmCiAKICAgICB2b2lkIHNldFVuZGVybGF5UGFnZShQYXNzUmVmUHRyPFdlYlBh
Z2U+IHVuZGVybGF5UGFnZSkgeyBtX3VuZGVybGF5UGFnZSA9IHVuZGVybGF5UGFnZTsgfQogCkBA
IC04MzksNiArODQ2LDkgQEAgcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNsaWVudDsKICNlbmRpZgogICAgIEluamVjdGVkQnVuZGxl
UGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQ7
CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQgbV9ub3RpZmljYXRp
b25DbGllbnQ7CisjZW5kaWYKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFdl
YkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7Ci0tIAoxLjcuMTAuMiAoQXBwbGUgR2l0LTMz
KQoK
</data>
<flag name="review"
          id="171265"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160665</attachid>
            <date>2012-08-27 01:35:19 -0700</date>
            <delta_ts>2012-08-27 14:10:27 -0700</delta_ts>
            <desc>8/9 - WTR support for dump output for platform events</desc>
            <filename>0008-Work-towards-WebKitTestRunner-should-support-notific.patch</filename>
            <type>text/plain</type>
            <size>16686</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAyYjY4YmU3Y2UwMzgxNmU4ODBhZTBjMjlhMjE0NDM4OGI0NjI1MTdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTdW4s
IDI2IEF1ZyAyMDEyIDE5OjUxOjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA4LzldIFdvcmsgdG93
YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0CiBub3RpZmljYXRpb25zCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKIDxyZGFyOi8vcHJvYmxl
bS8xMDM1NzYxOD4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQWRkIHRlc3Qgb3V0cHV0
IHdoZW4gdGhlIHRlc3QgY2FsbHMgdGVzdFJ1bm5lci5kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJh
Y2tzKCkuCgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGw6IEFkZCB0ZXN0UnVubmVyLmR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MoKS4K
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6
CihXVFI6OndlYk5vdGlmaWNhdGlvblRvU3RyaW5nKTogSGVscGVyIGZ1bmN0aW9uIHRoYXQgb3V0
cHV0cyBub3RpZmljYXRpb24gZGF0YS4KKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2UpOiBEZWZpbmVkIGluamVjdGVkIGJ1bmRsZSBub3RpZmljYXRpb24gY2xpZW50
LgooV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFNob3dOb3RpZmljYXRpb24pOgooV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsaWNrTm90aWZpY2F0aW9uKToKKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpkaWRDbG9zZU5vdGlmaWNhdGlvbik6CihXVFI6OkluamVjdGVkQnVuZGxlUGFn
ZTo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6CiogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKEluamVjdGVkQnVu
ZGxlUGFnZSk6CiogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKFdUUjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CiogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CihXVFI6OlRlc3RSdW5uZXI6OmR1bXBXZWJOb3RpZmlj
YXRpb25DYWxsYmFja3MpOgooV1RSOjpUZXN0UnVubmVyOjpzaG91bGREdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzKToKKFRlc3RSdW5uZXIpOgoqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgooV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CihXVFI6OlRlc3RD
b250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCk6
IEF1dG9tYXRpY2FsbHkgYWNjZXB0IHBlcm1pc3Npb24gcmVxdWVzdHMuCihXVFIpOgoqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKFRlc3RDb250cm9sbGVyKToKLS0tCiBUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzMgKysr
KysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCAgICAgICAg
IHwgICAgMSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCAgICAg
ICAgICB8ICAgODcgKysrKysrKysrKysrKysrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaCAgICAgICAgICAgIHwgICAxMCArKysKIC4uLi9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIHwgICAgMSArCiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCB8ICAgIDMgKwogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAgfCAgIDEzICsrLQogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oICAgICAgICAgICAgfCAgICAzICsK
IDggZmlsZXMgY2hhbmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTNjMzkzNy4u
NTI3YTVlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtNiw2ICs2LDM5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CiAKKyAgICAgICAgQWRkIHRlc3Qgb3V0cHV0IHdoZW4gdGhlIHRlc3QgY2FsbHMgdGVzdFJ1bm5l
ci5kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKCkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOiBBZGQgdGVzdFJ1
bm5lci5kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKCkuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V1RSOjp3ZWJOb3RpZmljYXRpb25Ub1N0cmluZyk6IEhlbHBlciBmdW5jdGlvbiB0aGF0IG91dHB1
dHMgbm90aWZpY2F0aW9uIGRhdGEuCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
SW5qZWN0ZWRCdW5kbGVQYWdlKTogRGVmaW5lZCBpbmplY3RlZCBidW5kbGUgbm90aWZpY2F0aW9u
IGNsaWVudC4KKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTaG93Tm90aWZp
Y2F0aW9uKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbGlja05vdGlm
aWNhdGlvbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xvc2VOb3Rp
ZmljYXRpb24pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVO
b3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisgICAgICAgIChJbmplY3Rl
ZEJ1bmRsZVBhZ2UpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpkdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKToK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxi
YWNrcyk6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRp
YWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOiBBdXRvbWF0aWNhbGx5IGFjY2VwdCBwZXJtaXNz
aW9uIHJlcXVlc3RzLgorICAgICAgICAoV1RSKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChUZXN0Q29udHJvbGxlcik6CisKKzIwMTItMDgt
MjYgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBX
ZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKwogICAgICAgICBBZGQgYWRkaXRpb25hbCBvdXRwdXQgd2hlbiBydW5uaW5nIHRlc3QsIGlm
IHRlc3RSdW5uZXIuZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpIGlzIGNhbGxlZC4KIAog
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCAwN2EzNWEyLi44MDQ5OGJk
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTQ2LDYgKzQ2LDcgQEAgbW9kdWxlIFdU
UiB7CiAgICAgICAgIHZvaWQgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpOwogICAgICAg
ICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKICAgICAgICAgdm9pZCBkdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlcygpOworICAgICAgICB2b2lkIGR1bXBXZWJOb3RpZmljYXRp
b25DYWxsYmFja3MoKTsKIAogICAgICAgICAvLyBTcGVjaWFsIG9wdGlvbnMuCiAgICAgICAgIHZv
aWQga2VlcFdlYkhpc3RvcnkoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCA3ZDJjYjk4
Li5mYzc2MWU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC00MCw3ICs0MCw5IEBACiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5k
bGVOb2RlSGFuZGxlUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVOb3RpZmlj
YXRpb25Qcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2VQcml2YXRlLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS1VSTFJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI2Niw2ICsyNjgsMjUgQEAgc3RhdGljIGlubGluZSBXVEY6
OlN0cmluZyB1cmxTdWl0YWJsZUZvclRlc3RSZXN1bHQoV0tVUkxSZWYgZmlsZVVybCkKICAgICBy
ZXR1cm4gKGluZGV4QmFzZU5hbWUgPT0gbm90Rm91bmQpID8gdXJsU3RyaW5nIDogdXJsU3RyaW5n
LnN1YnN0cmluZyhpbmRleEJhc2VOYW1lICsgMSk7CiB9CiAKK3N0YXRpYyBXVEY6OlN0cmluZyB3
ZWJOb3RpZmljYXRpb25Ub1N0cmluZyhXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRp
b24pCit7CisgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KworICAgIFdURjo6U3RyaW5nQnVpbGRlciBzdHJpbmdCdWlsZGVyOworICAgIHN0cmluZ0J1aWxk
ZXIuYXBwZW5kKCJ7dGl0bGU6IFwiIik7CisgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQodG9XVEZT
dHJpbmcoYWRvcHRXSyhXS0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlUaXRsZShub3RpZmljYXRpb24p
KSkpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKCJcIiwgYm9keTogXCIiKTsKKyAgICBzdHJp
bmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLQnVuZGxlTm90aWZpY2F0aW9u
Q29weUJvZHkobm90aWZpY2F0aW9uKSkpKTsKKyAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCgiXCIs
IHRhZzogXCIiKTsKKyAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhhZG9wdFdL
KFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRhZyhub3RpZmljYXRpb24pKSkpOworICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kKCJcIiwgaWNvblVSTDogIik7CisgICAgc3RyaW5nQnVpbGRlci5hcHBl
bmQodG9XVEZTdHJpbmcoYWRvcHRXSyhXS0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlJY29uVVJMKG5v
dGlmaWNhdGlvbikpKSk7CisgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIn0iKTsKKworICAgIHJl
dHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKIHN0YXRpYyBIYXNoTWFwPHVpbnQ2
NF90LCBTdHJpbmc+IGFzc2lnbmVkVXJsc0NhY2hlOwogCiBJbmplY3RlZEJ1bmRsZVBhZ2U6Oklu
amVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKQEAgLTM4Miw2ICs0MDMsMTYg
QEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UpCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFn
ZSwgJmZ1bGxTY3JlZW5DbGllbnQpOwogI2VuZGlmCisKKyAgICBXS0J1bmRsZVBhZ2VOb3RpZmlj
YXRpb25DbGllbnQgbm90aWZpY2F0aW9uQ2xpZW50ID0geworICAgICAgICBrV0tCdW5kbGVQYWdl
Tm90aWZpY2F0aW9uQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgIHRoaXMsCisgICAgICAg
IGRpZFNob3dOb3RpZmljYXRpb24sCisgICAgICAgIGRpZENsaWNrTm90aWZpY2F0aW9uLAorICAg
ICAgICBkaWRDbG9zZU5vdGlmaWNhdGlvbiwKKyAgICAgICAgZGlkUmVjZWl2ZU5vdGlmaWNhdGlv
blBlcm1pc3Npb25EZWNpc2lvbiwKKyAgICB9OworICAgIFdLQnVuZGxlUGFnZVNldE5vdGlmaWNh
dGlvbkNsaWVudChtX3BhZ2UsICZub3RpZmljYXRpb25DbGllbnQpOwogfQogCiBJbmplY3RlZEJ1
bmRsZVBhZ2U6On5JbmplY3RlZEJ1bmRsZVBhZ2UoKQpAQCAtMTY2MSw2ICsxNjkyLDYyIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpjbG9zZUZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBh
Z2VSZWYpCiB9CiAjZW5kaWYKIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFNob3dOb3Rp
ZmljYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5v
dGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJ
bmplY3RlZEJ1bmRsZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFNo
b3dOb3RpZmljYXRpb24ocGFnZSwgbm90aWZpY2F0aW9uKTsKK30KKwordm9pZCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OmRpZENsaWNrTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
Cit7CisgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpLT5kaWRDbGlja05vdGlmaWNhdGlvbihwYWdlLCBub3RpZmljYXRpb24p
OworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xvc2VOb3RpZmljYXRpb24oV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRs
ZVBhZ2UqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZENsb3NlTm90aWZpY2F0
aW9uKHBhZ2UsIG5vdGlmaWNhdGlvbik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpk
aWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgYm9vbCBhbGxvd2VkLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbihwYWdlLCBvcmlnaW4sIGFsbG93ZWQpOworfQorCit2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZGlkU2hvd05vdGlmaWNhdGlvbihXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
Tm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIUluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFj
a3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJp
bmdCdWlsZGVyKCktPmFwcGVuZCgiU0hPV0VEIFdFQiBOT1RJRklDQVRJT04gIik7CisgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHdlYk5vdGlmaWNh
dGlvblRvU3RyaW5nKG5vdGlmaWNhdGlvbikpOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiXG4iKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OmRpZENsaWNrTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb3Rp
ZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNo
YXJlZCgpLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygp
KQorICAgICAgICByZXR1cm47CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1
aWxkZXIoKS0+YXBwZW5kKCJDTElDS0VEIFdFQiBOT1RJRklDQVRJT04gIik7CisgICAgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHdlYk5vdGlmaWNhdGlv
blRvU3RyaW5nKG5vdGlmaWNhdGlvbikpOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5z
dHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiXG4iKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OmRpZENsb3NlTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVOb3RpZmlj
YXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpKQor
ICAgICAgICByZXR1cm47CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxk
ZXIoKS0+YXBwZW5kKCJDTE9TRUQgV0VCIE5PVElGSUNBVElPTiAiKTsKKyAgICBJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQod2ViTm90aWZpY2F0aW9uVG9T
dHJpbmcobm90aWZpY2F0aW9uKSk7CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmlu
Z0J1aWxkZXIoKS0+YXBwZW5kKCJcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBp
ZiAoIUluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBXZWJO
b3RpZmljYXRpb25DYWxsYmFja3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiUkVRVUVTVEVEIFdFQiBOT1RJ
RklDQVRJT04gUEVSTUlTU0lPTiBGT1IgIik7CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKHRvV1RGU3RyaW5nKGFkb3B0V0soV0tTZWN1cml0eU9y
aWdpbkNvcHlUb1N0cmluZyhvcmlnaW4pKSkpOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCgiXG4iKTsKK30KKwogc3RhdGljIGJvb2wgY29tcGFy
ZUJ5VGFyZ2V0TmFtZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbTEsIFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtMikKIHsKICAgICByZXR1cm4gdG9TVEQoYWRv
cHRXSyhXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGFyZ2V0KGl0ZW0xKSkpIDwgdG9T
VEQoYWRvcHRXSyhXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGFyZ2V0KGl0ZW0yKSkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggMDc0MzE0ZS4uYTU4ZWM3MCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
aAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5oCkBAIC0xNjMsNiArMTYzLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFu
Z2UoV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSk7CiAgICAgdm9pZCBkaWRDaGFuZ2VTZWxl
Y3Rpb24oV0tTdHJpbmdSZWYgbm90aWZpY2F0aW9uTmFtZSk7CiAKKyAgICAvLyBOb3RpZmljYXRp
b24gY2xpZW50CisgICAgc3RhdGljIHZvaWQgZGlkU2hvd05vdGlmaWNhdGlvbihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDbGlja05vdGlmaWNhdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRDbG9zZU5vdGlm
aWNhdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90
aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgYm9vbCBhbGxvd2VkLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKKyAgICB2b2lkIGRpZFNob3dOb3RpZmljYXRpb24oV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbik7CisgICAgdm9pZCBk
aWRDbGlja05vdGlmaWNhdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmlj
YXRpb25SZWYgbm90aWZpY2F0aW9uKTsKKyAgICB2b2lkIGRpZENsb3NlTm90aWZpY2F0aW9uKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24p
OworICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIGJvb2wgYWxsb3dl
ZCk7CisKICAgICB2b2lkIGR1bXBBbGxGcmFtZXNUZXh0KCk7CiAgICAgdm9pZCBkdW1wQWxsRnJh
bWVTY3JvbGxQb3NpdGlvbnMoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMWFkY2RhYy4uMGFjNGMxYSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC03OSw2ICs3OSw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwg
bV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGZhbHNlKQogICAgICwgbV9kdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVU
eXBlcyhmYWxzZSkKKyAgICAsIG1fZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcyhmYWxzZSkK
ICAgICAsIG1fd2FpdFRvRHVtcChmYWxzZSkKICAgICAsIG1fdGVzdFJlcGFpbnQoZmFsc2UpCiAg
ICAgLCBtX3Rlc3RSZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoZmFsc2UpCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDhjNDA0
MmUuLjRjMTI4NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSB7IHNldFNob3VsZER1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2sodHJ1ZSk7IH0KICAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
KSB7IG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9IHRydWU7IH0KICAgICB2b2lkIGR1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgeyBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5
cGVzID0gdHJ1ZTsgfQorICAgIHZvaWQgZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpIHsg
bV9kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzID0gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRT
aG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsgbV9kdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFNob3VsZER1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2soYm9vbCB2YWx1ZSkgeyBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sg
PSB2YWx1ZTsgfQpAQCAtMTY2LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZER1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2R1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2s7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxs
YmFja3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7IH0KICAg
ICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgeyByZXR1
cm4gbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsgfQorICAgIGJvb2wgc2hvdWxkRHVt
cFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFdlYk5vdGlm
aWNhdGlvbkNhbGxiYWNrczsgfQogCiAgICAgYm9vbCBpc1BvbGljeURlbGVnYXRlRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOyB9CiAgICAgYm9vbCBpc1Bv
bGljeURlbGVnYXRlUGVybWlzc2l2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5RGVsZWdhdGVQ
ZXJtaXNzaXZlOyB9CkBAIC0yNTksNiArMjYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsKICAgICBib29sIG1fZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrczsKICAgICBib29sIG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CisgICAg
Ym9vbCBtX2R1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3M7CiAgICAgYm9vbCBtX3dhaXRUb0R1
bXA7IC8vIFRydWUgaWYgd2FpdFVudGlsRG9uZSgpIGhhcyBiZWVuIGNhbGxlZCwgYnV0IG5vdGlm
eURvbmUoKSBoYXMgbm90IHlldCBiZWVuIGNhbGxlZC4KICAgICBib29sIG1fdGVzdFJlcGFpbnQ7
CiAgICAgYm9vbCBtX3Rlc3RSZXBhaW50U3dlZXBIb3Jpem9udGFsbHk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGM5YWVjM2YuLjkxMjhiMGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHRQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS05vdGlmaWNhdGlvbi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tOb3RpZmljYXRpb25NYW5h
Z2VyLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS051bWJlci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQ
YWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZVByaXZhdGUuaD4KQEAgLTM4OCw3
ICszODksNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25z
dCBjaGFyKiBhcmd2W10pCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQK
ICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudAotICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QK
ICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCiAgICAgfTsKICAg
ICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xp
ZW50KTsKQEAgLTkzNSw0ICs5MzYsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayh1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBtX3dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0
aW9uSUQpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJl
ZiBvcmlnaW4sIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVxdWVzdCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QocGFnZSwgb3JpZ2luLCByZXF1ZXN0KTsKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UmVmIHJlcXVlc3QpCit7CisgICAgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEFsbG93KHJlcXVlc3QpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBhNTNkMzQ5Li40YmVlMjAyIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV0tQYWdlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpOwogCisgICAgc3Rh
dGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQ
YWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UmVmLCBjb25zdCB2b2lkKik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYpOworCiAgICAgc3RhdGljIFdLUGFnZVJlZiBj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0
aW9uYXJ5UmVmLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZv
aWQqKTsKIAogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Ci0tIAoxLjcuMTAuMiAoQXBwbGUgR2l0LTMzKQoK
</data>
<flag name="review"
          id="171268"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160666</attachid>
            <date>2012-08-27 01:36:10 -0700</date>
            <delta_ts>2012-08-27 02:10:25 -0700</delta_ts>
            <desc>9/9 - Added basic tests in http/tests/notifications showing output from DRT and WTR for web notifications</desc>
            <filename>0009-WebKitTestRunner-should-support-notifications.patch</filename>
            <type>text/plain</type>
            <size>14413</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBiMzVkNjk2YmQzZjM3ZmI0YTUxYjhiZmNjMjJkOWVlNWM3OGE2MmRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBNb24s
IDI3IEF1ZyAyMDEyIDAxOjEyOjI1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCA5LzldIFdlYktpdFRl
c3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucwogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CiA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFkZCBiYXNpYyB0ZXN0cyBmb3Igd2ViIG5vdGlm
aWNhdGlvbnMgdGhhdCB1c2Ugd2ViIG5vdGlmaWNhdGlvbnMgQVBJLgoKKiBodHRwL3Rlc3RzL25v
dGlmaWNhdGlvbnMvY2xpY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMvY2xpY2suaHRtbDogQWRkZWQuCiogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Jl
cXVlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVx
dWVzdC5odG1sOiBBZGRlZC4KKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvc2hvdy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgoqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9zaG93Lmh0bWw6IEFkZGVk
LgoqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qczogQWRkZWQuIFRh
a2VuIGZyb20gZmFzdC9qcy9yZXNvdXJjZXMuCiogaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanM6IFVwZGF0ZWQgZnJvbSBmYXN0L2pzL3Jlc291cmNlcy4KLS0tCiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTkgKysrKysrCiAu
Li4vaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNrLWV4cGVjdGVkLnR4dCAgICB8ICAgMTUg
KysrKwogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNrLmh0bWwgICAg
fCAgIDQzICsrKysrKysrKysrKwogLi4uL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0
LWV4cGVjdGVkLnR4dCAgfCAgIDEzICsrKysKIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZp
Y2F0aW9ucy9yZXF1ZXN0Lmh0bWwgIHwgICAzMyArKysrKysrKysKIC4uLi9odHRwL3Rlc3RzL25v
dGlmaWNhdGlvbnMvc2hvdy1leHBlY3RlZC50eHQgICAgIHwgICAxOCArKysrKwogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Nob3cuaHRtbCAgICAgfCAgIDcyICsrKysrKysr
KysrKysrKysrKysrCiAuLi4vaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWFzeW5j
LmpzICAgICB8ICAgIDcgKysKIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzICAgIHwgICA1OCArKysrKysrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDI2
OCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvY2xpY2stZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNr
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNh
dGlvbnMvcmVxdWVzdC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Nob3ctZXhwZWN0ZWQudHh0
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L3Nob3cuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qcwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjM2M0NmE0Li5iNGJhYzc2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDgtMjcgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5
NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyB0ZXN0cyBmb3Igd2ViIG5v
dGlmaWNhdGlvbnMgdGhhdCB1c2Ugd2ViIG5vdGlmaWNhdGlvbnMgQVBJLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNrLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Nob3ctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvc2hvdy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtYXN5bmMuanM6
IEFkZGVkLiBUYWtlbiBmcm9tIGZhc3QvanMvcmVzb3VyY2VzLgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOiBVcGRhdGVkIGZyb20gZmFzdC9qcy9yZXNvdXJj
ZXMuCisKIDIwMTItMDgtMjQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAg
IFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlv
bnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9jbGlj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvY2xp
Y2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4ZmQ2
ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvY2xpY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1NIT1dFRCBXRUIgTk9USUZJ
Q0FUSU9OIHt0aXRsZTogInRpdGxlIiwgYm9keTogIiIsIHRhZzogIiIsIGljb25VUkw6IH0KK0NM
SUNLRUQgV0VCIE5PVElGSUNBVElPTiB7dGl0bGU6ICJ0aXRsZSIsIGJvZHk6ICIiLCB0YWc6ICIi
LCBpY29uVVJMOiB9CitUaGlzIHRlc3QgbG9va3MgZm9yIHRoZSBkaXNwYXRjaCBvZiB0aGUgb25j
bGljayBldmVudCBoYW5kbGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworR3Jh
bnRpbmcgcGVybWlzc2lvbiB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgTm90aWZpY2F0
aW9uLnBlcm1pc3Npb24gaXMgImdyYW50ZWQiCitQQVNTIG9uc2hvdyBldmVudCBoYW5kbGVyIHdh
cyBjYWxsZWQKK1BBU1Mgb25jbGljayBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvY2xpY2suaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9jbGljay5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmQzZTAyNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvY2xpY2suaHRtbApAQCAtMCwwICsxLDQzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKwl0ZXN0UnVubmVyLmR1
bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MoKTsKKwl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKK30KKworZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCit7CisgIHZhciBzY3JpcHRFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CisgIHNjcmlwdEVsZW1lbnQuc3Jj
ID0gJy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtYXN5bmMuanMnOworICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKHNjcmlwdEVsZW1lbnQpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGxvb2tzIGZvciB0aGUgZGlzcGF0Y2ggb2YgdGhlIG9uY2xpY2sgZXZlbnQgaGFuZGxlci4iKTsK
KworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdmFyIG9yaWdpbiA9ICdodHRwOi8vMTI3LjAu
MC4xOjgwMDAnOworCisJZGVidWcoIkdyYW50aW5nIHBlcm1pc3Npb24gdG8gIiArIG9yaWdpbik7
CisJdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24ob3JpZ2luKTsKKwlz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQi
KTsKKworCXZhciBuID0gbmV3IE5vdGlmaWNhdGlvbigidGl0bGUiKTsKKwluLm9uc2hvdyA9IGZ1
bmN0aW9uKCkgeworCQl0ZXN0UGFzc2VkKCJvbnNob3cgZXZlbnQgaGFuZGxlciB3YXMgY2FsbGVk
Iik7CisJCXRlc3RSdW5uZXIuc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayh0aGlzKTsKKwl9
OworCW4ub25jbGljayA9IGZ1bmN0aW9uKCkgeworCQl0ZXN0UGFzc2VkKCJvbmNsaWNrIGV2ZW50
IGhhbmRsZXIgd2FzIGNhbGxlZCIpOworCQl0ZXN0Q29tcGxldGVkKCk7CisJfQorCW4ub25lcnJv
ciA9IGZ1bmN0aW9uKCkgeworCQl0ZXN0RmFpbGVkKCJvbmVycm9yIGV2ZW50IGhhbmRsZXIgc2hv
dWxkIG5vdCBiZSBjYWxsZWQiKTsKKwkJdGVzdENvbXBsZXRlZCgpOworCX07Cit9CisKK3NldFRp
bWVvdXQodGVzdENvbXBsZXRlZCwgMTAwKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3QtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwY2MwNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorUkVRVUVTVEVEIFdFQiBOT1RJRklDQVRJT04gUEVSTUlT
U0lPTiBGT1IgaHR0cDovLzEyNy4wLjAuMTo4MDAwCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSBy
ZXF1ZXN0IGZvciBwZXJtaXNzaW9uIGlzIG1hZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJkZWZhdWx0IgorUEFTUyBw
ZXJtaXNzaW9uIGlzIGdyYW50ZWQuCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJn
cmFudGVkIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1
ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNjQwMjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC5o
dG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworCXRlc3RSdW5uZXIuZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpOworCXRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkK
K3sKKyAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQi
KTsKKyAgc2NyaXB0RWxlbWVudC5zcmMgPSAnLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3lu
Yy5qcyc7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Cit9CisK
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgYSByZXF1ZXN0IGZvciBwZXJtaXNz
aW9uIGlzIG1hZGUuIik7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworCXNob3VsZEJlRXF1
YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVmYXVsdCIpOworCU5vdGlm
aWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbihmdW5jdGlvbihwZXJtaXNzaW9uKSB7CisJCWlmIChw
ZXJtaXNzaW9uID09ICdncmFudGVkJykKKwkJCXRlc3RQYXNzZWQoInBlcm1pc3Npb24gaXMgZ3Jh
bnRlZC4iKTsKKwkJZWxzZQorCQkJdGVzdEZhaWxlZCgicGVybWlzc2lvbiBzaG91bGQgYmUgZ3Jh
bnRlZCwgYnV0IGlzICIgKyBwZXJtaXNzaW9uICsgIi4iKTsKKwkJc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJncmFudGVkIik7CisJCXRlc3RDb21wbGV0
ZWQoKTsKKwl9KTsKK30KKworc2V0VGltZW91dCh0ZXN0Q29tcGxldGVkLCAxMDApOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvc2hv
dy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvc2hv
dy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1MjE3
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9zaG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitTSE9XRUQgV0VCIE5PVElGSUNB
VElPTiB7dGl0bGU6ICJ0aXRsZSIsIGJvZHk6ICIiLCB0YWc6ICIiLCBpY29uVVJMOiB9CitUaGlz
IHRlc3QgbG9va3MgZm9yIHRoZSBkaXNwYXRjaCBvZiB0aGUgb25zaG93IGV2ZW50IGhhbmRsZXIu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJt
aXNzaW9uIGlzICJkZWZhdWx0IgorUEFTUyBvbmVycm9yIGV2ZW50IGhhbmRsZXIgd2FzIGNhbGxl
ZAorR3JhbnRpbmcgcGVybWlzc2lvbiB0byBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1MgTm90
aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImdyYW50ZWQiCitQQVNTIG9uc2hvdyBldmVudCBoYW5k
bGVyIHdhcyBjYWxsZWQKK0RlbnlpbmcgcGVybWlzc2lvbiB0byBodHRwOi8vMTI3LjAuMC4xOjgw
MDAKK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlbmllZCIKK1BBU1Mgb25lcnJv
ciBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvc2hvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL3Nob3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWZi
NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL3Nob3cuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKwl0ZXN0UnVubmVyLmR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFj
a3MoKTsKKwl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gdGVzdENv
bXBsZXRlZCgpCit7CisgIHZhciBzY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7CisgIHNjcmlwdEVsZW1lbnQuc3JjID0gJy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QtYXN5bmMuanMnOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdEVsZW1l
bnQpOworfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGxvb2tzIGZvciB0aGUgZGlzcGF0Y2gg
b2YgdGhlIG9uc2hvdyBldmVudCBoYW5kbGVyLiIpOworCit2YXIgb3JpZ2luID0gJ2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMCc7Cit2YXIgbiA9IG51bGw7CitmdW5jdGlvbiBwYXJ0MSgpIHsKKwlzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImRlZmF1bHQiKTsK
KworCW4gPSBuZXcgTm90aWZpY2F0aW9uKCJ0aXRsZSIpOworCW4ub25zaG93ID0gZnVuY3Rpb24o
KSB7CisJCXRlc3RGYWlsZWQoIm9uc2hvdyBldmVudCBoYW5kbGVyIHNob3VsZCBub3QgYmUgY2Fs
bGVkIik7CisJCXNldFRpbWVvdXQocGFydDIsIDApOworCX07CisJbi5vbmVycm9yID0gZnVuY3Rp
b24oKSB7CisJCXRlc3RQYXNzZWQoIm9uZXJyb3IgZXZlbnQgaGFuZGxlciB3YXMgY2FsbGVkIik7
CisJCXNldFRpbWVvdXQocGFydDIsIDApOworCX07Cit9CisKK2Z1bmN0aW9uIHBhcnQyKCkgewor
CWRlYnVnKCJHcmFudGluZyBwZXJtaXNzaW9uIHRvICIgKyBvcmlnaW4pOworCXRlc3RSdW5uZXIu
Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKG9yaWdpbik7CisJc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJncmFudGVkIik7CisKKwluID0gbmV3
IE5vdGlmaWNhdGlvbigidGl0bGUiKTsKKwluLm9uc2hvdyA9IGZ1bmN0aW9uKCkgeworCQl0ZXN0
UGFzc2VkKCJvbnNob3cgZXZlbnQgaGFuZGxlciB3YXMgY2FsbGVkIik7CisJCXNldFRpbWVvdXQo
cGFydDMsIDApOworCX07CisJbi5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisJCXRlc3RGYWlsZWQo
Im9uZXJyb3IgZXZlbnQgaGFuZGxlciBzaG91bGQgbm90IGJlIGNhbGxlZCIpOworCQlzZXRUaW1l
b3V0KHBhcnQzLCAwKTsKKwl9OworfQorCitmdW5jdGlvbiBwYXJ0MygpIHsKKwlkZWJ1ZygiRGVu
eWluZyBwZXJtaXNzaW9uIHRvICIgKyBvcmlnaW4pOworCXRlc3RSdW5uZXIuZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24ob3JpZ2luKTsKKwlzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlm
aWNhdGlvbi5wZXJtaXNzaW9uIiwgImRlbmllZCIpOworCisJbiA9IG5ldyBOb3RpZmljYXRpb24o
InRpdGxlIik7CisJbi5vbnNob3cgPSBmdW5jdGlvbigpIHsKKwkJdGVzdEZhaWxlZCgib25zaG93
IGV2ZW50IGhhbmRsZXIgc2hvdWxkIG5vdCBiZSBjYWxsZWQiKTsKKwkJdGVzdENvbXBsZXRlZCgp
OworCX07CisJbi5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisJCXRlc3RQYXNzZWQoIm9uZXJyb3Ig
ZXZlbnQgaGFuZGxlciB3YXMgY2FsbGVkIik7CisJCXRlc3RDb21wbGV0ZWQoKTsKKwl9OworfQor
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisJcGFydDEoKTsKKworc2V0VGltZW91dCh0ZXN0Q29t
cGxldGVkLCAxMDApOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtYXN5bmMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtYXN5bmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzkzM2Q3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qcwpAQCAtMCwwICsxLDcgQEAK
K2lmICghZXJyb3JNZXNzYWdlKQorICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CitzaG91
bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOworZGVidWcoJzxiciAvPjxzcGFuIGNsYXNz
PSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCmluZGV4IDg2ZjZkZGIuLmY0ZjUwMmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzCkBAIC02
OCw3ICs2OCw3IEBAIHZhciBkZXNjcmlwdGlvbiwgZGVidWcsIHN1Y2Nlc3NmdWxseVBhcnNlZCwg
ZXJyb3JNZXNzYWdlOwogICAgICAgICBzdHlsZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjc3M7CiAg
ICAgICAgIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5k
Q2hpbGQoc3R5bGVFbGVtZW50KTsKICAgICB9Ci0gICAgCisKICAgICBpZiAoIWlzV29ya2VyKCkp
CiAgICAgICAgIGluc2VydFN0eWxlU2hlZXQoKTsKIApAQCAtMjU4LDcgKzI1OCw5IEBAIGZ1bmN0
aW9uIHNob3VsZEJlWmVybyhfYSkgeyBzaG91bGRCZShfYSwgIjAiKTsgfQogCiBmdW5jdGlvbiBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoYSwgYikKIHsKLSAgdmFyIHVuZXZhbGVkU3RyaW5nID0gJyIn
ICsgYi5yZXBsYWNlKC9cXC9nLCAiXFxcXCIpLnJlcGxhY2UoLyIvZywgIlwiIikucmVwbGFjZSgv
XG4vZywgIlxcbiIpLnJlcGxhY2UoL1xyL2csICJcXHIiKSArICciJzsKKyAgaWYgKHR5cGVvZiBh
ICE9PSAic3RyaW5nIiB8fCB0eXBlb2YgYiAhPT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46
IHNob3VsZEJlRXF1YWxUb1N0cmluZygpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cyIpOworICB2
YXIgdW5ldmFsZWRTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShiKTsKICAgc2hvdWxkQmUoYSwgdW5l
dmFsZWRTdHJpbmcpOwogfQogCkBAIC0zOTQsNiArMzk2LDE1IEBAIGZ1bmN0aW9uIHNob3VsZEJl
R3JlYXRlclRoYW5PckVxdWFsKF9hLCBfYikgewogICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBp
cyA+PSAiICsgX2IpOwogfQogCitmdW5jdGlvbiBzaG91bGROb3RUaHJvdyhfYSkgeworICAgIHRy
eSB7CisgICAgICAgIGV2YWwoX2EpOworICAgICAgICB0ZXN0UGFzc2VkKF9hICsgIiBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiAr
IGUgKyAiLiIpOworICAgIH0KK30KKwogZnVuY3Rpb24gc2hvdWxkVGhyb3coX2EsIF9lKQogewog
ICB2YXIgZXhjZXB0aW9uOwpAQCAtNDc0LDkgKzQ4NSw3IEBAIGZ1bmN0aW9uIHN0YXJ0V29ya2Vy
KHRlc3RTY3JpcHRVUkwsIHNoYXJlZCkKIHsKICAgICBzZWxmLmpzVGVzdElzQXN5bmMgPSB0cnVl
OwogICAgIGRlYnVnKCdTdGFydGluZyB3b3JrZXI6ICcgKyB0ZXN0U2NyaXB0VVJMKTsKLSAgICB2
YXIgd29ya2VyID0gc2hhcmVkID8gbmV3IFNoYXJlZFdvcmtlcih0ZXN0U2NyaXB0VVJMKSA6IG5l
dyBXb3JrZXIodGVzdFNjcmlwdFVSTCk7Ci0gICAgaWYgKHNoYXJlZCkKLSAgICAgICAgd29ya2Vy
LnBvcnQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgd29ya2VyLm9ubWVzc2FnZShldmVu
dCk7IH07CisgICAgdmFyIHdvcmtlciA9IHNoYXJlZCA/IG5ldyBTaGFyZWRXb3JrZXIodGVzdFNj
cmlwdFVSTCwgIlNoYXJlZCBXb3JrZXIiKSA6IG5ldyBXb3JrZXIodGVzdFNjcmlwdFVSTCk7CiAg
ICAgd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFy
IHdvcmtlclByZWZpeCA9ICJbV29ya2VyXSAiOwpAQCAtNTA0LDIzICs1MTMsNTIgQEAgZnVuY3Rp
b24gc3RhcnRXb3JrZXIodGVzdFNjcmlwdFVSTCwgc2hhcmVkKQogICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICB9CiAKKyAgICBpZiAoc2hhcmVkKSB7CisgICAgICAgIHdvcmtlci5wb3J0Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7IHdvcmtlci5vbm1lc3NhZ2UoZXZlbnQpOyB9Owor
ICAgICAgICB3b3JrZXIucG9ydC5zdGFydCgpOworICAgIH0KICAgICByZXR1cm4gd29ya2VyOwog
fQogCiBpZiAoaXNXb3JrZXIoKSkgeworICAgIHZhciB3b3JrZXJQb3J0ID0gc2VsZjsKKyAgICBp
ZiAoc2VsZi5uYW1lID09ICJTaGFyZWQgV29ya2VyIikgeworICAgICAgICBzZWxmLm9uY29ubmVj
dCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHdvcmtlclBvcnQgPSBlLnBvcnRzWzBdOwor
ICAgICAgICAgICAgd29ya2VyUG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB2YXIgY29sb24gPSBl
dmVudC5kYXRhLmluZGV4T2YoIjoiKTsKKyAgICAgICAgICAgICAgICBpZiAoY29sb24gPT0gLTEp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5yZWNvZ25pemVkIG1lc3NhZ2Ug
dG8gc2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjb2RlID0gZXZl
bnQuZGF0YS5zdWJzdHJpbmcoMCwgY29sb24pOworICAgICAgICAgICAgICAgIHZhciBwYXlsb2Fk
ID0gZXZlbnQuZGF0YS5zdWJzdHJpbmcoY29sb24gKyAxKTsKKyAgICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoY29kZSA9PSAiSU1QT1JUIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGltcG9ydFNjcmlwdHMocGF5bG9hZCk7CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVucmVjb2duaXplZCBt
ZXNzYWdlIHRvIHNoYXJlZCB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAg
ICB9IGNhdGNoIChleCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJDYXVnaHQg
ZXhjZXB0aW9uIGluIHNoYXJlZCB3b3JrZXIgb25tZXNzYWdlOiAiICsgZXgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfQogICAgIGRlc2NyaXB0
aW9uID0gZnVuY3Rpb24obXNnLCBxdWlldCkgewotICAgICAgICBwb3N0TWVzc2FnZSgnREVTQzon
ICsgbXNnKTsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0TWVzc2FnZSgnREVTQzonICsgbXNnKTsK
ICAgICB9CiAgICAgdGVzdEZhaWxlZCA9IGZ1bmN0aW9uKG1zZykgewotICAgICAgICBwb3N0TWVz
c2FnZSgnRkFJTDonICsgbXNnKTsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0TWVzc2FnZSgnRkFJ
TDonICsgbXNnKTsKICAgICB9CiAgICAgdGVzdFBhc3NlZCA9IGZ1bmN0aW9uKG1zZykgewotICAg
ICAgICBwb3N0TWVzc2FnZSgnUEFTUzonICsgbXNnKTsKKyAgICAgICAgd29ya2VyUG9ydC5wb3N0
TWVzc2FnZSgnUEFTUzonICsgbXNnKTsKICAgICB9CiAgICAgZmluaXNoSlNUZXN0ID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCdET05FOicpOworICAgICAgICB3b3JrZXJQb3J0
LnBvc3RNZXNzYWdlKCdET05FOicpOwogICAgIH0KICAgICBkZWJ1ZyA9IGZ1bmN0aW9uKG1zZykg
ewotICAgICAgICBwb3N0TWVzc2FnZShtc2cpOworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNz
YWdlKG1zZyk7CiAgICAgfQogfQotLSAKMS43LjEwLjIgKEFwcGxlIEdpdC0zMykKCg==
</data>
<flag name="review"
          id="171269"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160668</attachid>
            <date>2012-08-27 01:38:50 -0700</date>
            <delta_ts>2012-08-27 02:10:52 -0700</delta_ts>
            <desc>All 9 patches as a whole, for EWS</desc>
            <filename>full.patch</filename>
            <type>text/plain</type>
            <size>184684</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NmMwNGIyLi5iNGJhYzc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTItMDgt
MjcgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5u
ZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEw
MzU3NjE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBiYXNpYyB0ZXN0cyBmb3Igd2ViIG5vdGlmaWNhdGlvbnMgdGhhdCB1c2Ugd2ViIG5vdGlm
aWNhdGlvbnMgQVBJLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNr
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L2NsaWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9y
ZXF1ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL3JlcXVlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL3Nob3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25v
dGlmaWNhdGlvbnMvc2hvdy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QtYXN5bmMuanM6IEFkZGVkLiBUYWtlbiBmcm9tIGZhc3QvanMvcmVz
b3VyY2VzLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzOiBV
cGRhdGVkIGZyb20gZmFzdC9qcy9yZXNvdXJjZXMuCisKKzIwMTItMDgtMjQgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVy
IHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1
NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZWZhY3RvciB0aGUgdGVzdHMgdG8gdXNlIHRoZSByZW5hbWVkIGxlZ2FjeSBBUEkgY2FsbHMuCisK
KyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNz
aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xp
Y2stZXZlbnQtZm9jdXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZp
Y2F0aW9ucy1jbGljay1ldmVudC5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb25zLWRpc3BsYXktY2xvc2UtZXZlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2UtY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1s
OgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LXN0b3At
cHJvcGFnYXRpb24uaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1tdWx0aS1ldmVudHMuaHRtbC1kaXNhYmxlZDoKKyAgICAgICAgKiBmYXN0
L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWw6CisgICAgICAgICogZmFz
dC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcmVwbGFjZS5odG1sOgorICAgICAgICAqIGZh
c3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJ0bC5odG1sOgorICAgICAgICAqIGZhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sOgorICAgICAg
ICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGhvdXQtcGVybWlzc2lvbi5o
dG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0aW9u
cy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vcXQt
NS4wLXdrMi9Ta2lwcGVkOgorCiAyMDEyLTA1LTI1ICBBbm5hIENhdmVuZGVyIDxhbm5hY2NAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZpbmcgbWVkaWEvdHJhY2svdHJh
Y2stbW9kZS5odG1sIC0gcmVzb2x2ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25v
dGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jaGVjay1wZXJtaXNzaW9uLmh0
bWwKaW5kZXggNTkxYmM5MS4uYzg5Mzg1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2hlY2stcGVybWlzc2lvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNoZWNrLXBlcm1pc3Np
b24uaHRtbApAQCAtMjUsNyArMjUsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigi
ZmlsZTovLyIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBOID0g
d2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMuY2hlY2tQZXJtaXNzaW9uKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVu
dC1mb2N1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlv
bnMtY2xpY2stZXZlbnQtZm9jdXMuaHRtbAppbmRleCBjZWVlMTk1Li5iYjM5YTBjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1l
dmVudC1mb2N1cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3Rp
ZmljYXRpb25zLWNsaWNrLWV2ZW50LWZvY3VzLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKQEAgLTMyLDcgKzMyLDcgQEAKICAgICAgICAgICAgIE4uc2hvdygpOwogCiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKCJOZXcgRS1tYWlsIik7Cisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNs
aWNrKCJOZXcgRS1tYWlsIik7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1jbGljay1ldmVudC5odG1sCmlu
ZGV4IDBlZTdmZDkuLjU4MzZhNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtY2xpY2stZXZlbnQuaHRtbApAQCAtMTAs
NyArMTAsNyBAQAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxl
Oi8vIik7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB9CkBAIC0y
Myw3ICsyMyw3IEBACiAgICAgICAgICAgICBOLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsgbG9nKCJQ
QVNTOiBjbGljayBldmVudCBmaXJlZC4iKTsgTi5jYW5jZWwoKTsgIH0KICAgICAgICAgICAgIE4u
c2hvdygpOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljaygiTmV3IEUt
bWFpbCIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2ltdWxhdGVMZWdhY3lXZWJOb3Rp
ZmljYXRpb25DbGljaygiTmV3IEUtbWFpbCIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kaXNwbGF5LWNsb3NlLWV2
ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
ZGlzcGxheS1jbG9zZS1ldmVudHMuaHRtbAppbmRleCA3OTRjYTQ0Li4zMTQ3MDQ4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kaXNwbGF5
LWNsb3NlLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9u
b3RpZmljYXRpb25zLWRpc3BsYXktY2xvc2UtZXZlbnRzLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVz
a3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1lbnQtY2xvc2Ut
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25z
LWRvY3VtZW50LWNsb3NlLWNyYXNoLmh0bWwKaW5kZXggN2IzYmEyZC4uNTY5YWNhYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZG9jdW1l
bnQtY2xvc2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9ucy1kb2N1bWVudC1jbG9zZS1jcmFzaC5odG1sCkBAIC02LDcgKzYsNyBAQAog
ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsN
CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOw0KLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
ImZpbGU6Ly8iKTsNCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsNCiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIA0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRvdWJsZS1z
aG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1k
b3VibGUtc2hvdy5odG1sCmluZGV4IDhjNmY3YmMuLjViMGNhM2Y1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1kb3VibGUtc2hvdy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWRvdWJs
ZS1zaG93Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMo
KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24o
ImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25z
L25vdGlmaWNhdGlvbnMtZXZlbnQtc3RvcC1wcm9wYWdhdGlvbi5odG1sLWRpc2FibGVkIGIvTGF5
b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZXZlbnQtc3RvcC1wcm9w
YWdhdGlvbi5odG1sLWRpc2FibGVkCmluZGV4IDRlZGI4ZjkuLjJkOGQwNDMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LXN0b3At
cHJvcGFnYXRpb24uaHRtbC1kaXNhYmxlZAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNh
dGlvbnMvbm90aWZpY2F0aW9ucy1ldmVudC1zdG9wLXByb3BhZ2F0aW9uLmh0bWwtZGlzYWJsZWQK
QEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7
CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsK
KyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlv
bnMvbm90aWZpY2F0aW9ucy1tdWx0aS1ldmVudHMuaHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3Rz
L2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW11bHRpLWV2ZW50cy5odG1sLWRpc2Fi
bGVkCmluZGV4IDMyNzBmMjMuLjcyNDQ4MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW11bHRpLWV2ZW50cy5odG1sLWRpc2FibGVkCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLW11bHRpLWV2
ZW50cy5odG1sLWRpc2FibGVkCkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICAgIGZ1bmN0aW9uIHJ1
blRlc3RzKCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJt
aXNzaW9uKCJmaWxlOi8vIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtbm8taWNvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtbm8taWNvbi5odG1sCmluZGV4
IGIwNjI5NDMuLjQ4OWI3ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLW5vLWljb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25v
dGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1uby1pY29uLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50RGVz
a3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIpOwogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9ucy1y
ZXBsYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
cy1yZXBsYWNlLmh0bWwKaW5kZXggMjRiOWNlZC4uZTNjZGFmMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcmVwbGFjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXJlcGxhY2UuaHRt
bApAQCAtMTAsNyArMTAsNyBAQAogICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiZmlsZTovLyIp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKCJmaWxlOi8vIik7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb25zLXJ0bC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtcnRsLmh0bWwKaW5kZXggNmFiZGY2OC4uYzRmZGUzZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcnRs
Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6
Ly8iKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbigiZmlsZTovLyIpOwogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L25vdGlm
aWNhdGlvbnMvbm90aWZpY2F0aW9ucy13aXRoLXBlcm1pc3Npb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sCmlu
ZGV4IDU0MTYxYTQuLmUwZWEzZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLXdpdGgtcGVybWlzc2lvbi5odG1s
CkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJmaWxlOi8vIik7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24oImZpbGU6Ly8iKTsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRp
b25zLXdpdGhvdXQtcGVybWlzc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRp
b25zL25vdGlmaWNhdGlvbnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0bWwKaW5kZXggNjU0YTI5NC4u
NDBhZTY1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlm
aWNhdGlvbnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtd2l0aG91dC1wZXJtaXNzaW9uLmh0bWwKQEAgLTEw
LDcgKzEwLDcgQEAKICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICAvLyBOTyBQ
RVJNSVNTSU9OIHRlc3RSdW5uZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigi
ZmlsZTovLyIpOworICAgICAgICAgICAgICAgIC8vIE5PIFBFUk1JU1NJT04gdGVzdFJ1bm5lci5n
cmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oImZpbGU6Ly8iKTsKICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLWNh
bmNlbC1yZXF1ZXN0LXBlcm1pc3Npb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvbm90aWZpY2F0
aW9ucy9yZXNvdXJjZXMvbm90aWZpY2F0aW9ucy1jYW5jZWwtcmVxdWVzdC1wZXJtaXNzaW9uLmh0
bWwKaW5kZXggN2I0Y2I0Yy4uNDM4OTdjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9u
b3RpZmljYXRpb25zL3Jlc291cmNlcy9ub3RpZmljYXRpb25zLWNhbmNlbC1yZXF1ZXN0LXBlcm1p
c3Npb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L25vdGlmaWNhdGlvbnMvcmVzb3VyY2Vz
L25vdGlmaWNhdGlvbnMtY2FuY2VsLXJlcXVlc3QtcGVybWlzc2lvbi5odG1sCkBAIC0xMyw3ICsx
Myw3IEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaWdub3JlRGVza3RvcE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuaWdub3Jl
TGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIHdpbmRvdy53ZWJraXROb3RpZmljYXRpb25zLnJlcXVlc3RQZXJtaXNz
aW9uKApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2Ns
aWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9j
bGljay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjhm
ZDY4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorU0hPV0VEIFdFQiBOT1RJ
RklDQVRJT04ge3RpdGxlOiAidGl0bGUiLCBib2R5OiAiIiwgdGFnOiAiIiwgaWNvblVSTDogfQor
Q0xJQ0tFRCBXRUIgTk9USUZJQ0FUSU9OIHt0aXRsZTogInRpdGxlIiwgYm9keTogIiIsIHRhZzog
IiIsIGljb25VUkw6IH0KK1RoaXMgdGVzdCBsb29rcyBmb3IgdGhlIGRpc3BhdGNoIG9mIHRoZSBv
bmNsaWNrIGV2ZW50IGhhbmRsZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitH
cmFudGluZyBwZXJtaXNzaW9uIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorUEFTUyBOb3RpZmlj
YXRpb24ucGVybWlzc2lvbiBpcyAiZ3JhbnRlZCIKK1BBU1Mgb25zaG93IGV2ZW50IGhhbmRsZXIg
d2FzIGNhbGxlZAorUEFTUyBvbmNsaWNrIGV2ZW50IGhhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9jbGljay5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2NsaWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZDNlMDI3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9jbGljay5odG1sCkBAIC0wLDAgKzEsNDMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIu
ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpOworCXRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKK3sKKyAgdmFyIHNjcmlwdEVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKKyAgc2NyaXB0RWxlbWVudC5z
cmMgPSAnLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qcyc7CisgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoc2NyaXB0RWxlbWVudCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgbG9va3MgZm9yIHRoZSBkaXNwYXRjaCBvZiB0aGUgb25jbGljayBldmVudCBoYW5kbGVyLiIp
OworCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKwl2YXIgb3JpZ2luID0gJ2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMCc7CisKKwlkZWJ1ZygiR3JhbnRpbmcgcGVybWlzc2lvbiB0byAiICsgb3JpZ2lu
KTsKKwl0ZXN0UnVubmVyLmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmlnaW4pOwor
CXNob3VsZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZ3JhbnRl
ZCIpOworCisJdmFyIG4gPSBuZXcgTm90aWZpY2F0aW9uKCJ0aXRsZSIpOworCW4ub25zaG93ID0g
ZnVuY3Rpb24oKSB7CisJCXRlc3RQYXNzZWQoIm9uc2hvdyBldmVudCBoYW5kbGVyIHdhcyBjYWxs
ZWQiKTsKKwkJdGVzdFJ1bm5lci5zaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHRoaXMpOwor
CX07CisJbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CisJCXRlc3RQYXNzZWQoIm9uY2xpY2sgZXZl
bnQgaGFuZGxlciB3YXMgY2FsbGVkIik7CisJCXRlc3RDb21wbGV0ZWQoKTsKKwl9CisJbi5vbmVy
cm9yID0gZnVuY3Rpb24oKSB7CisJCXRlc3RGYWlsZWQoIm9uZXJyb3IgZXZlbnQgaGFuZGxlciBz
aG91bGQgbm90IGJlIGNhbGxlZCIpOworCQl0ZXN0Q29tcGxldGVkKCk7CisJfTsKK30KKworc2V0
VGltZW91dCh0ZXN0Q29tcGxldGVkLCAxMDApOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBjYzA1ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitSRVFVRVNURUQgV0VCIE5PVElGSUNBVElPTiBQRVJN
SVNTSU9OIEZPUiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBh
IHJlcXVlc3QgZm9yIHBlcm1pc3Npb24gaXMgbWFkZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlZmF1bHQiCitQQVNT
IHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMg
ImdyYW50ZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Jl
cXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM2NDAyMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0
Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisJdGVzdFJ1bm5lci5kdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKCk7CisJ
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV0ZWQo
KQoreworICB2YXIgc2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpOworICBzY3JpcHRFbGVtZW50LnNyYyA9ICcuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWFz
eW5jLmpzJzsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHRFbGVtZW50KTsKK30K
KworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhIHJlcXVlc3QgZm9yIHBlcm1p
c3Npb24gaXMgbWFkZS4iKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJkZWZhdWx0Iik7CisJTm90
aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKGZ1bmN0aW9uKHBlcm1pc3Npb24pIHsKKwkJaWYg
KHBlcm1pc3Npb24gPT0gJ2dyYW50ZWQnKQorCQkJdGVzdFBhc3NlZCgicGVybWlzc2lvbiBpcyBn
cmFudGVkLiIpOworCQllbHNlCisJCQl0ZXN0RmFpbGVkKCJwZXJtaXNzaW9uIHNob3VsZCBiZSBn
cmFudGVkLCBidXQgaXMgIiArIHBlcm1pc3Npb24gKyAiLiIpOworCQlzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQiKTsKKwkJdGVzdENvbXBs
ZXRlZCgpOworCX0pOworfQorCitzZXRUaW1lb3V0KHRlc3RDb21wbGV0ZWQsIDEwMCk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9z
aG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9z
aG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDUy
MTc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL3Nob3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1NIT1dFRCBXRUIgTk9USUZJ
Q0FUSU9OIHt0aXRsZTogInRpdGxlIiwgYm9keTogIiIsIHRhZzogIiIsIGljb25VUkw6IH0KK1Ro
aXMgdGVzdCBsb29rcyBmb3IgdGhlIGRpc3BhdGNoIG9mIHRoZSBvbnNob3cgZXZlbnQgaGFuZGxl
ci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTm90aWZpY2F0aW9uLnBl
cm1pc3Npb24gaXMgImRlZmF1bHQiCitQQVNTIG9uZXJyb3IgZXZlbnQgaGFuZGxlciB3YXMgY2Fs
bGVkCitHcmFudGluZyBwZXJtaXNzaW9uIHRvIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorUEFTUyBO
b3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZ3JhbnRlZCIKK1BBU1Mgb25zaG93IGV2ZW50IGhh
bmRsZXIgd2FzIGNhbGxlZAorRGVueWluZyBwZXJtaXNzaW9uIHRvIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZGVuaWVkIgorUEFTUyBvbmVy
cm9yIGV2ZW50IGhhbmRsZXIgd2FzIGNhbGxlZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9zaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMvc2hvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5
ZmI3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNh
dGlvbnMvc2hvdy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIuZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxi
YWNrcygpOworCXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKK3sKKyAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzY3JpcHQiKTsKKyAgc2NyaXB0RWxlbWVudC5zcmMgPSAnLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC1hc3luYy5qcyc7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0RWxl
bWVudCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgbG9va3MgZm9yIHRoZSBkaXNwYXRj
aCBvZiB0aGUgb25zaG93IGV2ZW50IGhhbmRsZXIuIik7CisKK3ZhciBvcmlnaW4gPSAnaHR0cDov
LzEyNy4wLjAuMTo4MDAwJzsKK3ZhciBuID0gbnVsbDsKK2Z1bmN0aW9uIHBhcnQxKCkgeworCXNo
b3VsZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVmYXVsdCIp
OworCisJbiA9IG5ldyBOb3RpZmljYXRpb24oInRpdGxlIik7CisJbi5vbnNob3cgPSBmdW5jdGlv
bigpIHsKKwkJdGVzdEZhaWxlZCgib25zaG93IGV2ZW50IGhhbmRsZXIgc2hvdWxkIG5vdCBiZSBj
YWxsZWQiKTsKKwkJc2V0VGltZW91dChwYXJ0MiwgMCk7CisJfTsKKwluLm9uZXJyb3IgPSBmdW5j
dGlvbigpIHsKKwkJdGVzdFBhc3NlZCgib25lcnJvciBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQi
KTsKKwkJc2V0VGltZW91dChwYXJ0MiwgMCk7CisJfTsKK30KKworZnVuY3Rpb24gcGFydDIoKSB7
CisJZGVidWcoIkdyYW50aW5nIHBlcm1pc3Npb24gdG8gIiArIG9yaWdpbik7CisJdGVzdFJ1bm5l
ci5ncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24ob3JpZ2luKTsKKwlzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQiKTsKKworCW4gPSBu
ZXcgTm90aWZpY2F0aW9uKCJ0aXRsZSIpOworCW4ub25zaG93ID0gZnVuY3Rpb24oKSB7CisJCXRl
c3RQYXNzZWQoIm9uc2hvdyBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQiKTsKKwkJc2V0VGltZW91
dChwYXJ0MywgMCk7CisJfTsKKwluLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKwkJdGVzdEZhaWxl
ZCgib25lcnJvciBldmVudCBoYW5kbGVyIHNob3VsZCBub3QgYmUgY2FsbGVkIik7CisJCXNldFRp
bWVvdXQocGFydDMsIDApOworCX07Cit9CisKK2Z1bmN0aW9uIHBhcnQzKCkgeworCWRlYnVnKCJE
ZW55aW5nIHBlcm1pc3Npb24gdG8gIiArIG9yaWdpbik7CisJdGVzdFJ1bm5lci5kZW55V2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbihvcmlnaW4pOworCXNob3VsZEJlRXF1YWxUb1N0cmluZygiTm90
aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVuaWVkIik7CisKKwluID0gbmV3IE5vdGlmaWNhdGlv
bigidGl0bGUiKTsKKwluLm9uc2hvdyA9IGZ1bmN0aW9uKCkgeworCQl0ZXN0RmFpbGVkKCJvbnNo
b3cgZXZlbnQgaGFuZGxlciBzaG91bGQgbm90IGJlIGNhbGxlZCIpOworCQl0ZXN0Q29tcGxldGVk
KCk7CisJfTsKKwluLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKwkJdGVzdFBhc3NlZCgib25lcnJv
ciBldmVudCBoYW5kbGVyIHdhcyBjYWxsZWQiKTsKKwkJdGVzdENvbXBsZXRlZCgpOworCX07Cit9
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKwlwYXJ0MSgpOworCitzZXRUaW1lb3V0KHRlc3RD
b21wbGV0ZWQsIDEwMCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1hc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jOTMzZDcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWFzeW5jLmpzCkBAIC0wLDAgKzEsNyBA
QAoraWYgKCFlcnJvck1lc3NhZ2UpCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKK3No
b3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7CitkZWJ1ZygnPGJyIC8+PHNwYW4gY2xh
c3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7CisKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKaW5kZXggODZmNmRkYi4uZjRmNTAyZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMKQEAg
LTY4LDcgKzY4LDcgQEAgdmFyIGRlc2NyaXB0aW9uLCBkZWJ1Zywgc3VjY2Vzc2Z1bGx5UGFyc2Vk
LCBlcnJvck1lc3NhZ2U7CiAgICAgICAgIHN0eWxlRWxlbWVudC50ZXh0Q29udGVudCA9IGNzczsK
ICAgICAgICAgKGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBl
bmRDaGlsZChzdHlsZUVsZW1lbnQpOwogICAgIH0KLSAgICAKKwogICAgIGlmICghaXNXb3JrZXIo
KSkKICAgICAgICAgaW5zZXJ0U3R5bGVTaGVldCgpOwogCkBAIC0yNTgsNyArMjU4LDkgQEAgZnVu
Y3Rpb24gc2hvdWxkQmVaZXJvKF9hKSB7IHNob3VsZEJlKF9hLCAiMCIpOyB9CiAKIGZ1bmN0aW9u
IHNob3VsZEJlRXF1YWxUb1N0cmluZyhhLCBiKQogewotICB2YXIgdW5ldmFsZWRTdHJpbmcgPSAn
IicgKyBiLnJlcGxhY2UoL1xcL2csICJcXFxcIikucmVwbGFjZSgvIi9nLCAiXCIiKS5yZXBsYWNl
KC9cbi9nLCAiXFxuIikucmVwbGFjZSgvXHIvZywgIlxcciIpICsgJyInOworICBpZiAodHlwZW9m
IGEgIT09ICJzdHJpbmciIHx8IHR5cGVvZiBiICE9PSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FS
Tjogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzIik7Cisg
IHZhciB1bmV2YWxlZFN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGIpOwogICBzaG91bGRCZShhLCB1
bmV2YWxlZFN0cmluZyk7CiB9CiAKQEAgLTM5NCw2ICszOTYsMTUgQEAgZnVuY3Rpb24gc2hvdWxk
QmVHcmVhdGVyVGhhbk9yRXF1YWwoX2EsIF9iKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAi
IGlzID49ICIgKyBfYik7CiB9CiAKK2Z1bmN0aW9uIHNob3VsZE5vdFRocm93KF9hKSB7CisgICAg
dHJ5IHsKKyAgICAgICAgZXZhbChfYSk7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAi
ICsgZSArICIuIik7CisgICAgfQorfQorCiBmdW5jdGlvbiBzaG91bGRUaHJvdyhfYSwgX2UpCiB7
CiAgIHZhciBleGNlcHRpb247CkBAIC00NzQsOSArNDg1LDcgQEAgZnVuY3Rpb24gc3RhcnRXb3Jr
ZXIodGVzdFNjcmlwdFVSTCwgc2hhcmVkKQogewogICAgIHNlbGYuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgZGVidWcoJ1N0YXJ0aW5nIHdvcmtlcjogJyArIHRlc3RTY3JpcHRVUkwpOwotICAg
IHZhciB3b3JrZXIgPSBzaGFyZWQgPyBuZXcgU2hhcmVkV29ya2VyKHRlc3RTY3JpcHRVUkwpIDog
bmV3IFdvcmtlcih0ZXN0U2NyaXB0VVJMKTsKLSAgICBpZiAoc2hhcmVkKQotICAgICAgICB3b3Jr
ZXIucG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyB3b3JrZXIub25tZXNzYWdlKGV2
ZW50KTsgfTsKKyAgICB2YXIgd29ya2VyID0gc2hhcmVkID8gbmV3IFNoYXJlZFdvcmtlcih0ZXN0
U2NyaXB0VVJMLCAiU2hhcmVkIFdvcmtlciIpIDogbmV3IFdvcmtlcih0ZXN0U2NyaXB0VVJMKTsK
ICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgd29ya2VyUHJlZml4ID0gIltXb3JrZXJdICI7CkBAIC01MDQsMjMgKzUxMyw1MiBAQCBmdW5j
dGlvbiBzdGFydFdvcmtlcih0ZXN0U2NyaXB0VVJMLCBzaGFyZWQpCiAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOwogICAgIH0KIAorICAgIGlmIChzaGFyZWQpIHsKKyAgICAgICAgd29ya2VyLnBvcnQu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgd29ya2VyLm9ubWVzc2FnZShldmVudCk7IH07
CisgICAgICAgIHdvcmtlci5wb3J0LnN0YXJ0KCk7CisgICAgfQogICAgIHJldHVybiB3b3JrZXI7
CiB9CiAKIGlmIChpc1dvcmtlcigpKSB7CisgICAgdmFyIHdvcmtlclBvcnQgPSBzZWxmOworICAg
IGlmIChzZWxmLm5hbWUgPT0gIlNoYXJlZCBXb3JrZXIiKSB7CisgICAgICAgIHNlbGYub25jb25u
ZWN0ID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgd29ya2VyUG9ydCA9IGUucG9ydHNbMF07
CisgICAgICAgICAgICB3b3JrZXJQb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZhciBjb2xvbiA9
IGV2ZW50LmRhdGEuaW5kZXhPZigiOiIpOworICAgICAgICAgICAgICAgIGlmIChjb2xvbiA9PSAt
MSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbnJlY29nbml6ZWQgbWVzc2Fn
ZSB0byBzaGFyZWQgd29ya2VyOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGNvZGUgPSBl
dmVudC5kYXRhLnN1YnN0cmluZygwLCBjb2xvbik7CisgICAgICAgICAgICAgICAgdmFyIHBheWxv
YWQgPSBldmVudC5kYXRhLnN1YnN0cmluZyhjb2xvbiArIDEpOworICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09ICJJTVBPUlQiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgaW1wb3J0U2NyaXB0cyhwYXlsb2FkKTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5yZWNvZ25pemVk
IG1lc3NhZ2UgdG8gc2hhcmVkIHdvcmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAg
ICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNhdWdo
dCBleGNlcHRpb24gaW4gc2hhcmVkIHdvcmtlciBvbm1lc3NhZ2U6ICIgKyBleCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9CiAgICAgZGVzY3Jp
cHRpb24gPSBmdW5jdGlvbihtc2csIHF1aWV0KSB7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCdERVND
OicgKyBtc2cpOworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdERVNDOicgKyBtc2cp
OwogICAgIH0KICAgICB0ZXN0RmFpbGVkID0gZnVuY3Rpb24obXNnKSB7Ci0gICAgICAgIHBvc3RN
ZXNzYWdlKCdGQUlMOicgKyBtc2cpOworICAgICAgICB3b3JrZXJQb3J0LnBvc3RNZXNzYWdlKCdG
QUlMOicgKyBtc2cpOwogICAgIH0KICAgICB0ZXN0UGFzc2VkID0gZnVuY3Rpb24obXNnKSB7Ci0g
ICAgICAgIHBvc3RNZXNzYWdlKCdQQVNTOicgKyBtc2cpOworICAgICAgICB3b3JrZXJQb3J0LnBv
c3RNZXNzYWdlKCdQQVNTOicgKyBtc2cpOwogICAgIH0KICAgICBmaW5pc2hKU1Rlc3QgPSBmdW5j
dGlvbigpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoJ0RPTkU6Jyk7CisgICAgICAgIHdvcmtlclBv
cnQucG9zdE1lc3NhZ2UoJ0RPTkU6Jyk7CiAgICAgfQogICAgIGRlYnVnID0gZnVuY3Rpb24obXNn
KSB7Ci0gICAgICAgIHBvc3RNZXNzYWdlKG1zZyk7CisgICAgICAgIHdvcmtlclBvcnQucG9zdE1l
c3NhZ2UobXNnKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC01LjAtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2syL1NraXBw
ZWQKaW5kZXggY2VhYjY5YS4uY2Q1NWM5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQtNS4wLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13
azIvU2tpcHBlZApAQCAtMTQxLDcgKzE0MSw3IEBAIGZhc3QvdGV4dC9mb3JtYXQtY29udHJvbC5o
dG1sCiBmYXN0L3VybC9hbmNob3IuaHRtbAogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9iYWQtc3ViLXByb3RvY29sLW5vbi1hc2NpaS5odG1sCiAKLSMgbGF5b3V0VGVzdENvbnRy
b2xsZXIuaWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyBpcyB1bmlt
cGxlbWVudGVkCisjIGxheW91dFRlc3RDb250cm9sbGVyLmlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyBpcyB1bmltcGxlbWVudGVkCiBmYXN0L25vdGlmaWNhdGlv
bnMKIAogIyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTY3JvbGxiYXJQb2xpY3kgaXMgdW5pbXBs
ZW1lbnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQzZjdmNjYuLmMyYjRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSBmdW5jdGlvbnMgdG8gY29u
dmVydCBKU1ZhbHVlIHRvIE5vdGlmaWNhdGlvbiwgYW5kIHRvIGdldCB0aGUgTm90aWZpY2F0aW9u
Q29udHJvbGxlciBmcm9tIGEgcGFnZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUHJvbW90ZSBOb3RpZmlj
YXRpb25Db250cm9sbGVyLmggYW5kIEpTTm90aWZpY2F0aW9uLmggdG8gcHJpdmF0ZSBoZWFkZXJz
LgorCiAyMDEyLTA4LTIzICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gUmVuYW1lIExheWVyUmVuZGVyZXJDaHJvbWl1bSB0byBHTC1z
cGVjaWZpYyBuYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGRkNjc3ZmQuLmJlYTE0ZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yMzIzLDcgKzIzMjMsOSBAQCBfX1pON1dlYkNvcmUxMk5v
dGlmaWNhdGlvbjE3ZGlzcGF0Y2hTaG93RXZlbnRFdgogX19aTjdXZWJDb3JlMTJOb3RpZmljYXRp
b24xOGRpc3BhdGNoQ2xpY2tFdmVudEV2CiBfX1pON1dlYkNvcmUxMk5vdGlmaWNhdGlvbjE4ZGlz
cGF0Y2hDbG9zZUV2ZW50RXYKIF9fWk43V2ViQ29yZTEyTm90aWZpY2F0aW9uMThkaXNwYXRjaEVy
cm9yRXZlbnRFdgorX19aTjdXZWJDb3JlMTR0b05vdGlmaWNhdGlvbkVOM0pTQzdKU1ZhbHVlRQog
X19aTjdXZWJDb3JlMTlwcm92aWRlTm90aWZpY2F0aW9uRVBOU180UGFnZUVQTlNfMThOb3RpZmlj
YXRpb25DbGllbnRFCitfX1pON1dlYkNvcmUyMk5vdGlmaWNhdGlvbkNvbnRyb2xsZXIxMGNsaWVu
dEZyb21FUE5TXzRQYWdlRQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA5NWJjODcwLi4yYmIzYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NzEsNyArODcxLDcgQEAKIAkJMzEyODhFNzQwRTMw
MDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYxOUFF
IC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwogCQkzMTI4OEU3NTBFMzAwNUQ2
MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzEwRTMwMDVENjAwMzYxOUFFIC8qIFdl
YktpdENTU0tleWZyYW1lc1J1bGUuaCAqLzsgfTsKIAkJMzEyOENBNjgxNDczMzE1MjAwNzRDNzJB
IC8qIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyOENBNjcxNDczMzE1MjAwNzRDNzJBIC8qIE5vdGlmaWNh
dGlvbkNvbnRyb2xsZXIuY3BwICovOyB9OwotCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEgLyog
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzEyOENBNkExNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuaCAqLzsgfTsKKwkJMzEyOENBNkIxNDczMzE2MzAwNzRDNzJBIC8qIE5vdGlmaWNh
dGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxMjhDQTZBMTQ3MzMxNjMwMDc0QzcyQSAvKiBOb3RpZmljYXRpb25Db250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzEy
QzBDNDExNDZEQzZDQzAwMTZDOTExIC8qIE5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMzRjcwNEYwRkI0OUNBMjAwOEUxMkE2IC8q
IE5vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxMkQ2N0IxMTUzNTY5MUYwMDU2M0QwRCAvKiBEaWN0aW9uYXJ5LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkQ2N0IwMTUzNTY5
MUYwMDU2M0QwRCAvKiBEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJMzEzMTNGNjUxNDQzQjM1RjAw
NkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzEzRjYzMTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0
ZXJFZmZlY3RSZW5kZXJlci5jcHAgKi87IH07CkBAIC05NTMsNyArOTUzLDcgQEAKIAkJMzMxNEFD
RUMxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzMxNEFDRUExMDg5MjA4NjAwMEYwRTU2IC8q
IEpTRXhjZXB0aW9uQmFzZS5oICovOyB9OwogCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEgLyog
Tm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMzUwM0M5OTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9uQ2xpZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzM1
MDNDQTMxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNTAzQzlGMTAxNzlBRDcwMDNCNDdF
MSAvKiBKU05vdGlmaWNhdGlvbi5jcHAgKi87IH07Ci0JCTMzNTAzQ0E0MTAxNzlBRDcwMDNCNDdF
MSAvKiBKU05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzM1MDNDQTAxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmgg
Ki87IH07CisJCTMzNTAzQ0E0MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1MDNDQTAxMDE3
OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzM1MDNDQTUxMDE3OUFENzAwM0I0N0UxIC8qIEpT
Tm90aWZpY2F0aW9uQ2VudGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzNTAzQ0ExMTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNhdGlvbkNl
bnRlci5jcHAgKi87IH07CiAJCTMzNTAzQ0E2MTAxNzlBRDcwMDNCNDdFMSAvKiBKU05vdGlmaWNh
dGlvbkNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzM1MDNDQTIxMDE3OUFENzAwM0I0N0UxIC8qIEpTTm90aWZpY2F0aW9uQ2VudGVyLmggKi87
IH07CiAJCTMzNTAzQ0MwMTAxNzlDMUEwMDNCNDdFMSAvKiBKU0Rlc2t0b3BOb3RpZmljYXRpb25z
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMzNTAzQ0JGMTAxNzlDMUEwMDNCNDdFMSAvKiBKU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9t
LmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MzExMmU2Li4yMjVhNTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDgtMjYgIEpvbiBMZWUgIDxqb25sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3Vs
ZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1NzYxOD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktp
dC5leHA6IEV4cG9ydCBXZWJOb3RpZmljYXRpb24gY2xhc3MuCisgICAgICAgICogV2ViVmlldy9X
ZWJOb3RpZmljYXRpb24uaDogRXhwb3NlIGljb25VUkwuCisgICAgICAgICogV2ViVmlldy9XZWJO
b3RpZmljYXRpb24ubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvbiBpY29uVVJMXSk6CisK
KzIwMTItMDgtMjQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsg
dG93YXJkcyBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNhdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTY5CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGludGVy
bmFsIElEIGZvciBhIG5vdGlmaWNhdGlvbi4gVGhpcyBpcyBuZWVkZWQgdG8gc3VwcG9ydCBzaW11
bGF0aW5nCisgICAgICAgIGEgdXNlciBjbGljayBvbiBhIG5vdGlmaWNhdGlvbiwgZm9yIGxheW91
dCB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oOgorICAgICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50KToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW06CisgICAgICAgIChXZWJOb3RpZmljYXRp
b25DbGllbnQ6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9ub3RpZmljYXRpb25JREZvclRlc3Rpbmc6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEyLTA4LTIyICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggOTQ1MzVk
My4uNWJkNTE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTQ4LDYgKzQ4LDExIEBAIHB1YmxpYzoK
ICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqKTsKICAgICBXZWJWaWV3ICp3ZWJW
aWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBv
c2VzLgorICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tCmluZGV4IGUyYTA1YzYuLjFiZGMzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTIz
MCw2ICsyMzAsMTYgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNh
dGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWMKIH0KIAogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCit1aW50NjRfdCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpO
b3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3Jl
OjpOb3RpZmljYXRpb24+LCBSZXRhaW5QdHI8V2ViTm90aWZpY2F0aW9uPiA+OjppdGVyYXRvciBp
dCA9IG1fbm90aWZpY2F0aW9uTWFwLmZpbmQobm90aWZpY2F0aW9uKTsKKyAgICBpZiAoaXQgPT0g
bV9ub3RpZmljYXRpb25NYXAuZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBb
aXQtPnNlY29uZC5nZXQoKSBub3RpZmljYXRpb25JRF07Cit9CisjZW5kaWYKKworI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiBAaW1wbGVt
ZW50YXRpb24gV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIKIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0LmV4cCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYktpdC5leHAKaW5kZXggMDQ5MDA4MC4uMmJiMjNlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0LmV4cAorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJLaXQuZXhwCkBAIC0yNSw2ICsyNSw3IEBACiAub2JqY19jbGFzc19uYW1lX1dlYkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbAogLm9iamNfY2xhc3NfbmFtZV9XZWJLZXlHZW5lcmF0b3IKIC5v
YmpjX2NsYXNzX25hbWVfV2ViS2l0U3RhdGlzdGljcworLm9iamNfY2xhc3NfbmFtZV9XZWJOb3Rp
ZmljYXRpb24KIC5vYmpjX2NsYXNzX25hbWVfV2ViUGFuZWxBdXRoZW50aWNhdGlvbkhhbmRsZXIK
IC5vYmpjX2NsYXNzX25hbWVfV2ViUGx1Z2luRGF0YWJhc2UKIC5vYmpjX2NsYXNzX25hbWVfV2Vi
UHJlZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViTm90
aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5o
CmluZGV4IGZiOWM1MGUuLjQ5MjU1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJOb3RpZmljYXRpb24uaApAQCAtMzcsNiArMzcsNyBAQAogLSAoTlNTdHJpbmcgKil0aXRsZTsK
IC0gKE5TU3RyaW5nICopYm9keTsKIC0gKE5TU3RyaW5nICopdGFnOworLSAoTlNTdHJpbmcgKilp
Y29uVVJMOwogLSAoV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW47CiAtICh1aW50NjRfdClub3Rp
ZmljYXRpb25JRDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJO
b3RpZmljYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlv
bi5tbQppbmRleCA2YTEyM2Y2Li5iZTgyZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYk5vdGlmaWNhdGlvbi5tbQpAQCAtMTExLDYgKzExMSwxNiBAQCBOb3RpZmljYXRpb24q
IGNvcmUoV2ViTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pCiAjZW5kaWYKIH0KIAorLSAoTlNT
dHJpbmcgKilpY29uVVJMCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShM
RUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBBU1NFUlQoY29yZShzZWxmKSk7CisgICAgcmV0dXJu
IGNvcmUoc2VsZiktPmljb25VUkwoKTsKKyNlbHNlCisgICAgcmV0dXJuIG5pbDsKKyNlbmRpZgor
fQorCiAtIChXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbgogewogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggMmJmYWYyNC4uNmU1NWIyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMTQzLDEwICsxNDMsMTMgQEAKICNpbXBvcnQgPFdlYkNvcmUv
SlNEb2N1bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSlNOb2RlTGlzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9KU05vdGlmaWNhdGlvbi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL05vZGVMaXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5o
PgorI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BhZ2VHcm91cC5oPgpAQCAtNjU0Niw2ICs2NTQ5LDEzIEBAIHN0YXRpYyB2b2lkIGds
aWJDb250ZXh0SXRlcmF0aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9v
cEFjdGl2aXR5CiB7CiAgICAgW1tzZWxmIF9ub3RpZmljYXRpb25Qcm92aWRlcl0gd2ViVmlldzpz
ZWxmIGRpZENsb3NlTm90aWZpY2F0aW9uczpub3RpZmljYXRpb25JRHNdOwogfQorCistICh1aW50
NjRfdClfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5nOihKU1ZhbHVlUmVmKWpzTm90aWZpY2F0aW9u
Cit7CisgICAgSlNDb250ZXh0UmVmIGNvbnRleHQgPSBbW3NlbGYgbWFpbkZyYW1lXSBnbG9iYWxD
b250ZXh0XTsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiA9IHRvTm90
aWZpY2F0aW9uKHRvSlModG9KUyhjb250ZXh0KSwganNOb3RpZmljYXRpb24pKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V2ViTm90aWZpY2F0aW9uQ2xpZW50Kj4oTm90aWZpY2F0aW9uQ29udHJv
bGxlcjo6Y2xpZW50RnJvbShfcHJpdmF0ZS0+cGFnZSkpLT5ub3RpZmljYXRpb25JREZvclRlc3Rp
bmcobm90aWZpY2F0aW9uKTsKK30KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZXcgKFdl
YlZpZXdQcml2YXRlU3R5bGVJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
UHJpdmF0ZS5oCmluZGV4IGMyMGRhYWIuLmFkYjBjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKQEAgLTczOSw2ICs3MzksOCBAQCBDb3VsZCBiZSB3b3J0
aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKHZvaWQpX25vdGlmaWNhdGlvbkRpZFNob3c6KHVpbnQ2
NF90KW5vdGlmaWNhdGlvbklEOwogLSAodm9pZClfbm90aWZpY2F0aW9uRGlkQ2xpY2s6KHVpbnQ2
NF90KW5vdGlmaWNhdGlvbklEOwogLSAodm9pZClfbm90aWZpY2F0aW9uc0RpZENsb3NlOihOU0Fy
cmF5ICopbm90aWZpY2F0aW9uSURzOworCistICh1aW50NjRfdClfbm90aWZpY2F0aW9uSURGb3JU
ZXN0aW5nOihKU1ZhbHVlUmVmKWpzTm90aWZpY2F0aW9uOwogQGVuZAogCiBAaW50ZXJmYWNlIFdl
YlZpZXcgKFdlYlZpZXdQcml2YXRlU3R5bGVJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU3MGRmNDQuLjVj
ZjgyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMzggQEAKKzIwMTItMDgtMjYgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1
cHBvcnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmplY3Rl
ZCBidW5kbGUgaG9va3MgdGhhdCBhbGxvdyBXVFIgdG8gYWRkIG91dHB1dCB0byByZWZsZWN0IHRo
ZSBzdGF0ZSBvZiBub3RpZmljYXRpb25zIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAgVG8gYWNj
b21wbGlzaCB0aGlzLCB3ZSBhZGQgYSB3cmFwcGVyIG5vdGlmaWNhdGlvbiBvYmplY3QgY2FsbGVk
IFdLQnVuZGxlTm90aWZpY2F0aW9uLCBhbmQgdXBkYXRlIHRoZSBwcm92aWRlcgorICAgICAgICBj
YWxsYmFja3MgaW4gV2ViTm90aWZpY2F0aW9uTWFuYWdlciB0byBjYWxsIHRoZSBpbmplY3RlZCBi
dW5kbGUuCisKKyAgICAgICAgQWRkIGEgbmV3IGluamVjdGVkIGJ1bmRsZSBjbGllbnQgZm9yIHdl
YiBub3RpZmljYXRpb25zLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25D
bGllbnQ6OmRpZFNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQ6OmRpZENsaWNrTm90aWZpY2F0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRDbG9z
ZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZU5vdGlm
aWNhdGlvbkNsaWVudDo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VO
b3RpZmljYXRpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQp
OgorCisgICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gc2V0IGluamVjdGVkIGJ1bmRsZSBub3RpZmlj
YXRpb24gY2xpZW50LgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNldE5vdGlmaWNhdGlvbkNs
aWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaDogQWxzbyBkZWNsYXJlIG5vdGlmaWNhdGlvbiBjbGllbnQgY2FsbGJhY2tzLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZU5vdGlm
aWNhdGlvbkNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppbmplY3RlZEJ1
bmRsZU5vdGlmaWNhdGlvbkNsaWVudCk6CisKKyAgICAgICAgVXBkYXRlIGNhbGxiYWNrcyBpbiB3
ZWIgcHJvY2VzcyB0byBjYWxsIHRoZSBpbmplY3RlZCBidW5kbGUsIHdoZW4gdGhlIHBsYXRmb3Jt
IHNob3dlZCBvciBjbG9zZWQgYSBub3RpZmljYXRpb24sCisgICAgICAgIG9yIHRoZSB1c2VyIG1h
ZGUgYSBkZWNpc2lvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlY2lzaW9uKTogQWxzbyBmaXggYSBsZWFrIHdoZXJlCisgICAgICAgIHdlIGhv
bGQgb250byBhIG1hcHBpbmcgdGhhdCBzaG93IGJlIHJlbW92ZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZENsaWNrTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6ZGlkQ2xvc2VOb3Rp
ZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklERGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Tm90aWZpY2F0aW9uSUREYXRhOjpOb3RpZmlj
YXRpb25JRERhdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmg6IEZvciB0aGUgbWFwIHRoYXQgYXNzb2NpYXRlcyBub3RpZmljYXRp
b24gSURzIHRvIG5vdGlmaWNhdGlvbnMsCisgICAgICAgIHVwZGF0ZSB0aGUgdmFsdWUgdHlwZSB0
byB1c2UgYSBzaW1wbGUgY2xhc3MgdGhhdCBpbmNsdWRlcyB0aGUgd2ViIHBhZ2UgaW4gd2hpY2gg
dGhlIG5vdGlmaWNhdGlvbiB3YXMgZGlzcGxheWVkLgorICAgICAgICBUaGlzIGlzIG5lZWRlZCB0
byByZXRyaWV2ZSB0aGUgaW5qZWN0ZWQgYnVuZGxlIG5vdGlmaWNhdGlvbiBjbGllbnQuCisKKyAg
ICAgICAgQWRkIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uIGNsYXNzLCB3aGljaCBpcyBhIHRo
aW4gd3JhcHBlciBhYm91dCBXZWJDb3JlOjpOb3RpZmljYXRpb24uCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5jcHA6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3Rp
ZmljYXRpb24uaDogQWRkZWQuCisKKyAgICAgICAgRXhwb3NlIEluamVjdGVkQnVuZGxlTm90aWZp
Y2F0aW9uIGFzIFdLQnVuZGxlTm90aWZpY2F0aW9uLCBhbmQgaW1wbGVtZW50IGZ1bmN0aW9ucyBu
ZWVkZWQgYnkgV1RSIHRvIG91dHB1dAorICAgICAgICBub3RpZmljYXRpb24gY29udGVudHMuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNh
dGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoV0tCdW5kbGVOb3RpZmljYXRpb25HZXRUeXBlSUQp
OgorICAgICAgICAoV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5VGl0bGUpOgorICAgICAgICAoV0tC
dW5kbGVOb3RpZmljYXRpb25Db3B5Qm9keSk6CisgICAgICAgIChXS0J1bmRsZU5vdGlmaWNhdGlv
bkNvcHlJY29uVVJMKToKKyAgICAgICAgKFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRhZyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNh
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlTm90aWZpY2F0aW9uUHJpdmF0ZS5oOiBBZGRlZC4KKworICAgICAgICBFeHBvc2Ug
SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24gYXMgV0sgQVBJLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbm90aWZpY2F0aW9uIGNsYXNz
ZXMuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQ
SUNhc3QuaDoKKworMjAxMi0wOC0yNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIgc2hvdWxkIHN1cHBvcnQgbm90aWZp
Y2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3NjE4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZ1bmN0aW9ucyB0
byBXZWJLaXQyIHdoaWNoIG1haW50YWluIHRoZSBtYXAgb2YgcGVybWlzc2lvbnMgdG8gb3JpZ2lu
cyBmb3Igd2ViIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIEZvciBXZWJLaXQxIHRoZSBtYXAgaXMg
bWFuYWdlZCBieSBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDogQWRkIFRlc3RSdW5uZXIgU1BJLgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9ucyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUHJpdmF0ZS5oOiBFeHBvc2UgYXMgV0sgQVBJLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6c2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyk6IE1hbnVhbGx5IHNldCB0aGUgcGVybWlz
c2lvbgorICAgICAgICBsZXZlbCBmb3IgYW4gb3JpZ2luLgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnJlbW92ZUFsbFBlcm1pc3Npb25zRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6ZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbik6IFdoZW4g
dGhlIHVzZXIKKyAgICAgICAgbWFrZXMgYSBkZWNpc2lvbiwgd2UgZGlkIG5vdCBwcm9wZXJseSBj
bGVhbiB1cCBzb21lIG9mIHRoZSBtYXBzIG1haW50YWluZWQgYnkgdGhlIHJlcXVlc3QgbWFuYWdl
ci4KKyAgICAgICAgSW4gYWRkaXRpb24gdG8gY2xlYW5pbmcgdGhvc2UgdXAsIHdlIGFsc28gbWFr
ZSBzdXJlIHRvIHVwZGF0ZSB0aGUgd2ViIHByb2Nlc3MnIHJlcHJlc2VudGF0aW9uIG9mIHRoZQor
ICAgICAgICBwZXJtaXNzaW9ucy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgIChOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIp
OgorCisyMDEyLTA4LTI0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBX
b3JrIHRvd2FyZHMgV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBub3RpZmljYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk2OQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBp
bnRlcm5hbCBJRCBmb3IgYSBub3RpZmljYXRpb24uIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQg
c2ltdWxhdGluZworICAgICAgICBhIHVzZXIgY2xpY2sgb24gYSBub3RpZmljYXRpb24sIGZvciBs
YXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQpOiBD
YWxscyBpbnRvIG5vdGlmaWNhdGlvbiBtYW5hZ2VyIHRvIGdldCBpbnRlcm5hbCBJRC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oOiBB
ZGQgV0tCdW5kbGVHZXRXZWJOb3RpZmljYXRpb25JRCgpIHRvIGJlIGFibGUKKyAgICAgICAgcmV0
cmlldmUgbm90aWZpY2F0aW9uIElELgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6
d2ViTm90aWZpY2F0aW9uSUQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgIChJbmplY3RlZEJ1
bmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpu
b3RpZmljYXRpb25JREZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAgICAg
ICAoV2ViTm90aWZpY2F0aW9uTWFuYWdlcik6CisKIDIwMTItMDgtMjIgIEplc3VzIFNhbmNoZXot
UGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtFRkxd
IFVzZSBXVEZfVVNFX1NPVVAgaW5zdGVhZCBCVUlMRElOR19TT1VQX18KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAwNmFhMjg2Li4yMzgyMTRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xMzksNiArMTM5LDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tCdW5kbGVJbnRlbnQqIFdLQnVuZGxlSW50ZW50UmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVJbnRlbnRSZXF1ZXN0KiBXS0J1bmRsZUludGVudFJlcXVl
c3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZU5hdmlnYXRpb25BY3Rp
b24qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLQnVuZGxlTm9kZUhhbmRsZSogV0tCdW5kbGVOb2RlSGFuZGxlUmVmOwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVOb3RpZmljYXRpb24qIFdLQnVuZGxlTm90aWZpY2F0
aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVQYWdlKiBXS0J1bmRs
ZVBhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZVBhZ2VHcm91cCog
V0tCdW5kbGVQYWdlR3JvdXBSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRs
ZVBhZ2VPdmVybGF5KiBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCmluZGV4IDcwOGVmZmUuLjE3YjBiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgKQEAgLTEyMSw2ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVCdW5kbGVJbnRlbnRS
ZXF1ZXN0LAogICAgICAgICBUeXBlQnVuZGxlTmF2aWdhdGlvbkFjdGlvbiwKICAgICAgICAgVHlw
ZUJ1bmRsZU5vZGVIYW5kbGUsCisgICAgICAgIFR5cGVCdW5kbGVOb3RpZmljYXRpb24sCiAgICAg
ICAgIFR5cGVCdW5kbGVQYWdlLAogICAgICAgICBUeXBlQnVuZGxlUGFnZUdyb3VwLAogICAgICAg
ICBUeXBlQnVuZGxlUGFnZU92ZXJsYXksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGM4MGNlZC4uNDkxMjFkMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjUx
LDYgKzI1MSwxMyBAQAogCQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0Lm1tICovOyB9OwogCQkzMTA5OTk3MzE0NkM3NUEyMDAyOURFQjkgLyogV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGll
bnQuY3BwICovOyB9OwogCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi87
IH07CisJCTMxMURDRDUzMTVFOEMwMzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3Rp
ZmljYXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzExRENENTExNUU4QzAzMzAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlUGFnZU5v
dGlmaWNhdGlvbkNsaWVudC5jcHAgKi87IH07CisJCTMxMURDRDU0MTVFOEMwMzMwMDFFNkQwMCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDUyMTVFOEMwMzMwMDFFNkQwMCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKKwkJMzExRENE
NTgxNUU4QzA2NTAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDU2MTVFOEMw
NjUwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5jcHAgKi87IH07CisJCTMx
MURDRDU5MTVFOEMwNjUwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzExRENENTcxNUU4
QzA2NTAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmggKi87IH07CisJCTMx
MURDRDVFMTVFQUQyMjQwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDVEMTVF
QUNGNjMwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkzMTFEQ0Q1RjE1RUFEMjI4
MDAxRTZEMDAgLyogV0tCdW5kbGVOb3RpZmljYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMURDRDVCMTVFQUNGM0EwMDFFNkQwMCAvKiBXS0J1
bmRsZU5vdGlmaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKKwkJMzExRENENjAxNUVBRDIyRDAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
MURDRDVBMTVFQUNGMzgwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvbi5jcHAgKi87IH07
CiAJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJDMEM0OTE0
NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxMzEyNjFFMTQ4RkY4MkMwMEJB
MkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzMTI2MTkxNDhGRjgyQjAw
QkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgKi87IH07
CiAJCTMxMzEyNjFGMTQ4RkY4MkMwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxMzEyNjFBMTQ4RkY4MkIwMEJBMkEzOSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCAqLzsgfTsKQEAgLTEyODQsNiArMTI5MSwxMyBAQAogCQkyOUNENTVBOTEy
OEUyOTRGMDAxMzNDODUgLyogV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTY4MTQ2QzcxRjUw
MDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTcx
MTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzExRENENTExNUU4QzAzMzAwMUU2RDAwIC8qIElu
amVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTFEQ0Q1MjE1RThDMDMzMDAxRTZE
MDAgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTFEQ0Q1NjE1RThDMDY1MDAxRTZE
MDAgLyogSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMTFEQ0Q1NzE1RThDMDY1MDAxRTZEMDAgLyogSW5qZWN0
ZWRCdW5kbGVOb3RpZmljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMzExRENENUExNUVBQ0YzODAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlTm90aWZpY2F0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzExRENENUIxNUVBQ0YzQTAwMUU2
RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQnVuZGxlTm90aWZpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTMxMURDRDVEMTVFQUNGNjMwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05v
dGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEz
MTI2MTkxNDhGRjgyQjAwQkEyQTM5IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMTMxMjYxQTE0OEZGODJCMDBCQTJBMzkgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzI3OCw2ICszMjkyLDggQEAKIAkJCQlCQzQ5ODYxNjEyNEQxMEUyMDBEODM0RTEgLyog
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggKi8sCiAJCQkJQkM4MTQ3RDQxMkY2NkQzMTAw
N0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi8sCiAJCQkJQkM4
MTQ3RDMxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5o
ICovLAorCQkJCTMxMURDRDU2MTVFOEMwNjUwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlm
aWNhdGlvbi5jcHAgKi8sCisJCQkJMzExRENENTcxNUU4QzA2NTAwMUU2RDAwIC8qIEluamVjdGVk
QnVuZGxlTm90aWZpY2F0aW9uLmggKi8sCiAJCQkJQ0Q2N0QzMDgxNUMwN0JFMDAwODQzQURGIC8q
IEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLywKIAkJCQlD
RDY3RDMwOTE1QzA3QkUwMDA4NDNBREYgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLywKIAkJCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwICovLApAQCAtMzI5MCw2ICszMzA2LDgg
QEAKIAkJCQlDRDVDNjY5RjEzNEI5RDM3MDA0RkUyQTggLyogSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5oICovLAogCQkJCUJDQThDNkE2MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUJDQThDNkE3MTFFM0JBNUYw
MDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCAqLywKKwkJCQkzMTFE
Q0Q1MTE1RThDMDMzMDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcCAqLywKKwkJCQkzMTFEQ0Q1MjE1RThDMDMzMDAxRTZEMDAgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJQkM4MTQ3QTgxMkY2NENEQTAwN0Iy
QzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5jcHAgKi8sCiAJCQkJQkM4MTQ3
QTcxMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oICov
LAogCQkJCTY1NDZBODI5MTMwMDAxNjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNv
dXJjZUxvYWRDbGllbnQuY3BwICovLApAQCAtMzM0NCw2ICszMzYyLDkgQEAKIAkJCQlCQzRCRUZF
MDEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzRC
RUZERjEyMEExQTRDMDBGQkEwQzcgLyogV0tCdW5kbGVOb2RlSGFuZGxlLmggKi8sCiAJCQkJQkM1
NzQ1MEIxMjYzQjE1NTAwNkYwRjEyIC8qIFdLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaCAqLywK
KwkJCQkzMTFEQ0Q1QTE1RUFDRjM4MDAxRTZEMDAgLyogV0tCdW5kbGVOb3RpZmljYXRpb24uY3Bw
ICovLAorCQkJCTMxMURDRDVCMTVFQUNGM0EwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNhdGlv
bi5oICovLAorCQkJCTMxMURDRDVEMTVFQUNGNjMwMDFFNkQwMCAvKiBXS0J1bmRsZU5vdGlmaWNh
dGlvblByaXZhdGUuaCAqLywKIAkJCQlCQzIwNTI4MDExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5k
bGVQYWdlLmNwcCAqLywKIAkJCQlCQzIwNTI3RjExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQ
YWdlLmggKi8sCiAJCQkJQkM3QjYzM0MxMkE0NUQxMjAwRDE3NEE0IC8qIFdLQnVuZGxlUGFnZUdy
b3VwLmNwcCAqLywKQEAgLTQyNDcsNiArNDI2OCwxMCBAQAogCQkJCTNGODdCOUJFMTU4OTQwMTkw
MDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODdCOUMw
MTU4OTQwRDgwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXJQcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1OTU0ODkxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTMxMURDRDU0MTVFOEMwMzMwMDFFNkQwMCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VOb3Rp
ZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxMURDRDU5MTVFOEMwNjUwMDFF
NkQwMCAvKiBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MzExRENENUUxNUVBRDIyNDAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzExRENENUYxNUVBRDIyODAwMUU2RDAwIC8qIFdLQnVuZGxl
Tm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTUwMjEsNiArNTA0Niw5IEBACiAJCQkJ
MUEyQTRCMEUxNTg2QTIyNDAwOTBDOUU5IC8qIENvbG9yU3BhY2VEYXRhLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJM0Y4N0I5QkQxNTg5NDAxMjAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDY3RDMwRTE1QzA4RjlBMDA4NDNBREYgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MzExRENENTMxNUU4QzAzMzAwMUU2RDAwIC8qIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlv
bkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMTFEQ0Q1ODE1RThDMDY1MDAxRTZEMDAg
LyogSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzEx
RENENjAxNUVBRDIyRDAwMUU2RDAwIC8qIFdLQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAppbmRleCBlZTEwZTk2Li5iZjZmYWUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmNwcApAQCAtMjYwLDMgKzI2MCwxOSBAQCB2b2lkIFdLQnVuZGxlU2V0
VXNlclN0eWxlU2hlZXRMb2NhdGlvbihXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFn
ZUdyb3VwUgogewogICAgIHRvSW1wbChidW5kbGVSZWYpLT5zZXRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKHRvSW1wbChwYWdlR3JvdXBSZWYpLCB0b0ltcGwobG9jYXRpb24pLT5zdHJpbmcoKSk7CiB9
CisKK3ZvaWQgV0tCdW5kbGVTZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdLQnVuZGxlUmVm
IGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIG9yaWdpblN0
cmluZ1JlZiwgYm9vbCBncmFudGVkKQoreworICAgIHRvSW1wbChidW5kbGVSZWYpLT5zZXRXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uKHRvSW1wbChwYWdlUmVmKSwgdG9JbXBsKG9yaWdpblN0cmlu
Z1JlZiktPnN0cmluZygpLCBncmFudGVkKTsKK30KKwordm9pZCBXS0J1bmRsZVJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCit7CisgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnJlbW92ZUFsbFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKHRvSW1wbChwYWdlUmVmKSk7Cit9CisKK3VpbnQ2NF90IFdL
QnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pCit7CisgICAgcmV0dXJuIHRv
SW1wbChidW5kbGVSZWYpLT53ZWJOb3RpZmljYXRpb25JRChjb250ZXh0LCBub3RpZmljYXRpb24p
OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAppbmRleCAwMThlZjc5Li43ZWQy
YmU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCkBAIC01MCw2ICs1MCw3IEBA
IGNsYXNzIEluamVjdGVkQnVuZGxlSW50ZW50OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVJbnRlbnRS
ZXF1ZXN0OwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOworY2xhc3MgSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb247
CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVT
Y3JpcHRXb3JsZDsKIGNsYXNzIFBhZ2VPdmVybGF5OwpAQCAtNjksNiArNzAsNyBAQCBXS19BRERf
QVBJX01BUFBJTkcoV0tCdW5kbGVJbnRlbnRSZWYsIEluamVjdGVkQnVuZGxlSW50ZW50KQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlSW50ZW50UmVxdWVzdFJlZiwgSW5qZWN0ZWRCdW5kbGVJ
bnRlbnRSZXF1ZXN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlv
blJlZiwgSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLQnVuZGxlTm9kZUhhbmRsZVJlZiwgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKQorV0tfQURE
X0FQSV9NQVBQSU5HKFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmLCBJbmplY3RlZEJ1bmRsZU5vdGlm
aWNhdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZVBhZ2VHcm91cFJlZiwgV2ViUGFn
ZUdyb3VwUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiwg
UGFnZU92ZXJsYXkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCdW5kbGVQYWdlUmVmLCBXZWJQYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZU5vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzczMjczCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlm
aWNhdGlvbi5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXS0J1bmRsZU5vdGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgIldLQnVu
ZGxlTm90aWZpY2F0aW9uUHJpdmF0ZS5oIgorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb3Rp
ZmljYXRpb24uaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0J1bmRs
ZU5vdGlmaWNhdGlvbkdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKEluamVjdGVkQnVu
ZGxlTm90aWZpY2F0aW9uOjpBUElUeXBlKTsKK30KKworV0tTdHJpbmdSZWYgV0tCdW5kbGVOb3Rp
ZmljYXRpb25Db3B5VGl0bGUoV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQor
eworICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobm90aWZpY2F0aW9uKS0+Y29yZU5vdGlm
aWNhdGlvbigpLT50aXRsZSgpKTsKK30KKworV0tTdHJpbmdSZWYgV0tCdW5kbGVOb3RpZmljYXRp
b25Db3B5Qm9keShXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChub3RpZmljYXRpb24pLT5jb3JlTm90aWZpY2F0aW9u
KCktPmJvZHkoKSk7Cit9CisKK1dLU3RyaW5nUmVmIFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weUlj
b25VUkwoV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVy
biB0b0NvcGllZEFQSSh0b0ltcGwobm90aWZpY2F0aW9uKS0+Y29yZU5vdGlmaWNhdGlvbigpLT5p
Y29uVVJMKCkpOworfQorCitXS1N0cmluZ1JlZiBXS0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlUYWco
V0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIHJldHVybiB0b0Nv
cGllZEFQSSh0b0ltcGwobm90aWZpY2F0aW9uKS0+Y29yZU5vdGlmaWNhdGlvbigpLT50YWcoKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc0NjgyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb3RpZmlj
YXRpb24uaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0J1bmRsZU5v
dGlmaWNhdGlvbl9oCisjZGVmaW5lIFdLQnVuZGxlTm90aWZpY2F0aW9uX2gKKworI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlTm90aWZpY2F0aW9uR2V0VHlwZUlE
KCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0J1bmRs
ZU5vdGlmaWNhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm90aWZpY2F0aW9uUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNh
dGlvblByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODk2NDI2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaApAQCAtMCwwICsxLDQ0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGVfaAorI2Rl
ZmluZSBXS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitX
S19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5VGl0bGUoV0tCdW5k
bGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0J1bmRsZU5vdGlmaWNhdGlvbkNvcHlCb2R5KFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlm
aWNhdGlvbik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5
SWNvblVSTChXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pOworV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRhZyhXS0J1bmRsZU5vdGlmaWNh
dGlvblJlZiBub3RpZmljYXRpb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
CisjZW5kaWYgLy8gV0tCdW5kbGVOb3RpZmljYXRpb25Qcml2YXRlX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcAppbmRleCA5MWQwYWQ4Li4yZTZkMmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuY3BwCkBAIC0xMzQsNiArMTM0LDExIEBAIHZvaWQgV0tCdW5kbGVQYWdlU2V0RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFn
CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudChjbGllbnQpOwogfQogCit2b2lkIFdLQnVuZGxlUGFnZVNldE5vdGlmaWNh
dGlvbkNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlTm90aWZpY2F0
aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5pbml0aWFsaXplSW5q
ZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoY2xpZW50KTsKK30KKwogV0tCdW5kbGVQYWdl
R3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
KQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDhiYzc2NzAuLjZjMTY4OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaApAQCAtMzcxLDYgKzM3MSwyNCBAQCBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZVBhZ2VEaWRFbnRlckZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVQYWdlV2lsbEV4aXRGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBw
YWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKTsKIAorLy8gV2ViIG5vdGlmaWNhdGlvbnMgY2xpZW50Cit0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VOb3RpZmljYXRpb25EaWRTaG93Q2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlTm90aWZpY2F0
aW9uRGlkQ2xpY2tDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm90aWZp
Y2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VOb3RpZmljYXRpb25EaWRDbG9zZUNhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZU5vdGlmaWNh
dGlvbkRpZFJlY2VpdmVQZXJtaXNzaW9uRGVjaXNpb25DYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBib29sIGFsbG93ZWQsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOworCitzdHJ1Y3QgV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50
IHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwor
ICAgIFdLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkRpZFNob3dDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkU2hvd05vdGlmaWNhdGlvbjsKKyAgICBXS0J1bmRsZVBhZ2VOb3Rp
ZmljYXRpb25EaWRDbGlja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENs
aWNrTm90aWZpY2F0aW9uOworICAgIFdLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkRpZENsb3NlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xvc2VOb3RpZmljYXRpb247Cisg
ICAgV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uRGlkUmVjZWl2ZVBlcm1pc3Npb25EZWNpc2lvbkNh
bGxiYWNrICAgICAgICBkaWRSZWNlaXZlUGVybWlzc2lvbkRlY2lzaW9uOworfTsKK3R5cGVkZWYg
c3RydWN0IFdLQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCBXS0J1bmRsZVBhZ2VOb3RpZmlj
YXRpb25DbGllbnQ7CisKK2VudW0geyBrV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Q3Vy
cmVudFZlcnNpb24gPSAwIH07CisKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRU
eXBlSUQoKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0Q29udGV4dE1lbnVDbGll
bnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50KiBj
bGllbnQpOwpAQCAtMzgyLDYgKzQwMCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNl
dFBvbGljeUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlUG9sCiBXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRVSUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVQYWdlVUlDbGllbnQqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBh
Z2VTZXRGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VG
dWxsU2NyZWVuQ2xpZW50KiBjbGllbnQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFn
ZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50KiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5k
bGVQYWdlU2V0Tm90aWZpY2F0aW9uQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZVBhZ2VOb3RpZmljYXRpb25DbGllbnQqIGNsaWVudCk7CiAKIFdLX0VYUE9SVCBXS0J1bmRsZVBh
Z2VHcm91cFJlZiBXS0J1bmRsZVBhZ2VHZXRQYWdlR3JvdXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2Up
OwogV0tfRVhQT1JUIFdLQnVuZGxlRnJhbWVSZWYgV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKFdL
QnVuZGxlUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCmluZGV4
IGI1ZTEwZTUuLjVhZDNmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAt
OTUsNiArOTUsMTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTd2l0Y2hOZXR3b3JrTG9hZGVy
VG9OZXdUZXN0aW5nU2Vzc2lvbihXS0J1bmRsZVJlZiBidW5kbGUKIAogV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVTZXRQYWdlVmlzaWJpbGl0eVN0YXRlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIGludCBzdGF0ZSwgYm9vbCBpc0luaXRpYWxTdGF0ZSk7CiAKK1dLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlU2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihXS0J1bmRsZVJl
ZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBvcmlnaW5TdHJpbmdS
ZWYsIGJvb2wgZ3JhbnRlZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVJlbW92ZUFsbFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb25zKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVm
IHBhZ2UpOworV0tfRVhQT1JUIHVpbnQ2NF90IFdLQnVuZGxlR2V0V2ViTm90aWZpY2F0aW9uSUQo
V0tCdW5kbGVSZWYgYnVuZGxlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub3Rp
ZmljYWl0b24pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAppbmRleCAxZTgzMTA3Li5hYTVhYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCiAjaW5jbHVkZSAi
TGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJ
Q2FzdC5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCkBAIC01Myw2
ICs1NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0pTRE9NV2luZG93Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vdGlmaWNhdGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlVmlzaWJpbGl0eVN0YXRlLmg+CkBAIC01MzQsNCArNTM2LDMy
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFn
ZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgY29uCiAgICAgICAgICgqaXRlciktPnNldHRpbmdzKCkt
PnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oS1VSTChLVVJMKCksIGxvY2F0aW9uKSk7CiB9CiAK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFn
ZSogcGFnZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCkKK3sKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQor
ICAgIHBhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zZXRQZXJt
aXNzaW9uTGV2ZWxGb3JUZXN0aW5nKG9yaWdpblN0cmluZywgYWxsb3dlZCA/IE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25EZW5pZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKG9yaWdpblN0cmluZyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93ZWQpOworI2VuZGlmCit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKFdlYlBhZ2UqIHBhZ2UpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJM
RShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS0+cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyNlbmRpZgorfQorCit1aW50NjRfdCBJbmplY3Rl
ZEJ1bmRsZTo6d2ViTm90aWZpY2F0aW9uSUQoSlNDb250ZXh0UmVmIGpzQ29udGV4dCwgSlNWYWx1
ZVJlZiBqc05vdGlmaWNhdGlvbikKK3sKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbiA9IHRvTm90aWZpY2F0aW9uKHRvSlModG9KUyhqc0NvbnRleHQpLCBqc05vdGlmaWNh
dGlvbikpOworICAgIGlmICghbm90aWZpY2F0aW9uKQorICAgICAgICByZXR1cm4gMDsKKyAgICBy
ZXR1cm4gV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLm5vdGlmaWNh
dGlvbklERm9yVGVzdGluZyhub3RpZmljYXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA4N2Y3ZWYzLi4zM2QwYzAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oCkBAIC0xMjQsNiArMTI0LDkgQEAgcHVibGljOgogICAgIFN0cmluZyBwYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVscyhXZWJGcmFtZSosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQs
IGludCk7CiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKFdlYkZyYW1lKiwgaW50KTsKICAgICB2
b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFnZUdyb3VwUHJveHkqLCBjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIHNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYsIGJvb2wpOworICAgIHZvaWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbnMoV2ViUGFnZSopOworICAgIHVpbnQ2NF90IHdlYk5vdGlmaWNhdGlvbklEKEpT
Q29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CiAKICAgICAvLyBVc2VyQ29udGVudCBBUEkKICAgICB2
b2lkIGFkZFVzZXJTY3JpcHQoV2ViUGFnZUdyb3VwUHJveHkqLCBJbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgdXJsLCBJbW11dGFi
bGVBcnJheSogd2hpdGVsaXN0LCBJbW11dGFibGVBcnJheSogYmxhY2tsaXN0LCBXZWJDb3JlOjpV
c2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmM4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTm90
aWZpY2F0aW9uLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgiCisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxJ
bmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbj4gSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb246OmNy
ZWF0ZShOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDZiYzk2NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24u
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbmplY3RlZEJ1bmRsZU5v
dGlmaWNhdGlvbl9oCisjZGVmaW5lIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uX2gKKworI2lu
Y2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbiA6
IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5
cGUgPSBUeXBlQnVuZGxlTm90aWZpY2F0aW9uOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5q
ZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24+IGNyZWF0ZShXZWJDb3JlOjpOb3RpZmljYXRpb24qKTsK
KyAgICBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb24qIGNvcmVOb3RpZmljYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX25vdGlmaWNhdGlvbi5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogbm90
aWZpY2F0aW9uKQorICAgICAgICA6IG1fbm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikKKyAgICB7
CisgICAgfQorCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBl
OyB9CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiBtX25vdGlmaWNhdGlvbjsK
K307CisKK30KKworI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjU1MDllCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC0wLDAgKzEsODQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmgiCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5v
dGlmaWNhdGlvbi5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxl
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJT
ZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9uLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZp
Y2F0aW9uQ2xpZW50OjpkaWRTaG93Tm90aWZpY2F0aW9uKFdlYlBhZ2UqIHBhZ2UsIE5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQoreworICAgIGlmICghbV9jbGllbnQuZGlkU2hvd05vdGlmaWNh
dGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEluamVjdGVkQnVuZGxlTm90aWZp
Y2F0aW9uPiBidW5kbGVOb3RpZmljYXRpb24gPSBJbmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbjo6
Y3JlYXRlKG5vdGlmaWNhdGlvbik7CisgICAgbV9jbGllbnQuZGlkU2hvd05vdGlmaWNhdGlvbih0
b0FQSShwYWdlKSwgdG9BUEkoYnVuZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xp
ZW50SW5mbyk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50
OjpkaWRDbGlja05vdGlmaWNhdGlvbihXZWJQYWdlKiBwYWdlLCBOb3RpZmljYXRpb24qIG5vdGlm
aWNhdGlvbikKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENsb3NlTm90aWZpY2F0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24+IGJ1
bmRsZU5vdGlmaWNhdGlvbiA9IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uOjpjcmVhdGUobm90
aWZpY2F0aW9uKTsKKyAgICBtX2NsaWVudC5kaWRDbGlja05vdGlmaWNhdGlvbih0b0FQSShwYWdl
KSwgdG9BUEkoYnVuZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7
Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRDbG9z
ZU5vdGlmaWNhdGlvbihXZWJQYWdlKiBwYWdlLCBOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikK
K3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZENsb3NlTm90aWZpY2F0aW9uKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb24+IGJ1bmRsZU5vdGlm
aWNhdGlvbiA9IEluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uOjpjcmVhdGUobm90aWZpY2F0aW9u
KTsKKyAgICBtX2NsaWVudC5kaWRDbG9zZU5vdGlmaWNhdGlvbih0b0FQSShwYWdlKSwgdG9BUEko
YnVuZGxlTm90aWZpY2F0aW9uLmdldCgpKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4sIGJvb2wgYWxsb3dlZCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmRpZFJl
Y2VpdmVQZXJtaXNzaW9uRGVjaXNpb24pCisgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8V2Vi
U2VjdXJpdHlPcmlnaW4+IHdlYk9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVBlcm1p
c3Npb25EZWNpc2lvbih0b0FQSShwYWdlKSwgdG9BUEkod2ViT3JpZ2luLmdldCgpKSwgYWxsb3dl
ZCwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlv
bkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0ZTJlN2UKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVu
dF9oCisjZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudF9oCisKKyNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQor
CisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCisjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBOb3RpZmljYXRpb247CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVk
QnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBBUElDbGllbnQ8V0tCdW5kbGVQ
YWdlTm90aWZpY2F0aW9uQ2xpZW50LCBrV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50Q3Vy
cmVudFZlcnNpb24+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGRpZFNob3dOb3RpZmljYXRpb24oV2Vi
UGFnZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgZGlkQ2xpY2tOb3RpZmlj
YXRpb24oV2ViUGFnZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZvaWQgZGlkQ2xv
c2VOb3RpZmljYXRpb24oV2ViUGFnZSosIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopOworICAgIHZv
aWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihXZWJQYWdlKiBwYWdl
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBib29sIGFsbG93ZWQpOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTk9USUZJQ0FUSU9OUykg
fHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorCisjZW5kaWYgLy8gSW5qZWN0ZWRCdW5k
bGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggNmQ4OWZjMC4uOTMzMTk5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTEyOCwxMiArMTI4LDM1IEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MCiAj
ZW5kaWYKIH0KIAordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNl
dFBlcm1pc3Npb25MZXZlbEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uKQoreworI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLmRpZFVwZGF0ZU5v
dGlmaWNhdGlvbkRlY2lzaW9uKG9yaWdpblN0cmluZywgcGVybWlzc2lvbiA9PSBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9y
aWdpblN0cmluZyk7CisgICAgVU5VU0VEX1BBUkFNKHBlcm1pc3Npb24pOworI2VuZGlmCit9CisK
K3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpyZW1vdmVBbGxQZXJt
aXNzaW9uc0ZvclRlc3RpbmcoKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFC
TEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZp
Y2F0aW9uTWFuYWdlcigpLnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2VuZGlm
Cit9CisKIHZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNl
aXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9v
bCBhbGxvd2VkKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCiAgICAgaWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCiAg
ICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gb3Jp
Z2luID0gbV9pZFRvT3JpZ2luTWFwLnRha2UocmVxdWVzdElEKTsKKyAgICBtX29yaWdpblRvSURN
YXAucmVtb3ZlKG9yaWdpbik7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5ub3RpZmljYXRp
b25NYW5hZ2VyKCkuZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24ob3JpZ2luLT50b1N0cmlu
ZygpLCBhbGxvd2VkKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlTm90aWZpY2F0aW9uQ2xp
ZW50KCkuZGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbihtX3BhZ2UsIG9y
aWdpbi5nZXQoKSwgYWxsb3dlZCk7CisKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CiAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gdm9pZENhbGxiYWNrID0gbV9pZFRvVm9pZENhbGxi
YWNrTWFwLnRha2UocmVxdWVzdElEKTsKICAgICBpZiAodm9pZENhbGxiYWNrKSB7CkBAIC0xNDYs
NyArMTY5LDcgQEAgdm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmRp
ZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXMKICAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBjYWxsYmFjayA9IG1faWRUb0NhbGxiYWNrTWFwLnRha2Uo
cmVxdWVzdElEKTsKICAgICBpZiAoIWNhbGxiYWNrKQogICAgICAgICByZXR1cm47Ci0gICAgCisK
ICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uOjpwZXJtaXNzaW9uU3RyaW5n
KGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkIDogTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkKSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDEzOGEx
ODQuLjA1YTNiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKQEAgLTU1LDggKzU1LDExIEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IHZvaWQgY2FuY2VsUmVxdWVzdChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOwogICAgIAotICAg
IC8vIFN5bmNocm9ub3VzIGNhbGwgdG8gcmV0cmlldmUgcGVybWlzc2lvbiBsZXZlbCBmb3IgZ2l2
ZW4gc2VjdXJpdHkgb3JpZ2luCiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uIHBlcm1pc3Npb25MZXZlbChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopOworCisgICAg
Ly8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4KKyAgICB2b2lkIHNldFBlcm1pc3Npb25MZXZl
bEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbik7CisgICAgdm9pZCByZW1vdmVBbGxQZXJtaXNzaW9uc0Zv
clRlc3RpbmcoKTsKICAgICAKICAgICB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNz
aW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCk7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMmQ2NjdlZi4uY2Y1MTZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA1LDE2ICsxMDUs
MzQgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3JlOjoKICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAordm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKQoreworI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgbV9wZXJtaXNz
aW9uc01hcC5jbGVhcigpOworI2VuZGlmCit9CisKK3VpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbikKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQorICAgIGlmICghbm90aWZpY2F0aW9uKQorICAgICAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gbV9ub3RpZmljYXRpb25NYXAuZ2V0KG5vdGlmaWNhdGlvbik7CisjZWxz
ZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKIHsKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQog
ICAgIGlmICghbm90aWZpY2F0aW9uIHx8ICFwYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5u
b3RpZmljYXRpb25zRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCisKICAg
ICB1aW50NjRfdCBub3RpZmljYXRpb25JRCA9IGdlbmVyYXRlTm90aWZpY2F0aW9uSUQoKTsKICAg
ICBtX25vdGlmaWNhdGlvbk1hcC5zZXQobm90aWZpY2F0aW9uLCBub3RpZmljYXRpb25JRCk7Ci0g
ICAgbV9ub3RpZmljYXRpb25JRE1hcC5zZXQobm90aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7
Ci0gICAgCisgICAgbV9ub3RpZmljYXRpb25JRE1hcC5zZXQobm90aWZpY2F0aW9uSUQsIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklERGF0YTo6Y3JlYXRlKG5vdGlmaWNhdGlv
biwgcGFnZSkpOworCiAgICAgTm90aWZpY2F0aW9uQ29udGV4dE1hcDo6aXRlcmF0b3IgaXQgPSBt
X25vdGlmaWNhdGlvbkNvbnRleHRNYXAuYWRkKG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBWZWN0b3I8dWludDY0X3Q+KCkpLml0ZXJhdG9yOwogICAgIGl0LT5zZWNvbmQu
YXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIApAQCAtMTU0LDExICsxNzIsMTIgQEAgdm9pZCBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCoKICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5OjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZp
Y2F0aW9uSURzKSwgcGFnZS0+cGFnZUlEKCkpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNh
dGlvbklEcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7
Ci0gICAgICAgIFJlZlB0cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0
aW9uSURNYXAudGFrZShub3RpZmljYXRpb25JRHNbaV0pOwotICAgICAgICBpZiAoIW5vdGlmaWNh
dGlvbikKKyAgICAgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBub3RpZmljYXRpb25JRHNb
aV07CisgICAgICAgIFJlZlB0cjxOb3RpZmljYXRpb25JRERhdGE+IGRhdGEgPSBtX25vdGlmaWNh
dGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSUQpOworICAgICAgICBpZiAoIWRhdGEpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgbm90aWZpY2F0aW9uLT5maW5hbGl6ZSgpOwotICAg
ICAgICBtX25vdGlmaWNhdGlvbk1hcC5yZW1vdmUobm90aWZpY2F0aW9uKTsKKyAgICAgICAgZGF0
YS0+bm90aWZpY2F0aW9uKCktPmZpbmFsaXplKCk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uTWFw
LnJlbW92ZShkYXRhLT5ub3RpZmljYXRpb24oKSk7CiAgICAgfQogICAgIAogICAgIG1fbm90aWZp
Y2F0aW9uQ29udGV4dE1hcC5yZW1vdmUoaXQpOwpAQCAtMTg0LDExICsyMDMsMTIgQEAgdm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRTaG93Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKQogICAgIGlmICghaXNOb3RpZmljYXRpb25JRFZhbGlkKG5vdGlmaWNhdGlvbklE
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFJlZlB0cjxOb3RpZmljYXRpb24+IG5vdGlm
aWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAuZ2V0KG5vdGlmaWNhdGlvbklEKTsKLSAgICBp
ZiAoIW5vdGlmaWNhdGlvbikKKyAgICBOb3RpZmljYXRpb25JRE1hcDo6aXRlcmF0b3IgaXQgPSBt
X25vdGlmaWNhdGlvbklETWFwLmZpbmQobm90aWZpY2F0aW9uSUQpOworICAgIGlmIChpdCA9PSBt
X25vdGlmaWNhdGlvbklETWFwLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBub3RpZmlj
YXRpb24tPmRpc3BhdGNoU2hvd0V2ZW50KCk7CisgICAgaXQtPnNlY29uZC0+d2ViUGFnZSgpLT5p
bmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbkNsaWVudCgpLmRpZFNob3dOb3RpZmljYXRpb24oaXQt
PnNlY29uZC0+d2ViUGFnZSgpLCBpdC0+c2Vjb25kLT5ub3RpZmljYXRpb24oKSk7CisgICAgaXQt
PnNlY29uZC0+bm90aWZpY2F0aW9uKCktPmRpc3BhdGNoU2hvd0V2ZW50KCk7CiAjZW5kaWYKIH0K
IApAQCAtMTk4LDExICsyMTgsMTIgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRD
bGlja05vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKICAgICBpZiAoIWlzTm90
aWZpY2F0aW9uSURWYWxpZChub3RpZmljYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJlZlB0cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAu
Z2V0KG5vdGlmaWNhdGlvbklEKTsKLSAgICBpZiAoIW5vdGlmaWNhdGlvbikKKyAgICBOb3RpZmlj
YXRpb25JRE1hcDo6aXRlcmF0b3IgaXQgPSBtX25vdGlmaWNhdGlvbklETWFwLmZpbmQobm90aWZp
Y2F0aW9uSUQpOworICAgIGlmIChpdCA9PSBtX25vdGlmaWNhdGlvbklETWFwLmVuZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBub3RpZmljYXRpb24tPmRpc3BhdGNoQ2xpY2tFdmVudCgpOwor
ICAgIGl0LT5zZWNvbmQtPndlYlBhZ2UoKS0+aW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGll
bnQoKS5kaWRDbGlja05vdGlmaWNhdGlvbihpdC0+c2Vjb25kLT53ZWJQYWdlKCksIGl0LT5zZWNv
bmQtPm5vdGlmaWNhdGlvbigpKTsKKyAgICBpdC0+c2Vjb25kLT5ub3RpZmljYXRpb24oKS0+ZGlz
cGF0Y2hDbGlja0V2ZW50KCk7CiAjZW5kaWYKIH0KIApAQCAtMjE1LDE0ICsyMzYsMTUgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWRDbG9zZU5vdGlmaWNhdGlvbnMoY29uc3QgVmVj
dG9yPHVpbnQ2NF90PiYgbm90aWYKICAgICAgICAgaWYgKCFpc05vdGlmaWNhdGlvbklEVmFsaWQo
bm90aWZpY2F0aW9uSUQpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVmUHRy
PE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25JRE1hcC50YWtlKG5v
dGlmaWNhdGlvbklEKTsKLSAgICAgICAgaWYgKCFub3RpZmljYXRpb24pCisgICAgICAgIFJlZlB0
cjxOb3RpZmljYXRpb25JRERhdGE+IGRhdGEgPSBtX25vdGlmaWNhdGlvbklETWFwLnRha2Uobm90
aWZpY2F0aW9uSUQpOworICAgICAgICBpZiAoIWRhdGEpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBtX25vdGlmaWNhdGlvbk1hcC5yZW1vdmUobm90aWZpY2F0aW9uKTsKLSAgICAg
ICAgcmVtb3ZlTm90aWZpY2F0aW9uRnJvbUNvbnRleHRNYXAobm90aWZpY2F0aW9uSUQsIG5vdGlm
aWNhdGlvbi5nZXQoKSk7CisgICAgICAgIG1fbm90aWZpY2F0aW9uTWFwLnJlbW92ZShkYXRhLT5u
b3RpZmljYXRpb24oKSk7CisgICAgICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFw
KG5vdGlmaWNhdGlvbklELCBkYXRhLT5ub3RpZmljYXRpb24oKSk7CiAKLSAgICAgICAgbm90aWZp
Y2F0aW9uLT5kaXNwYXRjaENsb3NlRXZlbnQoKTsKKyAgICAgICAgZGF0YS0+d2ViUGFnZSgpLT5p
bmplY3RlZEJ1bmRsZU5vdGlmaWNhdGlvbkNsaWVudCgpLmRpZENsb3NlTm90aWZpY2F0aW9uKGRh
dGEtPndlYlBhZ2UoKSwgZGF0YS0+bm90aWZpY2F0aW9uKCkpOworICAgICAgICBkYXRhLT5ub3Rp
ZmljYXRpb24oKS0+ZGlzcGF0Y2hDbG9zZUV2ZW50KCk7CiAgICAgfQogI2VuZGlmCiB9CkBAIC0y
NDEsNCArMjYzLDE3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cmVtb3ZlTm90aWZp
Y2F0aW9uRnJvbUNvbnRleHRNYXAodWludDY0X3Qgbm90aWZpY2F0CiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCitQ
YXNzUmVmUHRyPFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNhdGlvbklERGF0YT4gV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6Tm90aWZpY2F0aW9uSUREYXRhOjpjcmVhdGUoTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHdlYlBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpOb3RpZmljYXRpb25JRERhdGEobm90aWZp
Y2F0aW9uLCB3ZWJQYWdlKSk7Cit9CisKK1dlYk5vdGlmaWNhdGlvbk1hbmFnZXI6Ok5vdGlmaWNh
dGlvbklERGF0YTo6Tm90aWZpY2F0aW9uSUREYXRhKE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9u
LCBXZWJQYWdlKiB3ZWJQYWdlKQorICAgIDogbV9ub3RpZmljYXRpb24obm90aWZpY2F0aW9uKQor
ICAgICwgbV93ZWJQYWdlKHdlYlBhZ2UpCit7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCAyYTE4ZDQ0Li5mYzE3
Zjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKQEAgLTY4LDYgKzY4LDEyIEBA
IHB1YmxpYzoKICAgICAvLyBMb29rcyBpbiBsb2NhbCBjYWNoZSBmb3IgcGVybWlzc2lvbi4gSWYg
bm90IGZvdW5kLCByZXR1cm5zIERlZmF1bHREZW5pZWQuCiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBvbGljeUZvck9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiopIGNvbnN0OwogCisgICAgdm9pZCBkaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKTsKKworICAgIC8vIEZvciB0
ZXN0aW5nIHB1cnBvc2VzIG9ubHkuCisgICAgdm9pZCByZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRl
c3RpbmcoKTsKKyAgICB1aW50NjRfdCBub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pOworCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwpAQCAtNzUsMTEgKzgxLDIzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTaG93Tm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGRpZENsaWNrTm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGRpZENsb3NlTm90
aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOwotICAg
IHZvaWQgZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5T
dHJpbmcsIGJvb2wgYWxsb3dlZCk7CiAgICAgdm9pZCBkaWRSZW1vdmVOb3RpZmljYXRpb25EZWNp
c2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpblN0cmluZ3MpOwogICAgIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAg
dm9pZCByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcCh1aW50NjRfdCBub3RpZmljYXRp
b25JRCwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uKik7CisKKyAgICBjbGFzcyBOb3RpZmljYXRpb25J
RERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxOb3RpZmljYXRpb25JRERhdGE+IHsKKyAgICBwdWJs
aWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvbklERGF0YT4gY3JlYXRl
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiosIFdlYlBhZ2UqKTsKKworICAgICAgICBXZWJDb3JlOjpO
b3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbm90aWZpY2F0aW9u
LmdldCgpOyB9CisgICAgICAgIFdlYlBhZ2UqIHdlYlBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3dl
YlBhZ2U7IH0KKyAgICBwcml2YXRlOgorICAgICAgICBOb3RpZmljYXRpb25JRERhdGEoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiwgV2ViUGFnZSopOworCisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpO
b3RpZmljYXRpb24+IG1fbm90aWZpY2F0aW9uOworICAgICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7
CisgICAgfTsKICNlbmRpZgogCiAgICAgV2ViUHJvY2VzcyogbV9wcm9jZXNzOwpAQCAtODgsNyAr
MTA2LDcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbj4sIHVpbnQ2NF90PiBOb3RpZmljYXRpb25NYXA7CiAgICAgTm90aWZpY2F0aW9u
TWFwIG1fbm90aWZpY2F0aW9uTWFwOwogICAgIAotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4gPiBOb3RpZmljYXRpb25JRE1hcDsKKyAg
ICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOb3RpZmljYXRpb25JRERhdGE+ID4g
Tm90aWZpY2F0aW9uSURNYXA7CiAgICAgTm90aWZpY2F0aW9uSURNYXAgbV9ub3RpZmljYXRpb25J
RE1hcDsKICAgICAKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ+LCBWZWN0b3I8dWludDY0X3Q+ID4gTm90aWZpY2F0aW9uQ29udGV4dE1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBlY2FjMTJjLi43NzBiYTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC00MjcsNiArNDI3LDEzIEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlh
bGl6ZUluamVjdGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlRGlh
Z25vCiAgICAgbV9sb2dEaWFnbm9zdGljTWVzc2FnZUNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7
CiB9CiAKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklD
QVRJT05TKQordm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRp
b25DbGllbnQoV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9uQ2xpZW50KiBjbGllbnQpCit7CisgICAg
bV9ub3RpZmljYXRpb25DbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorI2VuZGlmCisKIFBh
c3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBI
VE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWVudCwgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQogewogICAgIFN0cmluZyBwbHVnaW5QYXRoOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzg5NzI3YS4uNzZjOTU1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIgogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBh
Z2VOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xp
Y3lDbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGll
bnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIgpAQCAtMjUzLDYg
KzI1NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxT
Y3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCopOwogI2VuZGlmCiAgICAg
dm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVEaWFnbm9zdGljTG9nZ2luZ0NsaWVudChXS0J1
bmRsZVBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCopOworI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgdm9pZCBpbml0aWFsaXpl
SW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGllbnQoV0tCdW5kbGVQYWdlTm90aWZpY2F0aW9u
Q2xpZW50Kik7CisjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEluamVj
dGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50JiBpbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51
Q2xpZW50KCkgeyByZXR1cm4gbV9jb250ZXh0TWVudUNsaWVudDsgfQpAQCAtMjY3LDYgKzI3MSw5
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KCkg
eyByZXR1cm4gbV9mdWxsU2NyZWVuQ2xpZW50OyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorICAgIEluamVjdGVkQnVu
ZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVOb3RpZmljYXRpb25DbGll
bnQoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbkNsaWVudDsgfQorI2VuZGlmCiAKICAgICB2b2lk
IHNldFVuZGVybGF5UGFnZShQYXNzUmVmUHRyPFdlYlBhZ2U+IHVuZGVybGF5UGFnZSkgeyBtX3Vu
ZGVybGF5UGFnZSA9IHVuZGVybGF5UGFnZTsgfQogCkBAIC04MzksNiArODQ2LDkgQEAgcHJpdmF0
ZToKICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNs
aWVudDsKICNlbmRpZgogICAgIEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50IG1fbG9nRGlhZ25vc3RpY01lc3NhZ2VDbGllbnQ7CisjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBJbmplY3RlZEJ1bmRsZVBh
Z2VOb3RpZmljYXRpb25DbGllbnQgbV9ub3RpZmljYXRpb25DbGllbnQ7CisjZW5kaWYKIAogI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9y
dFNpemU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggYjgyYmU3Ni4uNTI3YTVlOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMCBAQAorMjAxMi0wOC0yNiAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIg
c2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3
NjE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0ZXN0IG91dHB1dCB3aGVuIHRoZSB0ZXN0IGNhbGxzIHRlc3RSdW5uZXIuZHVtcFdlYk5vdGlm
aWNhdGlvbkNhbGxiYWNrcygpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDogQWRkIHRlc3RSdW5uZXIuZHVtcFdlYk5v
dGlmaWNhdGlvbkNhbGxiYWNrcygpLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6d2ViTm90aWZp
Y2F0aW9uVG9TdHJpbmcpOiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBvdXRwdXRzIG5vdGlmaWNhdGlv
biBkYXRhLgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxl
UGFnZSk6IERlZmluZWQgaW5qZWN0ZWQgYnVuZGxlIG5vdGlmaWNhdGlvbiBjbGllbnQuCisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkU2hvd05vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xpY2tOb3RpZmljYXRpb24pOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsb3NlTm90aWZpY2F0aW9uKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGVQYWdlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcyk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNob3VsZER1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MpOgorICAgICAg
ICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0KTogQXV0b21hdGljYWxseSBhY2NlcHQgcGVybWlzc2lvbiByZXF1ZXN0cy4K
KyAgICAgICAgKFdUUik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAoVGVzdENvbnRyb2xsZXIpOgorCisyMDEyLTA4LTI2ICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrIHRvd2FyZHMgV2ViS2l0VGVzdFJ1bm5l
ciBzaG91bGQgc3VwcG9ydCBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Nzk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAz
NTc2MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFkZGl0aW9uYWwgb3V0cHV0IHdoZW4gcnVubmluZyB0ZXN0LCBpZiB0ZXN0UnVubmVyLmR1
bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MoKSBpcyBjYWxsZWQuCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChkdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzQ2Fs
bGJhY2spOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAg
ICAgICAgKFRlc3RSdW5uZXI6OmR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3MpOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6c2V0RHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbToKKyAg
ICAgICAgKC1bV2ViTm90aWZpY2F0aW9uIF9kcnRfZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RS
ZXN1bHRdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHdlYlZpZXc6
ZGlkU2hvd05vdGlmaWNhdGlvbjpdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyIHdlYlZpZXc6ZGlkQ2xpY2tOb3RpZmljYXRpb246XSk6CisgICAgICAgICgtW01vY2tX
ZWJOb3RpZmljYXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZENsb3NlTm90aWZpY2F0aW9uczpdKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1b
VUlEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RGcm9t
T3JpZ2luOmxpc3RlbmVyOl0pOgorCisyMDEyLTA4LTI0ICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IG5vdGlmaWNh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
OTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM1NzYxOD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgc2FtZSBzZXQgb2YgZnVuY3Rp
b25zIGluIERSVCBoZXJlLiBMZWdhY3kgQVBJcyB3aWxsIG5vdCBiZSBzdXBwb3J0ZWQsIHNpbmNl
IG1hbnkgb2YgdGhlIHRlc3RzIGFyZSBza2lwcGVkCisgICAgICAgIG9uIHBvcnRzIHRoYXQgZG8g
dGVzdCBub3RpZmljYXRpb25zLCBhbmQgdGhlIGlzc3VlIHdpdGggdXNpbmcgZmlsZTovLyBhcyB0
aGUgb3JpZ2luIG1lYW5zIGEgbG90IG9mIHRoZSBwZXJtaXNzaW9ucworICAgICAgICB0ZXN0cyB3
b24ndCB3b3JrLiBCdWdzIDgxMDQ4IGFuZCA4MTY5NyB3aWxsIHRyYWNrIG1pZ3JhdGluZyB0aGUg
ZXhpc3RpbmcgdGVzdHMgdG8gdXNlIHRoZSBuZXcgdGVzdFJ1bm5lciBBUEksIGFuZCBtb3ZlCisg
ICAgICAgIHRoZSB0ZXN0cyB0byBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMuCisKKyAgICAgICAg
UGVybWlzc2lvbnMgd2lsbCBiZSBoYW5kbGVkIG9ubHkgaW4gdGhlIGluamVjdGVkIGJ1bmRsZS4g
VGhpcyBhbGxvd3MgdGVzdHMgdG8gc2V0IHBlcm1pc3Npb24gc3luY2hyb25vdXNseSwgYW5kIG5v
dAorICAgICAgICByZXF1aXJlIGEgY2hhaW4gb2Ygc2V0VGltZW91dCgpJ3Mgd2hlbiB3cml0aW5n
IGEgbm90aWZpY2F0aW9uIHRlc3QuIENsaWNraW5nIGEgbm90aWZpY2F0aW9uLCBob3dldmVyLCBz
aG91bGQKKyAgICAgICAgYmUgaW52b2tlZCBmcm9tIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OiBXaGVuIHRvbGQgdG8gIlJlc2V0IiwgY2xlYXIgb3V0IGFsbCBvZiB0aGUgcGVybWlzc2lvbnMu
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpwb3N0U2ltdWxhdGVXZWJOb3RpZmljYXRp
b25DbGljayk6IFRlbGwgdGhlIGJ1bmRsZSBjbGllbnQgdG8gc2ltdWxhdGUgYSBjbGljayBiYXNl
ZCBvbiB0aGUKKyAgICAgICAgbm90aWZpY2F0aW9uJ3MgaW50ZXJuYWwgSUQuCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbik6IE1h
bnVhbGx5IHNldCB0aGUgcGVybWlzc2lvbiB1c2luZyBXS0J1bmRsZSBTUEkuCisgICAgICAgIChX
VFI6OlRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKTogTWFudWFsbHkg
c2V0IHRoZSBwZXJtaXNzaW9uIHVzaW5nIFdLQnVuZGxlIFNQSS4KKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTogUG9zdCBhIG1l
c3NhZ2UgdGhyb3VnaCB0aGUgaW5qZWN0ZWQgYnVuZGxlLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCisgICAgICAgIEJlY2F1c2Ugc3Vw
cG9ydGluZyB3ZWIgbm90aWZpY2F0aW9ucyBnb2VzIGJleW9uZCBhIGNvdXBsZSBmdW5jdGlvbnMs
IG1vdmUgYWxsIG9mIHRoZSBsb2dpYyBpbnRvIGEgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIKKyAg
ICAgICAgY2xhc3MuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21J
bmplY3RlZEJ1bmRsZSk6IFdoZW4gdGhlIGluamVjdGVkIGJ1bmRsZSBzZW5kcyBhIG1lc3NhZ2Ug
dG8gc2ltdWxhdGUgYSBjbGljaywKKyAgICAgICAgVGVzdEludm9jYXRpb24gZm9yd2FyZHMgdGhh
dCByZXF1ZXN0IHRvIHRoZSBUZXN0Q29udHJvbGxlci4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUpOiBTZXQgdGhlIHByb3ZpZGVyLgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyk6IFRlbGwgdGhlIHByb3ZpZGVyIHRvIHJl
c2V0LgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRp
b25DbGljayk6IFRlbGwgdGhlIHByb3ZpZGVyIHRvIHNpbXVsYXRlIGEgdXNlciBjbGlja2luZyBv
biBhIHBsYXRmb3JtIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6IEhvbGRzIGFuIGluc3RhbmNlIHRvIHRoZSBwcm92aWRlci4KKworICAg
ICAgICBUaGUgcHJvdmlkZXIgbWFpbnRhaW5zIGEgcG9pbnRlciB0byBvbmUgbm90aWZpY2F0aW9u
IG1hbmFnZXIgKHByZXN1bWFibHkgdGhlIHdlYiBwcm9jZXNzIGFzc29jaWF0ZWQgd2l0aCBXVFIp
LCBhbmQgYSBzZXQKKyAgICAgICAgb2Ygbm90aWZpY2F0aW9uIElEcyB0aGF0IGhhdmUgYmVlbiAi
c2hvd24iIGJ5IHRoZSBwbGF0Zm9ybS4gVGhpcyBhbGxvd3MgdXMgdG8gc2ltdWxhdGUgYSBjbGlj
ayBvbiBhIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXI6OnNob3dXZWJOb3RpZmljYXRpb24pOiBBZGRzIHRoZSBub3RpZmljYXRp
b24gdG8gc2V0IG9mIHNob3duIG5vdGlmaWNhdGlvbnMuIE5vdGlmaWVzIHByb3ZpZGVyIHRoYXQK
KyAgICAgICAgdGhlIG5vdGlmaWNhdGlvbiBnb3Qgc2hvd24uCisgICAgICAgIChXVFI6OldlYk5v
dGlmaWNhdGlvblByb3ZpZGVyOjpjbG9zZVdlYk5vdGlmaWNhdGlvbik6IFJlbW92ZXMgdGhlIG5v
dGlmaWNhdGlvbiBmcm9tIHRoZSBzZXQuIE5vdGlmaWVzIHByb3ZpZGVyIHRoYXQgdGhlIG5vdGlm
aWNhdGlvbgorICAgICAgICBnb3QgY2xvc2VkLgorICAgICAgICAoV1RSOjpXZWJOb3RpZmljYXRp
b25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcik6IE1haW50YWlucyBvbmUgbWFuYWdl
ciwgd2hpY2ggaXMgZmluZSBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyAgICAgICAgKFdUUjo6V2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIpOiBNYWludGFp
bnMgb25lIG1hbmFnZXIuCisgICAgICAgIChXVFI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpu
b3RpZmljYXRpb25QZXJtaXNzaW9ucyk6IFdoZW4gdGhlIHdlYiBwcm9jZXNzIHN0YXJ0cywgaXQg
bWFpbnRhaW5zIGFuIGluaXRpYWwgc2V0IG9mIGtub3duCisgICAgICAgIHBlcm1pc3Npb25zLiBG
b3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgYWx3YXlzIHdhbnQgdGhpcyBzZXQgdG8gYmUgZW1wdHku
CisgICAgICAgIChXVFI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaW11bGF0ZVdlYk5vdGlm
aWNhdGlvbkNsaWNrKTogTm90aWZpZXMgcHJvdmlkZXIgdGhhdCB0aGUgbm90aWZpY2F0aW9uIGdv
dCAiY2xpY2tlZCIuCisgICAgICAgIChXVFI6OldlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpyZXNl
dCk6IFRvIHJlc2V0IHRoZSBzdGF0ZSwgd2UgcHJldGVuZCB0aGF0IHdlIGNsb3NlZCBhbGwgb2Yg
dGhlIHBsYXRmb3JtIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLgorCisyMDEyLTA4LTI0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBXb3JrIHRvd2FyZHMgV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9y
dCBub3RpZmljYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03Nzk2OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNTc2MTg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBs
ZW1lbnRzIHRoZSBzdHVicyBmb3Igd2ViIG5vdGlmaWNhdGlvbiBzdXBwb3J0IG9uIERSVC4gQXNz
dW1lIHRoYXQgd2hlbiBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBpcyBjYWxsZWQs
CisgICAgICAgIHRoZSB1c2VyIGFsd2F5cyBjaG9vc2VzIHRvIGFsbG93IGl0LiBUaGlzIGNhbiBi
ZSBlYXNpbHkgb3ZlcnJpZGRlbiBpbiBsYXlvdXQgdGVzdHMgd2l0aCB0ZXN0UnVubmVyLmRlbnlX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKCkKKyAgICAgICAgd2hlbiBuZWVkZWQuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBBZGQgTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdBbmRP
ZmZzY3JlZW5XaW5kb3cpOiBTZXQgTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNpbmdsZXRv
biBhcyB0aGUgcHJvdmlkZXIgZm9yIHRoZSB3ZWIgdmlldy4KKyAgICAgICAgKHJlc2V0V2ViVmll
d1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6IE1ha2Ugc3VyZSB0byByZXNldCB0aGUg
cHJvdmlkZXIncyBzdGF0ZSBiZXR3ZWVuIGVhY2ggdGVzdC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmg6IEFkZGVkLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW06IEFkZGVk
LgorICAgICAgICAoK1tNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgc2hhcmVkXSk6CisgICAg
ICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBpbml0XSk6CisgICAgICAgICgtW01v
Y2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciByZWdpc3RlcldlYlZpZXc6XSk6CisgICAgICAgICgt
W01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciB1bnJlZ2lzdGVyV2ViVmlldzpdKToKKyAgICAg
ICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNob3dOb3RpZmljYXRpb246ZnJvbVdl
YlZpZXc6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBjYW5jZWxO
b3RpZmljYXRpb246XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBu
b3RpZmljYXRpb25EZXN0cm95ZWQ6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Q
cm92aWRlciBjbGVhck5vdGlmaWNhdGlvbnM6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmlj
YXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZFNob3dOb3RpZmljYXRpb246XSk6CisgICAgICAgICgt
W01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciB3ZWJWaWV3OmRpZENsaWNrTm90aWZpY2F0aW9u
Ol0pOgorICAgICAgICAoLVtNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgd2ViVmlldzpkaWRD
bG9zZU5vdGlmaWNhdGlvbnM6XSk6CisgICAgICAgICgtW01vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlciBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrOl0pOgorICAgICAgICAoLVtNb2NrV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja1dpdGhUaXRs
ZTpdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHBvbGljeUZvck9y
aWdpbjpdKToKKyAgICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNldFdlYk5v
dGlmaWNhdGlvbk9yaWdpbjpwZXJtaXNzaW9uOl0pOgorICAgICAgICAoLVtNb2NrV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnNdKToKKyAg
ICAgICAgKC1bTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHJlc2V0XSk6IFJlbW92ZSBhbGwg
bWFwcGluZ3MgYW5kIHBlcm1pc3Npb25zLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25zKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2spOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmlj
YXRpb25DbGljayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06
CisgICAgICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25SZXF1ZXN0RnJvbU9yaWdpbjpsaXN0ZW5lcjpdKTogQXNzdW1lIHdoZW4gYXNrZWQsIHRoZSB1
c2VyIGFsbG93cyB3ZWIgbm90aWZpY2F0aW9ucy4KKworMjAxMi0wOC0yNCAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgV29yayB0b3dhcmRzIFdlYktpdFRlc3RSdW5uZXIg
c2hvdWxkIHN1cHBvcnQgbm90aWZpY2F0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc5NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzU3
NjE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNv
bWUgb2YgdGhlIGxlZ2FjeSBBUElzIGFyZSBsZXNzIHRoYW4gaWRlYWwsIGFuZCBub3QgdGVuYWJs
ZSB3aXRoIHRoZSBXVFIgaW5mcmFzdHJ1Y3R1cmUuCisgICAgICAgIFRoaXMgZmlyc3QgcGF0Y2gg
cmVuYW1lcyB0aGUgVGVzdFJ1bm5lciBjYWxscyB0byB1c2UgdGhlIHRlcm0gIndlYiBub3RpZmlj
YXRpb25zIiBpbnN0ZWFkIG9mCisgICAgICAgICJkZXNrdG9wIG5vdGlmaWNhdGlvbnMiLCBkZXBy
ZWNhdGVzIGEgY291cGxlIEFQSSBjYWxscyB0aGF0IGFyZSBub3QgdXNlZCBieSBhbnlvbmUsIGFu
ZCBhZGRzCisgICAgICAgIGFkZGl0aW9uYWwgY2FsbHMgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhl
IHRlc3RzIHRoYXQgdGVzdCB0aGUgc3RhbmRhcmQgQVBJLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6IEZvciBuYW1pbmcgY29u
c2lzdGVuY3ksIHJlbmFtZSBhIGNvdXBsZSBtZW1iZXIgdmFyaWFibGVzLiBSZW1vdmUgdW51c2Vk
IGNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oKQorICAgICAgICBhbmQgYXJlRGVz
a3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQoKS4gUmVtb3ZlIG9yaWdp
biBtYXBwaW5nIHNpbmNlIGVhY2ggcG9ydCBpbXBsZW1lbnRzIGl0cyBvd24gc29sdXRpb24uCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6IFB1c2ggZ3JhbnRXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKCkgdG8gaW5kaXZpZHVhbCBwb3J0cy4KKyAgICAgICAgKFRlc3RS
dW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoaWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzQ2FsbGJhY2spOiBSZW5hbWVkLgorICAgICAgICAoc2ltdWxhdGVM
ZWdhY3lXZWJOb3RpZmljYXRpb25DbGlja0NhbGxiYWNrKTogUmVuYW1lZC4KKyAgICAgICAgKGdy
YW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKTogUmVuYW1lZC4KKyAgICAgICAg
KGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAg
KHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zQ2FsbGJhY2spOiBBZGRlZC4KKyAg
ICAgICAgKHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayk6IEFkZGVkLgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKFRlc3RSdW5uZXI6
Omlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIpOiBBZGRlZCBiaW5kaW5ncyBmb3IgbmV3IEFQ
SXMuCisgICAgICAgIChEUlRUZXN0UnVubmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24pOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24pOiBTdHViLgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbnMpOiBTdHViLgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayk6IFN0dWIuCisgICAgICAgIChEUlRUZXN0UnVubmVyOjpzaW11
bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKwor
ICAgICAgICBBZGRlZCBzdHVicy4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwv
VGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5u
ZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1t
OiBMYXRlciBwYXRjaCB3aWxsIGNvbnRhaW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBBUEkuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcDogQWRkZWQgUXQtYmFz
ZWQgc3R1YnMuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
OgorCiAyMDEyLTA4LTIzICBXZWkgSmlhICA8d2ppYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
Y3JlYXRlIGRpZmZlcmVudCBXZWJLaXQ6OldlYk1lZGlhUGxheWVyIGJhc2VkIG9uIFVSTApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzJhYzY3OS4uMWY4YzVlMyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02MCw2ICs2MCw4IEBACiAJCTJENDAzRjA2MTUwODcxRjkwMDUz
NThEMiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODRGNjA4OTA4QjEzNkRBMDBFOTc0NUYgLyogQ29jb2EuZnJhbWV3
b3JrICovOyB9OwogCQkyRDQwM0YwODE1MDg3MUY5MDA1MzU4RDIgLyogT3BlbkdMLmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIzQkNC
ODhGMEVBNTc2MjMwMDNDNjI4OSAvKiBPcGVuR0wuZnJhbWV3b3JrICovOyB9OwogCQkyRDQwM0Yx
QjE1MDg3MjA5MDA1MzU4RDIgLyogTGF5b3V0VGVzdEhlbHBlci5tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0MDNFQTIxNTA4NzE0MjAwNTM1OEQyIC8q
IExheW91dFRlc3RIZWxwZXIubSAqLzsgfTsKKwkJMzExMTdCM0MxNUQ5QTU2QTAwMTYzQkM4IC8q
IE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzExMTdCM0ExNUQ5QTU2QTAwMTYzQkM4IC8qIE1vY2tXZWJO
b3RpZmljYXRpb25Qcm92aWRlci5oICovOyB9OworCQkzMTExN0IzRDE1RDlBNTZBMDAxNjNCQzgg
LyogTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzExMTdCM0IxNUQ5QTU2QTAwMTYzQkM4IC8qIE1vY2tX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbSAqLzsgfTsKIAkJM0E1NjI2Q0IxMzFDQTAyQTAwMkJF
NkQ5IC8qIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQTU2MjZDMTEzMUM4QjE3MDAyQkU2RDkgLyogU3RvcmFn
ZVRyYWNrZXJEZWxlZ2F0ZS5tbSAqLzsgfTsKIAkJM0E1NjI2Q0MxMzFDQTAzNjAwMkJFNkQ5IC8q
IFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDNBNTYyNkMwMTMxQzhCMTcwMDJCRTZEOSAvKiBTdG9yYWdlVHJhY2tl
ckRlbGVnYXRlLmggKi87IH07CiAJCTQxN0RBQTFEMTM3QjNFMjQwMDdDNTdGQiAvKiBXZWJDb3Jl
VGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxN0RBQTFDMTM3QjNFMjQwMDdDNTdGQiAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsg
fTsKQEAgLTI2Myw2ICsyNjUsOCBAQAogCQkyOUNGQkEyRDEyMjczQTEwMDBCQzMwQzAgLyogQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbTsgcGF0aCA9IG1hYy9BY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ0MDNFQTIxNTA4NzE0MjAwNTM1OEQyIC8qIExheW91dFRlc3RIZWxwZXIubSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5vYmpjOyBuYW1lID0gTGF5b3V0VGVzdEhlbHBlci5tOyBwYXRoID0gbWFj
L0xheW91dFRlc3RIZWxwZXIubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ0MDNG
MTkxNTA4NzFGOTAwNTM1OEQyIC8qIExheW91dFRlc3RIZWxwZXIgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJs
ZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IExheW91dFRlc3RIZWxwZXI7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTMxMTE3QjNBMTVEOUE1NkEwMDE2M0JDOCAv
KiBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHBhdGggPSBtYWMvTW9ja1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
MTE3QjNCMTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBNb2NrV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIubW07IHBhdGggPSBtYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMkE3MEFBQjAzNzA1RTFGMDBDOTE3ODMg
LyogRHVtcFJlbmRlclRyZWVQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRHVtcFJlbmRlclRyZWVQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Mzc1RjA5NzEwREFDM0NCNjAwQzhCNEU1IC8qIFdlYktpdFdlaWdodFdhdGNoZXIxMDAudHRmICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFt
ZSA9IFdlYktpdFdlaWdodFdhdGNoZXIxMDAudHRmOyBwYXRoID0gZm9udHMvV2ViS2l0V2VpZ2h0
V2F0Y2hlcjEwMC50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3NUYwOTcyMERB
QzNDQjYwMEM4QjRFNSAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBXZWJLaXRX
ZWlnaHRXYXRjaGVyMjAwLnR0ZjsgcGF0aCA9IGZvbnRzL1dlYktpdFdlaWdodFdhdGNoZXIyMDAu
dHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDgyLDExICs0ODYsMTEgQEAKIAkJ
MTQyMkEyNjkwQUY2RjQ1MjAwRTFBODgzIC8qIENvbnRyb2xsZXJzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk4MDA0NUFFQjE0NzcxOEU3MDA4MjkwQTgg
LyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLywKLQkJCQk4MDA0NUFFQzE0
NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gKi8s
CiAJCQkJQkNEMDhCMzkwRTEwNTdFRjAwQTdEMEMxIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcCAqLywKIAkJCQlCQ0QwOEE1ODBFMTA0OTZCMDBBN0QwQzEgLyogQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaCAqLywKIAkJCQlCQ0QwOEI3MDBFMTA1OUQyMDBBN0QwQzEgLyogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0gKi8sCisJCQkJODAwNDVBRUIxNDc3MThFNzAwODI5MEE4IC8q
IEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmggKi8sCisJCQkJODAwNDVBRUMxNDc3
MThFNzAwODI5MEE4IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICovLAog
CQkJCTI5Q0ZCQTBGMTIyNzM2RTYwMEJDMzBDMCAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5j
cHAgKi8sCiAJCQkJMjlDRkJBMEUxMjI3MzZFNjAwQkMzMEMwIC8qIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyLmggKi8sCiAJCQkJMjlDRkJBMkQxMjI3M0ExMDAwQkMzMEMwIC8qIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyTWFjLm1tICovLApAQCAtNTAwLDE1ICs1MDQsMTcgQEAKIAkJCQlCQ0Y2QzY0
RjBDOThFOUMwMDBBQzA2M0UgLyogR0NDb250cm9sbGVyLmNwcCAqLywKIAkJCQkxNDc3MEZFMDBB
MjJBREY3MDA5MzQyRUUgLyogR0NDb250cm9sbGVyLmggKi8sCiAJCQkJQkNBMThCMjEwQzlCMDE0
QjAwMTE0MzY5IC8qIEdDQ29udHJvbGxlck1hYy5tbSAqLywKLQkJCQlCQzAxMzFEODBDOTc3MjAx
MDA4NzMxN0QgLyogVGVzdFJ1bm5lci5jcHAgKi8sCi0JCQkJQkMwMTMxRDkwQzk3NzIwMTAwODcz
MTdEIC8qIFRlc3RSdW5uZXIuaCAqLywKLQkJCQlCQ0ExOEIyMjBDOUIwMTRCMDAxMTQzNjkgLyog
VGVzdFJ1bm5lck1hYy5tbSAqLywKIAkJCQlFMUI3ODA4NTExQUYxNjQzMDA3RTFCQzIgLyogTW9j
a0dlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQlFMUI3ODA4NzExQUYxNjY5MDA3RTFCQzIg
LyogTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIubW0gKi8sCisJCQkJMzExMTdCM0ExNUQ5QTU2QTAw
MTYzQkM4IC8qIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJCTMxMTE3QjNC
MTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIubW0gKi8sCiAJ
CQkJQkNBMThCNkQwQzlCMDhEQjAwMTE0MzY5IC8qIE5hdmlnYXRpb25Db250cm9sbGVyLmggKi8s
CiAJCQkJQkNBMThCNkUwQzlCMDhEQjAwMTE0MzY5IC8qIE5hdmlnYXRpb25Db250cm9sbGVyLm0g
Ki8sCiAJCQkJQkNBMThCMkYwQzlCMDFCNDAwMTE0MzY5IC8qIE9iakNDb250cm9sbGVyLmggKi8s
CiAJCQkJQkNBMThCMzAwQzlCMDFCNDAwMTE0MzY5IC8qIE9iakNDb250cm9sbGVyLm0gKi8sCisJ
CQkJQkMwMTMxRDgwQzk3NzIwMTAwODczMTdEIC8qIFRlc3RSdW5uZXIuY3BwICovLAorCQkJCUJD
MDEzMUQ5MEM5NzcyMDEwMDg3MzE3RCAvKiBUZXN0UnVubmVyLmggKi8sCisJCQkJQkNBMThCMjIw
QzlCMDE0QjAwMTE0MzY5IC8qIFRlc3RSdW5uZXJNYWMubW0gKi8sCiAJCQkJQkNBMThCM0EwQzlC
MDI0OTAwMTE0MzY5IC8qIFRleHRJbnB1dENvbnRyb2xsZXIuaCAqLywKIAkJCQlCQ0ExOEI0ODBD
OUIwMkM0MDAxMTQzNjkgLyogVGV4dElucHV0Q29udHJvbGxlci5tICovLAogCQkJKTsKQEAgLTcz
Niw2ICs3NDIsNyBAQAogCQkJCTNBNTYyNkNDMTMxQ0EwMzYwMDJCRTZEOSAvKiBTdG9yYWdlVHJh
Y2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTdEQUExRDEzN0IzRTI0MDA3QzU3
RkIgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MDA0NUFFRDE0
NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMxMTE3QjNDMTVEOUE1NkEwMDE2M0JDOCAvKiBNb2NrV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtOTY3LDYgKzk3NCw3IEBACiAJCQkJ
M0E1NjI2Q0IxMzFDQTAyQTAwMkJFNkQ5IC8qIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4MDA0NUFFRTE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk5ODMwRjMxRjE1Qzgx
MTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMzExMTdCM0QxNUQ5QTU2QTAwMTYzQkM4IC8qIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCAy
MjliZjA2Li5lNmY5YjkwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNjks
NiArNjksNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0
UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZQogICAgICwgbV9kdW1wSWNvbkNoYW5n
ZXMoZmFsc2UpCiAgICAgLCBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjayhmYWxzZSkKICAgICAs
IG1fZHVtcFdpbGxDYWNoZVJlc3BvbnNlKGZhbHNlKQorICAgICwgbV9kdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9nZW5lcmF0ZVBpeGVsUmVzdWx0cyh0cnVlKQog
ICAgICwgbV9jYWxsQ2xvc2VPbldlYlZpZXdzKHRydWUpCiAgICAgLCBtX2Nhbk9wZW5XaW5kb3dz
KGZhbHNlKQpAQCAtOTIsNyArOTMsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKGNvbnN0IHN0
ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZQogICAgICwg
bV91c2VEZWZlcnJlZEZyYW1lTG9hZGluZyhmYWxzZSkKICAgICAsIG1fc2hvdWxkUGFpbnRCcm9r
ZW5JbWFnZSh0cnVlKQogICAgICwgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZChmYWxzZSkKLSAgICAsIG1fYXJlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0c0lnbm9yZWQoZmFsc2UpCisgICAgLCBtX2FyZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQoZmFsc2UpCiAgICAgLCBtX2N1c3RvbUZ1bGxTY3JlZW5C
ZWhhdmlvcihmYWxzZSkgCiAgICAgLCBtX3Rlc3RQYXRoT3JVUkwodGVzdFBhdGhPclVSTCkKICAg
ICAsIG1fZXhwZWN0ZWRQaXhlbEhhc2goZXhwZWN0ZWRQaXhlbEhhc2gpCkBAIC0yNTgsNiArMjU5
LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBXaWxsQ2FjaGVSZXNwb25zZUNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmpl
Y3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXREdW1wV2ViTm90
aWZpY2F0aW9uQ2FsbGJhY2tzKHRydWUpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgcGF0aFRvTG9jYWxSZXNvdXJjZUNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDEpCkBAIC02NDgsMTkgKzY1Niw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGdvQmFja0Nh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPCiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIC8vIEhhcyBXaW5kb3dzIGltcGxlbWVudGF0
aW9uCi0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3Rh
dGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0K
LSAgICBjb250cm9sbGVyLT5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBOVUxMKSk7Ci0gICAgICAgIAot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpT
VmFsdWVSZWYgaXNDb21tYW5kRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKIHsKICAgICAvLyBIYXMgTWFjIGltcGxlbWVudGF0aW9uLgpAQCAtMjEzNCwxOCArMjEy
OSwxOCBAQCBzdGF0aWMgYm9vbCBzZXRHbG9iYWxGbGFnQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0
YXRpYyBKU1ZhbHVlUmVmIGlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJl
ZiBpZ25vcmVMZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdHNDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwotICAgIGNvbnRyb2xsZXItPmlnbm9yZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdHMoKTsKKyAgICBjb250cm9sbGVyLT5pZ25vcmVMZWdhY3lXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHMoKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlv
bkNsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGljIEpTVmFs
dWVSZWYgc2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGlja0NhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3Rh
dGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7IAog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiB0aXRsZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwotICAgIGNvbnRyb2xsZXIt
PnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKHRpdGxlLmdldCgpKTsKKyAgICBjb250
cm9sbGVyLT5zaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKHRpdGxlLmdldCgpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIyMDAs
NiArMjE5NSw1OSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9yYWdlRGF0YWJhc2VJZGxlSW50
ZXJ2YWxDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSgogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ3JhbnRXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0
YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwor
CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9yaWdpbihBZG9wdCwgSlNWYWx1ZVRvU3Ry
aW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCgh
KmV4Y2VwdGlvbik7CisgICAgY29udHJvbGxlci0+Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKG9yaWdpbi5nZXQoKSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7Cit9CisKKworc3RhdGljIEpTVmFsdWVSZWYgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFy
Z3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CisKKyAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1
bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gb3JpZ2luKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQs
IGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKyAg
ICBjb250cm9sbGVyLT5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmlnaW4uZ2V0KCkp
OworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCisKK3N0
YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFRlc3RSdW5uZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNP
YmplY3QpKTsKKworICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9
CisKKworc3RhdGljIEpTVmFsdWVSZWYgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlja0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgV2luZG93cyBp
bXBsZW1lbnRhdGlvbgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOworCisgICAgY29udHJvbGxlci0+c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhh
cmd1bWVudHNbMF0pOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OworfQorCiBzdGF0aWMgdm9pZCB0ZXN0UnVubmVyT2JqZWN0RmluYWxpemUoSlNPYmplY3RSZWYg
b2JqZWN0KQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0
UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVjdCkpOwpAQCAtMjI5Myw2ICsyMzQxLDcg
QEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAg
ICAgeyAiZHVtcFRpdGxlQ2hhbmdlcyIsIGR1bXBUaXRsZUNoYW5nZXNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJkdW1wSWNvbkNoYW5nZXMiLCBkdW1wSWNvbkNoYW5nZXNDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJkdW1wV2lsbENhY2hlUmVzcG9uc2UiLCBkdW1wV2lsbENhY2hl
UmVzcG9uc2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJkdW1wV2ViTm90aWZpY2F0aW9u
Q2FsbGJhY2tzIiwgZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgImVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZCIsIGVs
ZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImVuY29kZUhvc3ROYW1lIiwgZW5jb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgZXZhbHVhdGVJbldlYkluc3Bl
Y3RvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCkBAIC0yMzAyLDggKzIzNTEsNyBAQCBKU1N0YXRpY0Z1bmN0
aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJmaW5kU3RyaW5n
IiwgZmluZFN0cmluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm9yaWdpbnNXaXRoQXBw
bGljYXRpb25DYWNoZSIsIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgImdvQmFjayIsIGdvQmFja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAotICAgICAg
ICB7ICJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnREZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAotICAgICAgICB7ICJpZ25vcmVE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzIiwgaWdub3JlRGVza3RvcE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImln
bm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyIsIGlnbm9yZUxlZ2Fj
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImlzQ29tbWFuZEVuYWJsZWQiLCBpc0NvbW1hbmRFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAia2VlcFdlYkhpc3RvcnkiLCBrZWVwV2ViSGlzdG9yeUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImxheWVyVHJlZUFzVGV4dCIsIGxheWVyVHJlZUFzVGV4dENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCkBAIC0yMzkyLDcgKzI0NDAsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRYU1NBdWRpdG9yRW5hYmxl
ZCIsIHNldFhTU0F1ZGl0b3JFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCBzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNob3dXZWJJbnNwZWN0
b3IiLCBzaG93V2ViSW5zcGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2ltdWxh
dGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2siLCBzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25D
bGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNpbXVsYXRlTGVnYWN5V2ViTm90aWZp
Y2F0aW9uQ2xpY2siLCBzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAidGVzdE9uc2NyZWVuIiwgdGVzdE9uc2NyZWVuQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAidGVzdFJlcGFpbnQiLCB0ZXN0UmVwYWludENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgIndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSIsIHdhaXRGb3JQb2xpY3lE
ZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkBAIC0yNDE3LDYgKzI0NjUsMTAgQEAgSlNTdGF0aWNG
dW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAicHJlY2lz
ZVRpbWUiLCBwcmVjaXNlVGltZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEhhc0N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvciIsIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvckNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZh
bCIsIHNldFN0b3JhZ2VEYXRhYmFzZUlkbGVJbnRlcnZhbENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgImdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsIGdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImRlbnlXZWJOb3RpZmlj
YXRpb25QZXJtaXNzaW9uIiwgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyIs
IHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAic2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayIsIHNpbXVsYXRlV2ViTm90aWZp
Y2F0aW9uQ2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07
CiAKQEAgLTI0NTgsMjYgKzI1MTAsOSBAQCB2b2lkIFRlc3RSdW5uZXI6OnF1ZXVlUmVsb2FkKCkK
ICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5xdWV1ZShuZXcgUmVsb2FkSXRlbSk7CiB9CiAKLXZv
aWQgVGVzdFJ1bm5lcjo6Z3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmlu
Z1JlZiBvcmlnaW4pCi17Ci0gICAgbV9kZXNrdG9wTm90aWZpY2F0aW9uQWxsb3dlZE9yaWdpbnMu
cHVzaF9iYWNrKEpTU3RyaW5nUmV0YWluKG9yaWdpbikpOwotfQotCi1ib29sIFRlc3RSdW5uZXI6
OmNoZWNrRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKQot
ewotICAgIHN0ZDo6dmVjdG9yPEpTU3RyaW5nUmVmPjo6aXRlcmF0b3IgaTsKLSAgICBmb3IgKGkg
PSBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxvd2VkT3JpZ2lucy5iZWdpbigpOwotICAgICAgICAg
aSAhPSBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxvd2VkT3JpZ2lucy5lbmQoKTsKLSAgICAgICAg
ICsraSkgewotICAgICAgICBpZiAoSlNTdHJpbmdJc0VxdWFsKCppLCBvcmlnaW4pKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBU
ZXN0UnVubmVyOjppZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCkK
K3ZvaWQgVGVzdFJ1bm5lcjo6aWdub3JlTGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RzKCkKIHsKLSAgICBtX2FyZURlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHNJZ25vcmVkID0gZmFsc2U7CisgICAgbV9hcmVMZWdhY3lXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdHNJZ25vcmVkID0gZmFsc2U7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6d2FpdFRv
RHVtcFdhdGNoZG9nVGltZXJGaXJlZCgpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXgg
ODg1YjFkZS4uZmVkZGNhZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMTM2LDEx
ICsxMzYsMTIgQEAgcHVibGljOgogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9y
bU5hbWUoKSBjb25zdDsKICNlbmRpZgogCi0gICAgdm9pZCBncmFudERlc2t0b3BOb3RpZmljYXRp
b25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbik7Ci0gICAgYm9vbCBjaGVja0Rlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbik7Ci0gICAgdm9pZCBpZ25v
cmVEZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7Ci0gICAgYm9vbCBhcmVE
ZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzSWdub3JlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYXJlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7IH0K
LSAgICB2b2lkIHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRp
dGxlKTsKKyAgICB2b2lkIGlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0cygpOworICAgIHZvaWQgc2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhKU1N0
cmluZ1JlZiB0aXRsZSk7CisgICAgdm9pZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24o
SlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKEpTU3RyaW5nUmVmIG9yaWdpbik7CisgICAgdm9pZCByZW1vdmVBbGxXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9ucygpOworICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhK
U1ZhbHVlUmVmIG5vdGlmaWNhdGlvbik7CiAKICAgICBib29sIGVsZW1lbnREb2VzQXV0b0NvbXBs
ZXRlRm9yRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBpZCk7CiAKQEAgLTIxOCw3ICsyMTksMTAg
QEAgcHVibGljOgogICAgIAogICAgIGJvb2wgZHVtcFdpbGxDYWNoZVJlc3BvbnNlKCkgY29uc3Qg
eyByZXR1cm4gbV9kdW1wV2lsbENhY2hlUmVzcG9uc2U7IH0KICAgICB2b2lkIHNldER1bXBXaWxs
Q2FjaGVSZXNwb25zZShib29sIGR1bXBXaWxsQ2FjaGVSZXNwb25zZSkgeyBtX2R1bXBXaWxsQ2Fj
aGVSZXNwb25zZSA9IGR1bXBXaWxsQ2FjaGVSZXNwb25zZTsgfQotICAgIAorCisgICAgYm9vbCBk
dW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wV2ViTm90
aWZpY2F0aW9uQ2FsbGJhY2tzO30KKyAgICB2b2lkIHNldER1bXBXZWJOb3RpZmljYXRpb25DYWxs
YmFja3MoYm9vbCBkdW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzKSB7IG1fZHVtcFdlYk5vdGlm
aWNhdGlvbkNhbGxiYWNrcyA9IGR1bXBXZWJOb3RpZmljYXRpb25DYWxsYmFja3M7IH0KKwogICAg
IGJvb2wgY2FsbENsb3NlT25XZWJWaWV3cygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbENsb3NlT25X
ZWJWaWV3czsgfQogICAgIHZvaWQgc2V0Q2FsbENsb3NlT25XZWJWaWV3cyhib29sIGNhbGxDbG9z
ZU9uV2ViVmlld3MpIHsgbV9jYWxsQ2xvc2VPbldlYlZpZXdzID0gY2FsbENsb3NlT25XZWJWaWV3
czsgfQogCkBAIC0zOTQsNiArMzk4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcEljb25D
aGFuZ2VzOwogICAgIGJvb2wgbV9kdW1wVmlzaXRlZExpbmtzQ2FsbGJhY2s7CiAgICAgYm9vbCBt
X2R1bXBXaWxsQ2FjaGVSZXNwb25zZTsKKyAgICBib29sIG1fZHVtcFdlYk5vdGlmaWNhdGlvbkNh
bGxiYWNrczsKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHM7CiAgICAgYm9vbCBtX2Nh
bGxDbG9zZU9uV2ViVmlld3M7CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzOwpAQCAtNDE3LDcg
KzQyMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VzZURlZmVycmVkRnJhbWVMb2FkaW5nOwog
ICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbkltYWdlOwogICAgIGJvb2wgbV9zaG91bGRTdGF5
T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsKLSAgICBib29sIG1fYXJlRGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CisgICAgYm9vbCBtX2FyZUxlZ2Fj
eVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0c0lnbm9yZWQ7CiAgICAgYm9vbCBtX2N1
c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcjsKIAogICAgIHN0ZDo6c3RyaW5nIG1fYXV0aGVudGljYXRp
b25Vc2VybmFtZTsKQEAgLTQzMCw5ICs0MzUsNiBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIGJh
c2U2NCBlbmNvZGVkIFdBViBhdWRpbyBkYXRhIGlzIHN0b3JlZCBoZXJlLgogICAgIHN0ZDo6c3Ry
aW5nIG1fZW5jb2RlZEF1ZGlvRGF0YTsKLSAgICAKLSAgICAvLyBvcmlnaW5zIHdoaWNoIGhhdmUg
YmVlbiBncmFudGVkIGRlc2t0b3Agbm90aWZpY2F0aW9uIGFjY2VzcwotICAgIHN0ZDo6dmVjdG9y
PEpTU3RyaW5nUmVmPiBtX2Rlc2t0b3BOb3RpZmljYXRpb25BbGxvd2VkT3JpZ2luczsKIAogICAg
IHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4gbV9VUkxzVG9SZWRpcmVjdDsKICAg
ICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5l
ckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggZjYzOTVmYi4uNjA3NDYxNCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAKQEAgLTgxOCw3ICs4MTgsMjMgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrU3BlZWNoSW5w
dXREdW1wUmVjdChib29sKQogewogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlRGVza3Rv
cE5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQordm9pZCBUZXN0UnVubmVyOjpn
cmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYgb3JpZ2luKQoreworfQor
Cit2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKEpTU3RyaW5n
UmVmIGpzT3JpZ2luKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb25zKCkKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZVdl
Yk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24pCit7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhKU1N0cmlu
Z1JlZiB0aXRsZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRFJUVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9E
UlRUZXN0UnVubmVyLmNwcAppbmRleCBiYmM5ZjliLi5mOTM3Y2FkIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcApAQCAtMTU1LDcgKzE1NSwx
MCBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAg
YmluZE1ldGhvZCgiZXhlY0NvbW1hbmQiLCAmRFJUVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQpOwog
ICAgIGJpbmRNZXRob2QoImZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzIiwgJkRSVFRlc3RSdW5uZXI6
OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAg
ICBiaW5kTWV0aG9kKCJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkRSVFRl
c3RSdW5uZXI6OmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24pOworICAgIGJpbmRN
ZXRob2QoImdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbiIsICZEUlRUZXN0UnVubmVyOjpn
cmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24pOworICAgIGJpbmRNZXRob2QoImRlbnlXZWJO
b3RpZmljYXRpb25QZXJtaXNzaW9uIiwgJkRSVFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKTsKKyAgICBiaW5kTWV0aG9kKCJyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9ucyIsICZEUlRUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9ucyk7CisgICAgYmluZE1ldGhvZCgic2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayIs
ICZEUlRUZXN0UnVubmVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKTsKICNlbmRpZgog
ICAgIGJpbmRNZXRob2QoImZpbmRTdHJpbmciLCAmRFJUVGVzdFJ1bm5lcjo6ZmluZFN0cmluZyk7
CiAgICAgYmluZE1ldGhvZCgiaXNDb21tYW5kRW5hYmxlZCIsICZEUlRUZXN0UnVubmVyOjppc0Nv
bW1hbmRFbmFibGVkKTsKQEAgLTIzMyw3ICsyMzYsNyBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0
UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNob3dXZWJJbnNwZWN0b3IiLCAm
RFJUVGVzdFJ1bm5lcjo6c2hvd1dlYkluc3BlY3Rvcik7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi0gICAgYmluZE1ldGhvZCgic2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2siLCAm
RFJUVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOworICAgIGJp
bmRNZXRob2QoInNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2siLCAmRFJUVGVzdFJ1
bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayk7CiAjZW5kaWYKICAgICBi
aW5kTWV0aG9kKCJzdGFydFNwZWVjaElucHV0IiwgJkRSVFRlc3RSdW5uZXI6OnN0YXJ0U3BlZWNo
SW5wdXQpOwogICAgIGJpbmRNZXRob2QoInRlc3RSZXBhaW50IiwgJkRSVFRlc3RSdW5uZXI6OnRl
c3RSZXBhaW50KTsKQEAgLTExNzgsNyArMTE4MSw3IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6Y2Fs
bFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
CiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQgRFJUVGVzdFJ1bm5lcjo6Z3Jh
bnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQordm9pZCBEUlRUZXN0UnVubmVyOjpncmFudFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8
ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgewogICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7
CkBAIC0xMTkwLDcgKzExOTMsMjUgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpncmFudERlc2t0b3BO
b3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXIKICAgICByZXN1
bHQtPnNldCh0cnVlKTsKIH0KIAotdm9pZCBEUlRUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BO
b3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQordm9pZCBEUlRUZXN0UnVubmVyOjpkZW55V2ViTm90aWZpY2F0aW9uUGVy
bWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgcmVzdWx0LT5zZXROdWxsKCk7
Cit9CisKK3ZvaWQgRFJUVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlz
c2lvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3Vs
dCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOwor
fQorCit2b2lkIERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lk
IERSVFRlc3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkgewog
ICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlRUZXN0UnVubmVyLmgKaW5kZXggZTljMDE3MS4uMmZmZmQ1OSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaApAQCAtMjM0LDkgKzIzNCwx
MiBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAvLyBHcmFudHMg
cGVybWlzc2lvbiBmb3IgZGVza3RvcCBub3RpZmljYXRpb25zIHRvIGFuIG9yaWdpbgotICAgIHZv
aWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZGVueVdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgcmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2ltdWxhdGVXZWJOb3Rp
ZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
Ly8gU2ltdWxhdGVzIGEgY2xpY2sgb24gYSBkZXNrdG9wIG5vdGlmaWNhdGlvbi4KLSAgICB2b2lk
IHNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xp
Y2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogI2VuZGlmCiAKICAgICB2
b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RS
dW5uZXJFZmwuY3BwCmluZGV4IDFiMWRjYTMuLjhiOTEwODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTg4MCw3ICs4ODAsMjMgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRCYWNraW5nU2NhbGVGYWN0b3IoZG91YmxlKQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xp
Y2soSlNTdHJpbmdSZWYgdGl0bGUpCit2b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZpY2F0
aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5l
cjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdSZWYganNPcmlnaW4pCit7
Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bnMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xp
Y2soSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVyOjpz
aW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5nUmVmIHRpdGxlKQogewog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggNDE1
NzVkNy4uODQ4Zjc4YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcApAQCAtOTY3LDcgKzk2NywyMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEJhY2tpbmdTY2Fs
ZUZhY3Rvcihkb3VibGUpCiB7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCit2b2lkIFRlc3RSdW5uZXI6Omdy
YW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBvcmlnaW4pCit7Cit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oSlNTdHJpbmdS
ZWYganNPcmlnaW4pCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbnMoKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2soSlNWYWx1ZVJlZiBqc05vdGlmaWNhdGlvbikKK3sKK30KKwordm9p
ZCBUZXN0UnVubmVyOjpzaW11bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTU3RyaW5n
UmVmIHRpdGxlKQogewogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggMmJkNTRiYi4uMjdjMmY0MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiSmF2YVNjcmlw
dFRocmVhZGluZy5oIgogI2ltcG9ydCAiVGVzdFJ1bm5lci5oIgogI2ltcG9ydCAiTW9ja0dlb2xv
Y2F0aW9uUHJvdmlkZXIuaCIKKyNpbXBvcnQgIk1vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5o
IgogI2ltcG9ydCAiTmF2aWdhdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIk9iakNQbHVnaW4u
aCIKICNpbXBvcnQgIk9iakNQbHVnaW5GdW5jdGlvbi5oIgpAQCAtNTE5LDYgKzUyMCw3IEBAIFdl
YlZpZXcgKmNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coKQogICAgIFt3ZWJWaWV3IHNl
dFJlc291cmNlTG9hZERlbGVnYXRlOnJlc291cmNlTG9hZERlbGVnYXRlXTsKICAgICBbd2ViVmll
dyBfc2V0R2VvbG9jYXRpb25Qcm92aWRlcjpbTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIgc2hhcmVk
XV07CiAgICAgW3dlYlZpZXcgX3NldERldmljZU9yaWVudGF0aW9uUHJvdmlkZXI6W1dlYkRldmlj
ZU9yaWVudGF0aW9uUHJvdmlkZXJNb2NrIHNoYXJlZF1dOworICAgIFt3ZWJWaWV3IF9zZXROb3Rp
ZmljYXRpb25Qcm92aWRlcjpbTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNoYXJlZF1dOwog
CiAgICAgLy8gUmVnaXN0ZXIgdGhlIHNhbWUgc2NoZW1lcyB0aGF0IFNhZmFyaSBkb2VzCiAgICAg
W1dlYlZpZXcgcmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsOkAiZmVlZCJdOwpAQCAtMTI2OSw2ICsx
MjcxLDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVU
ZXN0aW5nKCkKICAgICBbV2ViVmlldyBfc2V0QWxsb3dzUm91bmRpbmdIYWNrczpOT107CiAKICAg
ICBbW01vY2tHZW9sb2NhdGlvblByb3ZpZGVyIHNoYXJlZF0gc3RvcFRpbWVyXTsKKyAgICBbW01v
Y2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaGFyZWRdIHJlc2V0XTsKICAgICAKICAgICAvLyBD
bGVhciB0aGUgY29udGVudHMgb2YgdGhlIGdlbmVyYWwgcGFzdGVib2FyZAogICAgIFtbTlNQYXN0
ZWJvYXJkIGdlbmVyYWxQYXN0ZWJvYXJkXSBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0Ok5TU3RyaW5nUGJvYXJkVHlwZV0gb3duZXI6bmlsXTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9Nb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTA4MTIzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oCkBA
IC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKyNk
ZWZpbmUgTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyX2gKKworI2ltcG9ydCA8V2ViS2l0L1dl
Yk5vdGlmaWNhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRlLmg+CisjaW1w
b3J0IDx3dGYvSGFzaE1hcC5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKwordHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZXRhaW5QdHI8V2Vi
Tm90aWZpY2F0aW9uPiA+IE5vdGlmaWNhdGlvbklETWFwOwordHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBXZWJWaWV3ICo+IE5vdGlmaWNhdGlvblZpZXdNYXA7CisKK0BpbnRlcmZhY2UgTW9ja1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyIDogTlNPYmplY3QgPFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
PiB7CisgICAgSGFzaFNldDxXZWJWaWV3ICo+IF9yZWdpc3RlcmVkV2ViVmlld3M7CisgICAgTm90
aWZpY2F0aW9uSURNYXAgX25vdGlmaWNhdGlvbnM7CisgICAgTm90aWZpY2F0aW9uVmlld01hcCBf
bm90aWZpY2F0aW9uVmlld01hcDsKKyAgICAvLyBUaGlzIGlzIHRvIHN1cHBvcnQgdGhlIGxlZ2Fj
eSBBUEkuCisgICAgUmV0YWluUHRyPE5TTXV0YWJsZURpY3Rpb25hcnk+IF9ub3RpZmljYXRpb25z
QnlUaXRsZTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gX3Blcm1pc3Npb25z
OworfQorCisrIChNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgKilzaGFyZWQ7CisKKy0gKHZv
aWQpc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljazoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQ7
CisvLyBUaGlzIGlzIHRvIHN1cHBvcnQgdGhlIGxlZ2FjeSBBUEkuCistICh2b2lkKXNpbXVsYXRl
V2ViTm90aWZpY2F0aW9uQ2xpY2tXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGU7CistICh2b2lk
KXNldFdlYk5vdGlmaWNhdGlvbk9yaWdpbjooTlNTdHJpbmcqKW9yaWdpbiBwZXJtaXNzaW9uOihC
T09MKWFsbG93ZWQ7CistICh2b2lkKXJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25z
OworCistICh2b2lkKXJlc2V0OworQGVuZAorCisjZW5kaWYgLy8gTW9ja1dlYk5vdGlmaWNhdGlv
blByb3ZpZGVyX2gKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWE1ODdhCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlci5t
bQpAQCAtMCwwICsxLDE5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJNb2NrV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKworI2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKKyNp
bXBvcnQgIlRlc3RSdW5uZXIuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJOb3RpZmljYXRpb24uaD4K
KyNpbXBvcnQgPFdlYktpdC9XZWJTZWN1cml0eU9yaWdpblByaXZhdGUuaD4KKworQGludGVyZmFj
ZSBXZWJOb3RpZmljYXRpb24gKERSVEV4dHJhcykKKy0gKE5TU3RyaW5nICopX2RydF9kZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYk5v
dGlmaWNhdGlvbiAoRFJURXh0cmFzKQorLSAoTlNTdHJpbmcgKilfZHJ0X2Rlc2NyaXB0aW9uU3Vp
dGFibGVGb3JUZXN0UmVzdWx0Cit7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAie3RpdGxlOiBcIiVAXCIsIGJvZHk6IFwiJUBcIiwgdGFnOiBcIiVAXCIsIGljb25VUkw6
ICVAfSIsIFtzZWxmIHRpdGxlXSwgW3NlbGYgYm9keV0sIFtzZWxmIHRhZ10sIFtzZWxmIGljb25V
UkxdXTsKK30KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE1vY2tXZWJOb3RpZmljYXRpb25Qcm92
aWRlcgorCisrIChNb2NrV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIgKilzaGFyZWQKK3sKKyAgICBz
dGF0aWMgTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyICpwcm92aWRlciA9IFtbTW9ja1dlYk5v
dGlmaWNhdGlvblByb3ZpZGVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gcHJvdmlkZXI7Cit9
CisKKy0gKGlkKWluaXQKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICBfbm90aWZpY2F0aW9uc0J5VGl0bGUuYWRvcHROUyhbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICBfcGVybWlzc2lvbnMuYWRvcHROUyhb
W05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZClyZWdpc3RlcldlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgQVNT
RVJUKCFfcmVnaXN0ZXJlZFdlYlZpZXdzLmNvbnRhaW5zKHdlYlZpZXcpKTsKKyAgICBfcmVnaXN0
ZXJlZFdlYlZpZXdzLmFkZCh3ZWJWaWV3KTsKK30KKworLSAodm9pZCl1bnJlZ2lzdGVyV2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcKK3sKKyAgICBBU1NFUlQoX3JlZ2lzdGVyZWRXZWJWaWV3cy5j
b250YWlucyh3ZWJWaWV3KSk7CisgICAgX3JlZ2lzdGVyZWRXZWJWaWV3cy5yZW1vdmUod2ViVmll
dyk7Cit9CisKKy0gKHZvaWQpc2hvd05vdGlmaWNhdGlvbjooV2ViTm90aWZpY2F0aW9uICopbm90
aWZpY2F0aW9uIGZyb21XZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldworeworICAgIEFTU0VSVChf
cmVnaXN0ZXJlZFdlYlZpZXdzLmNvbnRhaW5zKHdlYlZpZXcpKTsKKworICAgIHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEID0gW25vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRF07CisgICAgX25vdGlm
aWNhdGlvbnMuYWRkKG5vdGlmaWNhdGlvbklELCBub3RpZmljYXRpb24pOworICAgIF9ub3RpZmlj
YXRpb25WaWV3TWFwLmFkZChub3RpZmljYXRpb25JRCwgd2ViVmlldyk7CisgICAgW19ub3RpZmlj
YXRpb25zQnlUaXRsZS5nZXQoKSBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25l
ZExvbmdMb25nOm5vdGlmaWNhdGlvbklEXSBmb3JLZXk6W25vdGlmaWNhdGlvbiB0aXRsZV1dOwor
CisgICAgW3dlYlZpZXcgX25vdGlmaWNhdGlvbkRpZFNob3c6bm90aWZpY2F0aW9uSURdOworfQor
CistICh2b2lkKWNhbmNlbE5vdGlmaWNhdGlvbjooV2ViTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCit7CisgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBbbm90aWZpY2F0aW9uIG5vdGlm
aWNhdGlvbklEXTsKKyAgICBBU1NFUlQoX25vdGlmaWNhdGlvbnMuY29udGFpbnMobm90aWZpY2F0
aW9uSUQpKTsKKworICAgIFtfbm90aWZpY2F0aW9uVmlld01hcC5nZXQobm90aWZpY2F0aW9uSUQp
IF9ub3RpZmljYXRpb25zRGlkQ2xvc2U6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OltOU051bWJl
ciBudW1iZXJXaXRoVW5zaWduZWRMb25nTG9uZzpub3RpZmljYXRpb25JRF1dXTsKK30KKworLSAo
dm9pZClub3RpZmljYXRpb25EZXN0cm95ZWQ6KFdlYk5vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIF9ub3RpZmljYXRpb25zLnJlbW92ZShbbm90aWZpY2F0aW9uIG5vdGlmaWNhdGlv
bklEXSk7CisgICAgW19ub3RpZmljYXRpb25zQnlUaXRsZS5nZXQoKSByZW1vdmVPYmplY3RGb3JL
ZXk6W25vdGlmaWNhdGlvbiB0aXRsZV1dOworfQorCistICh2b2lkKWNsZWFyTm90aWZpY2F0aW9u
czooTlNBcnJheSAqKW5vdGlmaWNhdGlvbklEcworeworICAgIGZvciAoTlNOdW1iZXIgKm5vdGlm
aWNhdGlvbklEIGluIG5vdGlmaWNhdGlvbklEcykgeworICAgICAgICB1aW50NjRfdCBpZCA9IFtu
b3RpZmljYXRpb25JRCB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworICAgICAgICBSZXRhaW5QdHI8
V2ViTm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBfbm90aWZpY2F0aW9ucy50YWtlKGlkKTsK
KyAgICAgICAgX25vdGlmaWNhdGlvblZpZXdNYXAucmVtb3ZlKGlkKTsKKyAgICAgICAgaWYgKG5v
dGlmaWNhdGlvbikKKyAgICAgICAgICAgIFtfbm90aWZpY2F0aW9uc0J5VGl0bGUuZ2V0KCkgcmVt
b3ZlT2JqZWN0Rm9yS2V5Oltub3RpZmljYXRpb24uZ2V0KCkgdGl0bGVdXTsKKyAgICB9Cit9CisK
Ky0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGlkU2hvd05vdGlmaWNhdGlvbjoo
dWludDY0X3Qpbm90aWZpY2F0aW9uSUQKK3sKKyAgICBOb3RpZmljYXRpb25JRE1hcDo6aXRlcmF0
b3IgaXQgPSBfbm90aWZpY2F0aW9ucy5maW5kKG5vdGlmaWNhdGlvbklEKTsKKyAgICBBU1NFUlQo
aXQgIT0gX25vdGlmaWNhdGlvbnMuZW5kKCkpOworCisgICAgV2ViTm90aWZpY2F0aW9uICpub3Rp
ZmljYXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOworICAgIGlmICghZG9uZSAmJiBnVGVzdFJ1bm5l
ci0+ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoIlNIT1dF
RCBXRUIgTk9USUZJQ0FUSU9OICVzXG4iLCBbW25vdGlmaWNhdGlvbiBfZHJ0X2Rlc2NyaXB0aW9u
U3VpdGFibGVGb3JUZXN0UmVzdWx0XSBVVEY4U3RyaW5nXSk7CisKKyAgICBbbm90aWZpY2F0aW9u
IGRpc3BhdGNoU2hvd0V2ZW50XTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2Vi
VmlldyBkaWRDbGlja05vdGlmaWNhdGlvbjoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQKK3sKKyAg
ICBOb3RpZmljYXRpb25JRE1hcDo6aXRlcmF0b3IgaXQgPSBfbm90aWZpY2F0aW9ucy5maW5kKG5v
dGlmaWNhdGlvbklEKTsKKyAgICBBU1NFUlQoaXQgIT0gX25vdGlmaWNhdGlvbnMuZW5kKCkpOwor
CisgICAgV2ViTm90aWZpY2F0aW9uICpub3RpZmljYXRpb24gPSBpdC0+c2Vjb25kLmdldCgpOwor
ICAgIGlmICghZG9uZSAmJiBnVGVzdFJ1bm5lci0+ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNr
cygpKQorICAgICAgICBwcmludGYoIkNMSUNLRUQgV0VCIE5PVElGSUNBVElPTiAlc1xuIiwgW1tu
b3RpZmljYXRpb24gX2RydF9kZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdF0gVVRGOFN0
cmluZ10pOworCisgICAgW25vdGlmaWNhdGlvbiBkaXNwYXRjaENsaWNrRXZlbnRdOworfQorCist
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZENsb3NlTm90aWZpY2F0aW9uczoo
TlNBcnJheSAqKW5vdGlmaWNhdGlvbklEcworeworICAgIGZvciAoTlNOdW1iZXIgKm5vdGlmaWNh
dGlvbklEIGluIG5vdGlmaWNhdGlvbklEcykgeworICAgICAgICB1aW50NjRfdCBpZCA9IFtub3Rp
ZmljYXRpb25JRCB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworICAgICAgICBOb3RpZmljYXRpb25J
RE1hcDo6aXRlcmF0b3IgaXQgPSBfbm90aWZpY2F0aW9ucy5maW5kKGlkKTsKKyAgICAgICAgQVNT
RVJUKGl0ICE9IF9ub3RpZmljYXRpb25zLmVuZCgpKTsKKworICAgICAgICBXZWJOb3RpZmljYXRp
b24gKm5vdGlmaWNhdGlvbiA9IGl0LT5zZWNvbmQuZ2V0KCk7CisgICAgICAgIGlmICghZG9uZSAm
JiBnVGVzdFJ1bm5lci0+ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpKQorICAgICAgICAg
ICAgcHJpbnRmKCJDTE9TRUQgV0VCIE5PVElGSUNBVElPTiAlc1xuIiwgW1tub3RpZmljYXRpb24g
X2RydF9kZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdF0gVVRGOFN0cmluZ10pOworCisg
ICAgICAgIFtub3RpZmljYXRpb24gZGlzcGF0Y2hDbG9zZUV2ZW50XTsKKyAgICAgICAgW19ub3Rp
ZmljYXRpb25zQnlUaXRsZS5nZXQoKSByZW1vdmVPYmplY3RGb3JLZXk6W2l0LT5zZWNvbmQuZ2V0
KCkgdGl0bGVdXTsKKyAgICAgICAgX25vdGlmaWNhdGlvbnMucmVtb3ZlKGl0KTsKKyAgICAgICAg
X25vdGlmaWNhdGlvblZpZXdNYXAucmVtb3ZlKGlkKTsKKyAgICB9Cit9CisKKy0gKHZvaWQpc2lt
dWxhdGVXZWJOb3RpZmljYXRpb25DbGljazoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQKK3sKKyAg
ICBBU1NFUlQoX25vdGlmaWNhdGlvbnMuY29udGFpbnMobm90aWZpY2F0aW9uSUQpKTsKKyAgICBb
X25vdGlmaWNhdGlvblZpZXdNYXAuZ2V0KG5vdGlmaWNhdGlvbklEKSBfbm90aWZpY2F0aW9uRGlk
Q2xpY2s6bm90aWZpY2F0aW9uSURdOworfQorCistICh2b2lkKXNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2tXaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUKK3sKKyAgICBOU051bWJlciAqbm90
aWZpY2F0aW9uSUQgPSBbX25vdGlmaWNhdGlvbnNCeVRpdGxlLmdldCgpIG9iamVjdEZvcktleTp0
aXRsZV07CisgICAgQVNTRVJUKG5vdGlmaWNhdGlvbklEKTsKKyAgICB1aW50NjRfdCBpZCA9IFtu
b3RpZmljYXRpb25JRCB1bnNpZ25lZExvbmdMb25nVmFsdWVdOworICAgIFtfbm90aWZpY2F0aW9u
Vmlld01hcC5nZXQoaWQpIF9ub3RpZmljYXRpb25EaWRDbGljazppZF07Cit9CisKKy0gKFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24pcG9saWN5Rm9yT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbgoreworICAgIE5TTnVtYmVyICpwZXJtaXNzaW9uID0gW19wZXJtaXNzaW9ucy5nZXQo
KSBvYmplY3RGb3JLZXk6W29yaWdpbiBzdHJpbmdWYWx1ZV1dOworICAgIGlmICghcGVybWlzc2lv
bikKKyAgICAgICAgcmV0dXJuIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25Ob3RBbGxvd2VkOwor
ICAgIGlmIChbcGVybWlzc2lvbiBib29sVmFsdWVdKQorICAgICAgICByZXR1cm4gV2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ7CisgICAgcmV0dXJuIFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZW5pZWQ7Cit9CisKKy0gKHZvaWQpc2V0V2ViTm90aWZpY2F0aW9uT3JpZ2luOihOU1N0
cmluZyopb3JpZ2luIHBlcm1pc3Npb246KEJPT0wpYWxsb3dlZAoreworICAgIFtfcGVybWlzc2lv
bnMuZ2V0KCkgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDphbGxvd2VkXSBmb3JL
ZXk6b3JpZ2luXTsKK30KKworLSAodm9pZClyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9ucworeworICAgIFtfcGVybWlzc2lvbnMuZ2V0KCkgcmVtb3ZlQWxsT2JqZWN0c107Cit9CisK
Ky0gKHZvaWQpcmVzZXQKK3sKKyAgICBfbm90aWZpY2F0aW9ucy5jbGVhcigpOworICAgIF9ub3Rp
ZmljYXRpb25WaWV3TWFwLmNsZWFyKCk7CisgICAgW19ub3RpZmljYXRpb25zQnlUaXRsZS5nZXQo
KSByZW1vdmVBbGxPYmplY3RzXTsKKyAgICBbc2VsZiByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uc107Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW0KaW5kZXggMWQ3ZGU4NS4uNmM2NTE2NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTMyLDYgKzMyLDcgQEAKIAogI2ltcG9ydCAiRWRpdGlu
Z0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oIgorI2ltcG9y
dCAiTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCiAjaW1wb3J0ICJQb2xpY3lEZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiU3RvcmFnZVRyYWNrZXJEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVUlEZWxl
Z2F0ZS5oIgpAQCAtMTE2MywxMSArMTE2NCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QmFja2lu
Z1NjYWxlRmFjdG9yKGRvdWJsZSBiYWNraW5nU2NhbGVGYWN0b3IpCiAgICAgW1ttYWluRnJhbWUg
d2ViVmlld10gX3NldEN1c3RvbUJhY2tpbmdTY2FsZUZhY3RvcjpiYWNraW5nU2NhbGVGYWN0b3Jd
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNr
KEpTU3RyaW5nUmVmIHRpdGxlKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCi19Ci0KIHZv
aWQgVGVzdFJ1bm5lcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSgpCiB7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudC4KQEAgLTExODcsMyArMTE4MywzMyBAQCB2b2lkIFRlc3RSdW5uZXI6OmRlbGl2ZXJX
ZWJJbnRlbnQoSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50LgogfQorCit2b2lkIFRlc3RSdW5uZXI6OmdyYW50V2ViTm90aWZp
Y2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikKK3sKKyAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IGNmT3JpZ2luKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGpzT3JpZ2luKSk7CisgICAgQVNTRVJUKFtbbWFpbkZyYW1lIHdlYlZp
ZXddIF9ub3RpZmljYXRpb25Qcm92aWRlcl0gPT0gW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRl
ciBzaGFyZWRdKTsKKyAgICBbW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaGFyZWRdIHNl
dFdlYk5vdGlmaWNhdGlvbk9yaWdpbjooTlNTdHJpbmcgKiljZk9yaWdpbi5nZXQoKSBwZXJtaXNz
aW9uOlRSVUVdOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmRlbnlXZWJOb3RpZmljYXRpb25QZXJt
aXNzaW9uKEpTU3RyaW5nUmVmIGpzT3JpZ2luKQoreworICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gY2ZPcmlnaW4oQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVm
YXVsdCwganNPcmlnaW4pKTsKKyAgICBBU1NFUlQoW1ttYWluRnJhbWUgd2ViVmlld10gX25vdGlm
aWNhdGlvblByb3ZpZGVyXSA9PSBbTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNoYXJlZF0p
OworICAgIFtbTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyIHNoYXJlZF0gc2V0V2ViTm90aWZp
Y2F0aW9uT3JpZ2luOihOU1N0cmluZyAqKWNmT3JpZ2luLmdldCgpIHBlcm1pc3Npb246RkFMU0Vd
OworfQorCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKCkKK3sKKyAgICBbW01vY2tXZWJOb3RpZmljYXRpb25Qcm92aWRlciBzaGFyZWRdIHJlbW92
ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zXTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpz
aW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFsdWVSZWYganNOb3RpZmljYXRpb24pCit7
CisgICAgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQgPSBbW21haW5GcmFtZSB3ZWJWaWV3XSBfbm90
aWZpY2F0aW9uSURGb3JUZXN0aW5nOmpzTm90aWZpY2F0aW9uXTsKKyAgICBbW01vY2tXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlciBzaGFyZWRdIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2s6bm90
aWZpY2F0aW9uSURdOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlTGVnYWN5V2ViTm90
aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYganNUaXRsZSkKK3sKK30KKwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQppbmRleCBkZGRlYzdhLi42OTNmYTM3IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAi
RHVtcFJlbmRlclRyZWUuaCIKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLmgi
CiAjaW1wb3J0ICJFdmVudFNlbmRpbmdDb250cm9sbGVyLmgiCisjaW1wb3J0ICJNb2NrV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbXBvcnQgIlRlc3RSdW5uZXIuaCIKICNpbXBvcnQgPFdl
YktpdC9XZWJBcHBsaWNhdGlvbkNhY2hlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVQcml2
YXRlLmg+CkBAIC0yODgsNiArMjg5LDEzIEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpk
cmFnZ2luZ0luZm8gPSBuaWw7CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKKy0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUmVxdWVzdEZy
b21PcmlnaW46KFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luIGxpc3RlbmVyOihpZDxXZWJBbGxv
d0RlbnlQb2xpY3lMaXN0ZW5lcj4pbGlzdGVuZXIKK3sKKyAgICBwcmludGYoIlJFUVVFU1RFRCBX
RUIgTk9USUZJQ0FUSU9OIFBFUk1JU1NJT04gRk9SICVzXG4iLCBbW29yaWdpbiBzdHJpbmdWYWx1
ZV0gVVRGOFN0cmluZ10pOworICAgIFsoTW9ja1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyICopW3dl
YlZpZXcgX25vdGlmaWNhdGlvblByb3ZpZGVyXSBzZXRXZWJOb3RpZmljYXRpb25PcmlnaW46W29y
aWdpbiBzdHJpbmdWYWx1ZV0gcGVybWlzc2lvbjpZRVNdOworICAgIFtsaXN0ZW5lciBhbGxvd107
Cit9CisKIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtkcmFnZ2luZ0luZm8gcmVsZWFzZV07CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBmMzVmZTI2Li41ZTM2
MjRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTIwMiwy
NCArMjAyLDM0IEBAIGludCBUZXN0UnVubmVyOjp3aW5kb3dDb3VudCgpCiAgICAgcmV0dXJuIG1f
ZHJ0LT53aW5kb3dDb3VudCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmdyYW50RGVza3RvcE5v
dGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQordm9pZCBUZXN0UnVu
bmVyOjpncmFudFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2lu
KQogewogICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUo
KTsKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXRGZWF0dXJlUGVybWlzc2lvbihmcmFtZSwgUVdl
YlBhZ2U6Ok5vdGlmaWNhdGlvbnMsIFFXZWJQYWdlOjpQZXJtaXNzaW9uR3JhbnRlZEJ5VXNlcik7
CiAgICAgbV9kZXNrdG9wTm90aWZpY2F0aW9uQWxsb3dlZE9yaWdpbnMuYXBwZW5kKG9yaWdpbik7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6aWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0cygpCit2b2lkIFRlc3RSdW5uZXI6Omlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpCiB7CiAgICAgbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9u
ID0gdHJ1ZTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpjaGVja0Rlc2t0b3BOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKGNvbnN0IFFTdHJpbmcmIG9yaWdpbikKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmluZyYgb3JpZ2luKQogewotICAgIHJl
dHVybiAhbV9pZ25vcmVEZXNrdG9wTm90aWZpY2F0aW9uICYmIG1fZGVza3RvcE5vdGlmaWNhdGlv
bkFsbG93ZWRPcmlnaW5zLmNvbnRhaW5zKG9yaWdpbik7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dC4KIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGlj
ayhjb25zdCBRU3RyaW5nJiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhjb25zdCBRV2Vi
RWxlbWVudCYgbm90aWZpY2F0aW9uKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRpb25DbGljayhjb25z
dCBRU3RyaW5nJiB0aXRsZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxh
dGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2sodGl0bGUpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuaAppbmRleCA1MmQ1MTJjLi4zNmQ5ZDFiIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTM0LDEwICsxMzQsMTIgQEAgcHVibGljIFFfU0xP
VFM6CiAgICAgdm9pZCBwcm92aXNpb25hbExvYWQoKTsKICAgICB2b2lkIHNldENsb3NlUmVtYWlu
aW5nV2luZG93c1doZW5Db21wbGV0ZShib29sID0gZmFsc2UpIHsgfQogICAgIGludCB3aW5kb3dD
b3VudCgpOwotICAgIHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25z
dCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgaWdub3JlRGVza3RvcE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0cygpOwotICAgIGJvb2wgY2hlY2tEZXNrdG9wTm90aWZpY2F0aW9uUGVy
bWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmlnaW4pOwotICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgaWdub3Jl
TGVnYWN5V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKCk7CisgICAgdm9pZCBzaW11
bGF0ZUxlZ2FjeVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpdGxlKTsKKyAg
ICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBRU3RyaW5nJiBvcmln
aW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgUVN0cmlu
ZyYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25z
KCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFXZWJFbGVt
ZW50Jik7CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRS
ZWdpb24oKTsKICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggYTJjMTVlMy4uNTMwMjYwYiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtMTQzNCw3ICsx
NDM0LDIzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QmFja2luZ1NjYWxlRmFjdG9yKGRvdWJsZSkK
IHsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGlj
ayhKU1N0cmluZ1JlZiB0aXRsZSkKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKK30KKwordm9pZCBUZXN0UnVubmVy
OjpkZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0cmluZ1JlZiBqc09yaWdpbikKK3sK
K30KKwordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
cygpCit7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGlj
ayhKU1ZhbHVlUmVmIGpzTm90aWZpY2F0aW9uKQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNp
bXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soSlNTdHJpbmdSZWYgdGl0bGUpCiB7CiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4
IGZmOTE1NzkuLjgwNDk4YmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDYsNiAr
NDYsNyBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrKCk7CiAgICAgICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOwogICAg
ICAgICB2b2lkIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7CisgICAgICAgIHZvaWQg
ZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpOwogCiAgICAgICAgIC8vIFNwZWNpYWwgb3B0
aW9ucy4KICAgICAgICAgdm9pZCBrZWVwV2ViSGlzdG9yeSgpOwpAQCAtMTYwLDYgKzE2MSwxMiBA
QCBtb2R1bGUgV1RSIHsKIAogICAgICAgICAvLyBDb250cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9y
LgogICAgICAgICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcihpbiBib29sZWFu
IHZhbHVlKTsKKworICAgICAgICAvLyBXZWIgbm90aWZpY2F0aW9ucyBzdXBwb3J0CisgICAgICAg
IHZvaWQgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGluIERPTVN0cmluZyBvcmlnaW4p
OworICAgICAgICB2b2lkIGRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGluIERPTVN0cmlu
ZyBvcmlnaW4pOworICAgICAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKCk7CisgICAgICAgIHZvaWQgc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhpbiBvYmpl
Y3Qgbm90aWZpY2F0aW9uKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDYzZWQx
NzguLjNjMmQ0ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUs
IFdLVHlwZVJlZiBtZXNzYWcKICAgICAgICAgbV9kdW1wUGl4ZWxzID0gZmFsc2U7CiAKICAgICAg
ICAgcmVzZXRMb2NhbFNldHRpbmdzKCk7CisgICAgICAgIG1fdGVzdFJ1bm5lci0+cmVtb3ZlQWxs
V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMzM4LDQgKzMzOSwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0U2V0V2luZG93SXNL
ZXkoYm9vbCBpc0tleSkKICAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UobV9idW5k
bGUsIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgMCk7CiB9CiAKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90
IG5vdGlmaWNhdGlvbklEKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2ltdWxhdGVXZWJO
b3RpZmljYXRpb25DbGljayIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VJbnQ2NFJlZj4gbWVzc2Fn
ZUJvZHkoQWRvcHRXSywgV0tVSW50NjRDcmVhdGUobm90aWZpY2F0aW9uSUQpKTsKKyAgICBXS0J1
bmRsZVBvc3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHku
Z2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCBkMWYxOThm
Li43ZTg5YWM0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHBvc3RGb2N1c1dlYlZpZXcoKTsKICAgICB2b2lkIHBvc3RTZXRCYWNraW5nU2NhbGVGYWN0
b3IoZG91YmxlKTsKICAgICB2b2lkIHBvc3RTZXRXaW5kb3dJc0tleShib29sKTsKKyAgICB2b2lk
IHBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKIAogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCmluZGV4IDdkMmNiOTguLmZjNzYxZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAg
LTQwLDcgKzQwLDkgQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0
Mi9XS0J1bmRsZU5vdGlmaWNhdGlvblByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVu
ZGxlUGFnZVByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjY2LDYgKzI2OCwyNSBAQCBz
dGF0aWMgaW5saW5lIFdURjo6U3RyaW5nIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdChXS1VSTFJl
ZiBmaWxlVXJsKQogICAgIHJldHVybiAoaW5kZXhCYXNlTmFtZSA9PSBub3RGb3VuZCkgPyB1cmxT
dHJpbmcgOiB1cmxTdHJpbmcuc3Vic3RyaW5nKGluZGV4QmFzZU5hbWUgKyAxKTsKIH0KIAorc3Rh
dGljIFdURjo6U3RyaW5nIHdlYk5vdGlmaWNhdGlvblRvU3RyaW5nKFdLQnVuZGxlTm90aWZpY2F0
aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW5vdGlmaWNhdGlvbikKKyAgICAgICAg
cmV0dXJuIFN0cmluZygpOworCisgICAgV1RGOjpTdHJpbmdCdWlsZGVyIHN0cmluZ0J1aWxkZXI7
CisgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoInt0aXRsZTogXCIiKTsKKyAgICBzdHJpbmdCdWls
ZGVyLmFwcGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLQnVuZGxlTm90aWZpY2F0aW9uQ29weVRp
dGxlKG5vdGlmaWNhdGlvbikpKSk7CisgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlwiLCBib2R5
OiBcIiIpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRvV1RGU3RyaW5nKGFkb3B0V0soV0tC
dW5kbGVOb3RpZmljYXRpb25Db3B5Qm9keShub3RpZmljYXRpb24pKSkpOworICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kKCJcIiwgdGFnOiBcIiIpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKHRv
V1RGU3RyaW5nKGFkb3B0V0soV0tCdW5kbGVOb3RpZmljYXRpb25Db3B5VGFnKG5vdGlmaWNhdGlv
bikpKSk7CisgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoIlwiLCBpY29uVVJMOiAiKTsKKyAgICBz
dHJpbmdCdWlsZGVyLmFwcGVuZCh0b1dURlN0cmluZyhhZG9wdFdLKFdLQnVuZGxlTm90aWZpY2F0
aW9uQ29weUljb25VUkwobm90aWZpY2F0aW9uKSkpKTsKKyAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZCgifSIpOworCisgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogc3Rh
dGljIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZz4gYXNzaWduZWRVcmxzQ2FjaGU7CiAKIEluamVj
dGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQpA
QCAtMzgyLDYgKzQwMywxNiBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFn
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldEZ1bGxT
Y3JlZW5DbGllbnQobV9wYWdlLCAmZnVsbFNjcmVlbkNsaWVudCk7CiAjZW5kaWYKKworICAgIFdL
QnVuZGxlUGFnZU5vdGlmaWNhdGlvbkNsaWVudCBub3RpZmljYXRpb25DbGllbnQgPSB7CisgICAg
ICAgIGtXS0J1bmRsZVBhZ2VOb3RpZmljYXRpb25DbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAg
ICAgdGhpcywKKyAgICAgICAgZGlkU2hvd05vdGlmaWNhdGlvbiwKKyAgICAgICAgZGlkQ2xpY2tO
b3RpZmljYXRpb24sCisgICAgICAgIGRpZENsb3NlTm90aWZpY2F0aW9uLAorICAgICAgICBkaWRS
ZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uLAorICAgIH07CisgICAgV0tCdW5k
bGVQYWdlU2V0Tm90aWZpY2F0aW9uQ2xpZW50KG1fcGFnZSwgJm5vdGlmaWNhdGlvbkNsaWVudCk7
CiB9CiAKIEluamVjdGVkQnVuZGxlUGFnZTo6fkluamVjdGVkQnVuZGxlUGFnZSgpCkBAIC0xNjYx
LDYgKzE2OTIsNjIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIH0KICNlbmRpZgogCit2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6ZGlkU2hvd05vdGlmaWNhdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVO
b3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorewor
ICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKS0+ZGlkU2hvd05vdGlmaWNhdGlvbihwYWdlLCBub3RpZmljYXRpb24pOworfQor
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xpY2tOb3RpZmljYXRpb24oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbiwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZVBhZ2Uq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZENsaWNrTm90aWZpY2F0aW9uKHBh
Z2UsIG5vdGlmaWNhdGlvbik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRDbG9z
ZU5vdGlmaWNhdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25S
ZWYgbm90aWZpY2F0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19j
YXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
ZGlkQ2xvc2VOb3RpZmljYXRpb24ocGFnZSwgbm90aWZpY2F0aW9uKTsKK30KKwordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24o
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBib29sIGFs
bG93ZWQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGljX2Nhc3Q8SW5qZWN0
ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNlaXZl
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHBhZ2UsIG9yaWdpbiwgYWxsb3dlZCk7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRTaG93Tm90aWZpY2F0aW9uKFdLQnVuZGxl
UGFnZVJlZiwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0aW9uKQoreworICAgIGlm
ICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFdlYk5v
dGlmaWNhdGlvbkNhbGxiYWNrcygpKQorICAgICAgICByZXR1cm47CisgICAgSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJTSE9XRUQgV0VCIE5PVElGSUNB
VElPTiAiKTsKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5h
cHBlbmQod2ViTm90aWZpY2F0aW9uVG9TdHJpbmcobm90aWZpY2F0aW9uKSk7CisgICAgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJcbiIpOworfQorCit2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xpY2tOb3RpZmljYXRpb24oV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wV2ViTm90aWZp
Y2F0aW9uQ2FsbGJhY2tzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQoIkNMSUNLRUQgV0VCIE5PVElGSUNBVElP
TiAiKTsKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBl
bmQod2ViTm90aWZpY2F0aW9uVG9TdHJpbmcobm90aWZpY2F0aW9uKSk7CisgICAgSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJcbiIpOworfQorCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xvc2VOb3RpZmljYXRpb24oV0tCdW5kbGVQYWdlUmVm
LCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCit7CisgICAgaWYgKCFJbmpl
Y3RlZEJ1bmRsZTo6c2hhcmVkKCkudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wV2ViTm90aWZpY2F0
aW9uQ2FsbGJhY2tzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQoIkNMT1NFRCBXRUIgTk9USUZJQ0FUSU9OICIp
OworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5zdHJpbmdCdWlsZGVyKCktPmFwcGVuZCh3
ZWJOb3RpZmljYXRpb25Ub1N0cmluZyhub3RpZmljYXRpb24pKTsKKyAgICBJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQoIlxuIik7Cit9CisKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgYm9vbCBh
bGxvd2VkKQoreworICAgIGlmICghSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpKQorICAgICAgICByZXR1cm47
CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJS
RVFVRVNURUQgV0VCIE5PVElGSUNBVElPTiBQRVJNSVNTSU9OIEZPUiAiKTsKKyAgICBJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuc3RyaW5nQnVpbGRlcigpLT5hcHBlbmQodG9XVEZTdHJpbmcoYWRv
cHRXSyhXS1NlY3VyaXR5T3JpZ2luQ29weVRvU3RyaW5nKG9yaWdpbikpKSk7CisgICAgSW5qZWN0
ZWRCdW5kbGU6OnNoYXJlZCgpLnN0cmluZ0J1aWxkZXIoKS0+YXBwZW5kKCJcbiIpOworfQorCiBz
dGF0aWMgYm9vbCBjb21wYXJlQnlUYXJnZXROYW1lKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRl
bVJlZiBpdGVtMSwgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0yKQogewogICAg
IHJldHVybiB0b1NURChhZG9wdFdLKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlUYXJn
ZXQoaXRlbTEpKSkgPCB0b1NURChhZG9wdFdLKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNv
cHlUYXJnZXQoaXRlbTIpKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAwNzQzMTRlLi5hNThl
YzcwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTE2Myw2ICsxNjMsMTYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZENoYW5nZShXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKTsKICAgICB2
b2lkIGRpZENoYW5nZVNlbGVjdGlvbihXS1N0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lKTsKIAor
ICAgIC8vIE5vdGlmaWNhdGlvbiBjbGllbnQKKyAgICBzdGF0aWMgdm9pZCBkaWRTaG93Tm90aWZp
Y2F0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3Rp
ZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIGRpZENs
aWNrTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vdGlmaWNhdGlv
blJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHN0YXRpYyB2
b2lkIGRpZENsb3NlTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5v
dGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAg
IHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24oV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luLCBib29sIGFsbG93
ZWQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIHZvaWQgZGlkU2hvd05vdGlmaWNhdGlv
bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0
aW9uKTsKKyAgICB2b2lkIGRpZENsaWNrTm90aWZpY2F0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZU5vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pOworICAgIHZvaWQgZGlkQ2xv
c2VOb3RpZmljYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm90aWZpY2F0aW9u
UmVmIG5vdGlmaWNhdGlvbik7CisgICAgdm9pZCBkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlz
c2lvbkRlY2lzaW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9y
aWdpbiwgYm9vbCBhbGxvd2VkKTsKKwogICAgIHZvaWQgZHVtcEFsbEZyYW1lc1RleHQoKTsKICAg
ICB2b2lkIGR1bXBBbGxGcmFtZVNjcm9sbFBvc2l0aW9ucygpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBiOTRl
NWQ0Li4wYWM0YzFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lcigpCiAgICAgLCBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soZmFsc2UpCiAg
ICAgLCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzKGZhbHNlKQorICAgICwgbV9kdW1wV2ViTm90aWZpY2F0aW9u
Q2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV93YWl0VG9EdW1wKGZhbHNlKQogICAgICwgbV90ZXN0
UmVwYWludChmYWxzZSkKICAgICAsIG1fdGVzdFJlcGFpbnRTd2VlcEhvcml6b250YWxseShmYWxz
ZSkKQEAgLTY4NCw0ICs2ODUsMjkgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uKEpTU3RyaW5nUmVmIGxvY2F0aW9uKQogICAgICAgICBzZXRVc2VyU3R5bGVTaGVl
dEVuYWJsZWQodHJ1ZSk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6Z3JhbnRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKEpTU3RyaW5nUmVmIG9yaWdpbikKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gb3JpZ2luV0sgPSB0b1dLKG9yaWdpbik7CisgICAgV0tCdW5kbGVTZXRXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpLCBvcmlnaW5XSy5nZXQoKSwgdHJ1
ZSk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24o
SlNTdHJpbmdSZWYgb3JpZ2luKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBvcmln
aW5XSyA9IHRvV0sob3JpZ2luKTsKKyAgICBXS0J1bmRsZVNldFdlYk5vdGlmaWNhdGlvblBlcm1p
c3Npb24oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkucGFnZSgpLT5wYWdlKCksIG9yaWdpbldLLmdldCgpLCBmYWxzZSk7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6cmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoKQorewor
ICAgIFdLQnVuZGxlUmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgp
LT5wYWdlKCkpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0aW9u
Q2xpY2soSlNWYWx1ZVJlZiBub3RpZmljYXRpb24pCit7CisgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnBhZ2UoKS0+cGFnZSgpKTsKKyAgICBKU0NvbnRleHRSZWYgY29udGV4dCA9IFdLQnVuZGxl
RnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOworICAgIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEID0gV0tCdW5kbGVHZXRXZWJOb3RpZmljYXRpb25JRChJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuYnVuZGxlKCksIGNvbnRleHQsIG5vdGlmaWNhdGlvbik7CisgICAgSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLnBvc3RTaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKG5vdGlmaWNh
dGlvbklEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDMyYjQzZmYuLjRjMTI4
NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSB7IHNldFNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2sodHJ1ZSk7IH0KICAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSB7IG1fZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrcyA9IHRydWU7IH0KICAgICB2b2lkIGR1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCkgeyBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzID0gdHJ1
ZTsgfQorICAgIHZvaWQgZHVtcFdlYk5vdGlmaWNhdGlvbkNhbGxiYWNrcygpIHsgbV9kdW1wV2Vi
Tm90aWZpY2F0aW9uQ2FsbGJhY2tzID0gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRTaG91bGREdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tz
ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2soYm9vbCB2YWx1ZSkgeyBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSB2YWx1ZTsg
fQpAQCAtMTY2LDYgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZER1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVk
Q2FsbGJhY2s7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBj
b25zdCB7IHJldHVybiBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7IH0KICAgICBib29sIHNo
b3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1w
UmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsgfQorICAgIGJvb2wgc2hvdWxkRHVtcFdlYk5vdGlm
aWNhdGlvbkNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFdlYk5vdGlmaWNhdGlvbkNh
bGxiYWNrczsgfQogCiAgICAgYm9vbCBpc1BvbGljeURlbGVnYXRlRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOyB9CiAgICAgYm9vbCBpc1BvbGljeURlbGVn
YXRlUGVybWlzc2l2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZl
OyB9CkBAIC0yMjQsNiArMjI2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc0N1c3RvbUZ1
bGxTY3JlZW5CZWhhdmlvcihib29sIHZhbHVlKSB7IG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9y
ID0gdmFsdWU7IH0KICAgICBib29sIGhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlvcigpIGNvbnN0
IHsgcmV0dXJuIG1fY3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yOyB9CiAKKyAgICAvLyBXZWIgbm90
aWZpY2F0aW9ucy4KKyAgICB2b2lkIGdyYW50V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihKU1N0
cmluZ1JlZiBvcmlnaW4pOworICAgIHZvaWQgZGVueVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24o
SlNTdHJpbmdSZWYgb3JpZ2luKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBl
cm1pc3Npb25zKCk7CisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKEpTVmFs
dWVSZWYgbm90aWZpY2F0aW9uKTsKKwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0
Zm9ybU5hbWUoKTsKIAogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3Rh
dGUpOwpAQCAtMjUzLDYgKzI2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2R1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2s7CiAgICAgYm9vbCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7
CiAgICAgYm9vbCBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOworICAgIGJvb2wgbV9k
dW1wV2ViTm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogICAgIGJvb2wgbV93YWl0VG9EdW1wOyAvLyBU
cnVlIGlmIHdhaXRVbnRpbERvbmUoKSBoYXMgYmVlbiBjYWxsZWQsIGJ1dCBub3RpZnlEb25lKCkg
aGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQuCiAgICAgYm9vbCBtX3Rlc3RSZXBhaW50OwogICAgIGJv
b2wgbV90ZXN0UmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkMThmZTNmLi45MTI4YjBmIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzAsNiArMzAsOSBAQAogI2luY2x1
ZGUgIlN0cmluZ0Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgIlRlc3RJbnZvY2F0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05v
dGlmaWNhdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tOb3RpZmljYXRpb25NYW5hZ2VyLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS051bWJlci5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3Jv
dXAuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZVByaXZhdGUuaD4KQEAgLTMzMyw2ICszMzYs
MTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hh
ciogYXJndltdKQogICAgIH07CiAgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQo
bV9jb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQpOwogCisgICAgV0tOb3RpZmlj
YXRpb25NYW5hZ2VyUmVmIG5vdGlmaWNhdGlvbk1hbmFnZXIgPSBXS0NvbnRleHRHZXROb3RpZmlj
YXRpb25NYW5hZ2VyKG1fY29udGV4dC5nZXQoKSk7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
ciBub3RpZmljYXRpb25LaXQgPSBtX3dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLnByb3ZpZGVyKCk7
CisgICAgV0tOb3RpZmljYXRpb25NYW5hZ2VyU2V0UHJvdmlkZXIobm90aWZpY2F0aW9uTWFuYWdl
ciwgJm5vdGlmaWNhdGlvbktpdCk7CisKICAgICBpZiAodGVzdFBsdWdpbkRpcmVjdG9yeSgpKQog
ICAgICAgICBXS0NvbnRleHRTZXRBZGRpdGlvbmFsUGx1Z2luc0RpcmVjdG9yeShtX2NvbnRleHQu
Z2V0KCksIHRlc3RQbHVnaW5EaXJlY3RvcnkoKSk7CiAKQEAgLTM4Miw3ICszODksNyBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10p
CiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQKICAgICAgICAgY3JlYXRl
T3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAotICAgICAg
ICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAg
ICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgLy8gZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKICAgICAgICAgMCwgLy8g
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdl
VUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKQEAgLTUwMSw2
ICs1MDgsOSBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKCkKICAgICAvLyBSZS1zZXQgdG8gdGhlIGRlZmF1bHQgYmFja2luZyBzY2FsZSBmYWN0b3Ig
Ynkgc2V0dGluZyB0aGUgY3VzdG9tIHNjYWxlIGZhY3RvciB0byAwLgogICAgIFdLUGFnZVNldEN1
c3RvbUJhY2tpbmdTY2FsZUZhY3RvcihtX21haW5XZWJWaWV3LT5wYWdlKCksIDApOwogCisgICAg
Ly8gUmVzZXQgbm90aWZpY2F0aW9uIHBlcm1pc3Npb25zCisgICAgbV93ZWJOb3RpZmljYXRpb25Q
cm92aWRlci5yZXNldCgpOworCiAgICAgLy8gUmVzZXQgbWFpbiBwYWdlIGJhY2sgdG8gYWJvdXQ6
YmxhbmsKICAgICBtX2RvbmVSZXNldHRpbmcgPSBmYWxzZTsKIApAQCAtOTIxLDQgKzkzMSwxOSBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjpwcm9jZXNzRGlkQ3Jhc2goKQogICAgICAgICBleGl0KDEp
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNr
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXIuc2ltdWxhdGVXZWJOb3RpZmljYXRpb25DbGljayhub3RpZmljYXRpb25JRCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQoreworICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lk
Kj4oY2xpZW50SW5mbykpLT5kZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdChwYWdlLCBvcmlnaW4sIHJlcXVlc3QpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpk
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdL
U2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcmVx
dWVzdCkKK3sKKyAgICBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0QWxsb3cocmVxdWVz
dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDAxMmFiN2UuLjRiZWUyMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKQEAgLTI5LDcgKzI5LDEyIEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTYyLDYg
KzY3LDggQEAgcHVibGljOgogICAgIGJvb2wgYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlOyB9CiAgICAgdm9pZCBzZXRCZWZv
cmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZhbHVlKSB7IG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFs
dWUgPSB2YWx1ZTsgfQogCisgICAgdm9pZCBzaW11bGF0ZVdlYk5vdGlmaWNhdGlvbkNsaWNrKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKwogICAgIGJvb2wgcmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcygpOwogCiBwcml2YXRlOgpAQCAtOTQsNiArMTAxLDkgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKICAgICB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpOwogCisgICAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1Nl
Y3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVmLCBjb25z
dCB2b2lkKik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RSZWYpOworCiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBh
Z2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0tEaWN0aW9uYXJ5UmVmLCBX
S0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIGNvbnN0IHZvaWQqKTsKIAogICAg
IHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CkBAIC0xMTIsNiArMTIyLDggQEAgcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbV9pbmplY3RlZEJ1bmRsZVBhdGg7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1f
dGVzdFBsdWdpbkRpcmVjdG9yeTsKIAorICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fd2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXI7CisKICAgICBPd25QdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21h
aW5XZWJWaWV3OwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwogICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBtX3BhZ2VHcm91cDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZmQzNWFmOS4uYTU0ZmY2NyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTMzOSw2ICszMzksMTMg
QEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2ltdWxhdGVX
ZWJOb3RpZmljYXRpb25DbGljayIpKSB7CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNz
YWdlQm9keSkgPT0gV0tVSW50NjRHZXRUeXBlSUQoKSk7CisgICAgICAgIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEID0gV0tVSW50NjRHZXRWYWx1ZShzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4obWVz
c2FnZUJvZHkpKTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLnNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2sobm90aWZpY2F0aW9uSUQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYmU4MjYyZi4uN2NlZGQwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM0LDYgKzM0LDcgQEAKIAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0
NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYg
LyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIx
NDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZDRTExNDVGMDM3
QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQky
OUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThG
Q0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1t
ICovOyB9OworCQkzMTY0QzhGMDE1RDFBREExMDBFRjFGRTAgLyogV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAq
LzsgfTsKIAkJNTMyMkZCNDMxM0ZEQTBDRDAwNDFBQkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVj
ay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIy
RkI0MTEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCAqLzsgfTsK
IAkJNTMyMkZCNDYxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyMkZCNDQxM0ZEQTBF
QTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovOyB9OwogCQk1NjQxRTJEMDE0MzM1
RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU2NDFFMkNFMTQzMzVFOTUwMDgzMDdFNSAv
KiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtMTIwLDYgKzEyMSw4IEBACiAJ
CTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RS
dW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8qIEpTQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmg7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTI5QThGQ0U0MTQ1RjA0NjQwMDkw
NDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1h
Yy5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMTEwQkUwRjE1QkEwMTE0MDBEMjE2QUMgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2NEM4RUYxNUQxQURBMTAw
RUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc4RDQ0MjIxMzM0NkQwMDAwNkE3NzdCIC8qIGNvbmZpZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNBIC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJjb21waWxl
ZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MTgxNzMxQjEzOEFEMzlEMDA1N0FB
QTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBwYXRoID0gV2ViQ29yZVRlc3RTdXBwb3J0L1dlYkNv
cmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
MjYwLDYgKzI2Myw4IEBACiAJCQkJQkNEN0QyRjYxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZv
Y2F0aW9uLmggKi8sCiAJCQkJQkNEN0QyRjcxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0
aW9uLmNwcCAqLywKIAkJCQlCQzI1MUExNzExRDE2Nzc0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1
bm5lclByZWZpeC5oICovLAorCQkJCTMxMTBCRTBGMTVCQTAxMTQwMEQyMTZBQyAvKiBXZWJOb3Rp
ZmljYXRpb25Qcm92aWRlci5oICovLAorCQkJCTMxNjRDOEVGMTVEMUFEQTEwMEVGMUZFMCAvKiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFRlc3RSdW5u
ZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTY3LDYgKzU3Miw3IEBACiAJCQkJ
QkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDOTE5MjA1MTMzM0U0RjgwMDMwMTFEQyAvKiBUZXN0SW52b2NhdGlvbkNHLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU2NzBCODI4MTM4NkZDQTUwMDJFQjM1NSAvKiBFdmVudFNl
bmRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMzE2NEM4RjAxNUQxQURBMTAwRUYxRkUw
IC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzI3Nzk4Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTAs
MCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKworI2luY2x1ZGUgPFdlYktpdDIvV0tNdXRhYmxl
QXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTm90aWZpY2F0aW9uLmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS051bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tTZWN1cml0eU9yaWdpbi5o
PgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitzdGF0
aWMgdm9pZCBzaG93V2ViTm90aWZpY2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05vdGlmaWNhdGlv
blJlZiBub3RpZmljYXRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgc3RhdGlj
X2Nhc3Q8V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSktPnNob3dXZWJOb3RpZmljYXRpb24ocGFnZSwgbm90aWZpY2F0aW9uKTsKK30KKworc3Rh
dGljIHZvaWQgY2xvc2VXZWJOb3RpZmljYXRpb24oV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0
aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5jbG9zZVdl
Yk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOworfQorCitzdGF0aWMgdm9pZCBhZGROb3RpZmlj
YXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5hZGROb3RpZmljYXRpb25NYW5hZ2Vy
KG1hbmFnZXIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdL
Tm90aWZpY2F0aW9uTWFuYWdlclJlZiBtYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpLT5yZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKG1hbmFnZXIpOwor
fQorCitzdGF0aWMgV0tEaWN0aW9uYXJ5UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5ub3RpZmljYXRp
b25QZXJtaXNzaW9ucygpOworfQorCitXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6V2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIoKQoreworfQorCitXS05vdGlmaWNhdGlvblByb3ZpZGVyIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyOjpwcm92aWRlcigpCit7CisgICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
ciBub3RpZmljYXRpb25Qcm92aWRlciA9IHsKKyAgICAgICAga1dLTm90aWZpY2F0aW9uUHJvdmlk
ZXJDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgdGhpcywKKyAgICAgICAgV1RSOjpzaG93V2ViTm90
aWZpY2F0aW9uLAorICAgICAgICBXVFI6OmNsb3NlV2ViTm90aWZpY2F0aW9uLAorICAgICAgICAw
LCAvLyBkaWREZXN0cm95Tm90aWZpY2F0aW9uCisgICAgICAgIFdUUjo6YWRkTm90aWZpY2F0aW9u
TWFuYWdlciwKKyAgICAgICAgV1RSOjpyZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyLAorICAgICAg
ICBXVFI6Om5vdGlmaWNhdGlvblBlcm1pc3Npb25zLAorICAgICAgICAwLCAvLyBjbGVhck5vdGlm
aWNhdGlvbnMKKyAgICB9OworICAgIHJldHVybiBub3RpZmljYXRpb25Qcm92aWRlcjsKK30KKwor
dm9pZCBXZWJOb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvd1dlYk5vdGlmaWNhdGlvbihXS1BhZ2VS
ZWYsIFdLTm90aWZpY2F0aW9uUmVmIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAoIW1fbm90aWZp
Y2F0aW9uTWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgdWludDY0X3QgaWQgPSBXS05v
dGlmaWNhdGlvbkdldElEKG5vdGlmaWNhdGlvbik7CisgICAgSGFzaFNldDx1aW50NjRfdD46OkFk
ZFJlc3VsdCByZXN1bHQgPSBtX3Nob3duTm90aWZpY2F0aW9ucy5hZGQoaWQpOworICAgIEFTU0VS
VChyZXN1bHQuaXNOZXdFbnRyeSk7CisKKyAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRl
ckRpZFNob3dOb3RpZmljYXRpb24obV9ub3RpZmljYXRpb25NYW5hZ2VyLmdldCgpLCBXS05vdGlm
aWNhdGlvbkdldElEKG5vdGlmaWNhdGlvbikpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyOjpjbG9zZVdlYk5vdGlmaWNhdGlvbihXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRp
b24pCit7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIHVpbnQ2NF90IGlkID0gV0tOb3RpZmljYXRpb25HZXRJRChub3RpZmljYXRpb24pOwor
ICAgIFdLUmV0YWluUHRyPFdLVUludDY0UmVmPiB3a0lEID0gV0tVSW50NjRDcmVhdGUoaWQpOwor
ICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZUFycmF5UmVmPiBhcnJheShBZG9wdFdLLCBXS011dGFi
bGVBcnJheUNyZWF0ZSgpKTsKKyAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJheS5nZXQoKSwgd2tJ
RC5nZXQoKSk7CisgICAgbV9zaG93bk5vdGlmaWNhdGlvbnMucmVtb3ZlKGlkKTsKKyAgICBXS05v
dGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZENsb3NlTm90aWZpY2F0aW9ucyhtX25vdGlmaWNh
dGlvbk1hbmFnZXIuZ2V0KCksIGFycmF5LmdldCgpKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRp
b25Qcm92aWRlcjo6YWRkTm90aWZpY2F0aW9uTWFuYWdlcihXS05vdGlmaWNhdGlvbk1hbmFnZXJS
ZWYgbWFuYWdlcikKK3sKKyAgICAvLyBXZSBhc3N1bWUgdGhlcmUgaXMgb25seSBvbmUgZm9yIHRl
c3RpbmcuCisgICAgQVNTRVJUKCFtX25vdGlmaWNhdGlvbk1hbmFnZXIpOworICAgIG1fbm90aWZp
Y2F0aW9uTWFuYWdlciA9IG1hbmFnZXI7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXI6OnJlbW92ZU5vdGlmaWNhdGlvbk1hbmFnZXIoV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG1h
bmFnZXIpCit7CisgICAgLy8gV2UgYXNzdW1lIHRoZXJlIGlzIG9ubHkgb25lIGZvciB0ZXN0aW5n
LgorICAgIEFTU0VSVChtX25vdGlmaWNhdGlvbk1hbmFnZXIpOworICAgIEFTU0VSVChtX25vdGlm
aWNhdGlvbk1hbmFnZXIuZ2V0KCkgPT0gbWFuYWdlcik7CisgICAgbV9ub3RpZmljYXRpb25NYW5h
Z2VyID0gMDsKK30KKworV0tEaWN0aW9uYXJ5UmVmIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyOjpu
b3RpZmljYXRpb25QZXJtaXNzaW9ucygpCit7CisgICAgLy8gSW5pdGlhbCBwZXJtaXNzaW9ucyBh
cmUgYWx3YXlzIGVtcHR5LgorICAgIHJldHVybiBXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCk7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6OnNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2sodWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgaWYgKCFtX25vdGlmaWNh
dGlvbk1hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX3Nob3duTm90aWZp
Y2F0aW9ucy5jb250YWlucyhub3RpZmljYXRpb25JRCkpOworICAgIFdLTm90aWZpY2F0aW9uTWFu
YWdlclByb3ZpZGVyRGlkQ2xpY2tOb3RpZmljYXRpb24obV9ub3RpZmljYXRpb25NYW5hZ2VyLmdl
dCgpLCBub3RpZmljYXRpb25JRCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI6
OnJlc2V0KCkKK3sKKyAgICBpZiAoIW1fbm90aWZpY2F0aW9uTWFuYWdlcikgeworICAgICAgICBt
X3Nob3duTm90aWZpY2F0aW9ucy5jbGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlQXJyYXlSZWY+IGFycmF5KEFkb3B0V0ssIFdLTXV0YWJs
ZUFycmF5Q3JlYXRlKCkpOworICAgIEhhc2hTZXQ8dWludDY0X3Q+Ojpjb25zdF9pdGVyYXRvciBp
dEVuZCA9IG1fc2hvd25Ob3RpZmljYXRpb25zLmVuZCgpOworICAgIGZvciAoSGFzaFNldDx1aW50
NjRfdD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9zaG93bk5vdGlmaWNhdGlvbnMuYmVnaW4oKTsg
aXQgIT0gaXRFbmQ7ICsraXQpIHsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tVSW50NjRSZWY+IHdr
SUQgPSBXS1VJbnQ2NENyZWF0ZSgqaXQpOworICAgICAgICBXS0FycmF5QXBwZW5kSXRlbShhcnJh
eS5nZXQoKSwgd2tJRC5nZXQoKSk7CisgICAgfQorCisgICAgbV9zaG93bk5vdGlmaWNhdGlvbnMu
Y2xlYXIoKTsKKyAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZENsb3NlTm90aWZp
Y2F0aW9ucyhtX25vdGlmaWNhdGlvbk1hbmFnZXIuZ2V0KCksIGFycmF5LmdldCgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkx
MTRjZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJOb3RpZmljYXRpb25Qcm92aWRlcl9oCisjZGVmaW5lIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVy
X2gKKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS05vdGlm
aWNhdGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLTm90aWZpY2F0aW9uUHJvdmlk
ZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXVFIg
eworCitjbGFzcyBXZWJOb3RpZmljYXRpb25Qcm92aWRlciB7CitwdWJsaWM6CisgICAgV2ViTm90
aWZpY2F0aW9uUHJvdmlkZXIoKTsKKyAgICBXS05vdGlmaWNhdGlvblByb3ZpZGVyIHByb3ZpZGVy
KCk7CisKKyAgICB2b2lkIHNob3dXZWJOb3RpZmljYXRpb24oV0tQYWdlUmVmLCBXS05vdGlmaWNh
dGlvblJlZik7CisgICAgdm9pZCBjbG9zZVdlYk5vdGlmaWNhdGlvbihXS05vdGlmaWNhdGlvblJl
Zik7CisgICAgdm9pZCBhZGROb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9uTWFuYWdl
clJlZik7CisgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25NYW5hZ2VyKFdLTm90aWZpY2F0aW9u
TWFuYWdlclJlZik7CisgICAgV0tEaWN0aW9uYXJ5UmVmIG5vdGlmaWNhdGlvblBlcm1pc3Npb25z
KCk7CisKKyAgICB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0aW9uQ2xpY2sodWludDY0X3Qgbm90
aWZpY2F0aW9uSUQpOworICAgIHZvaWQgcmVzZXQoKTsKKworcHJpdmF0ZToKKyAgICBXS1JldGFp
blB0cjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY+IG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKKyAg
ICBIYXNoU2V0PHVpbnQ2NF90PiBtX3Nob3duTm90aWZpY2F0aW9uczsKK307CisKK30KKworI2Vu
ZGlmCg==
</data>
<flag name="review"
          id="171270"
          type_id="1"
          status="-"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>