<?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>154246</bug_id>
          
          <creation_ts>2016-02-15 10:26:48 -0800</creation_ts>
          <short_desc>Use high resolution timestamp for event time</short_desc>
          <delta_ts>2018-04-26 12:43:44 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177308</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=177449</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>185040</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eoconnor</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>flackr</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>majidvp</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rbyers</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1164772</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-02-15 10:26:48 -0800</bug_when>
    <thetext>We should consider switching the timestamp we use for events, per:

https://developers.google.com/web/updates/2016/01/high-res-timestamps
https://github.com/whatwg/dom/issues/23</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187575</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-26 16:26:41 -0700</bug_when>
    <thetext>Seems like we should hold off on this until the issues discussed in https://github.com/whatwg/dom/issues/23 have been resolved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1187623</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-26 19:12:31 -0700</bug_when>
    <thetext>There are multiple stack overflow posting about this behavior in Chrome:
http://stackoverflow.com/questions/34323019/jquery-javascript-event-timestamp-doesnt-work

A pattern of code that uses Event.prototype.timeStamp for `setTime` appears in various cookbooks:
https://github.com/andygnewman/javascript-jquery-book/blob/2de6e8b0b4755c257675d5d00300f17e3e0c26fa/c07/js/event-object.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346824</commentid>
    <comment_count>3</comment_count>
    <who name="Majid Valipour">majidvp</who>
    <bug_when>2017-09-08 09:30:55 -0700</bug_when>
    <thetext>Here is some update on this feature:

High resolution event timestamps has been shipped in Chrome since M49[1] (released March 2016) and in Firefox stable since M54 [2] (released June 2017) and in Microsoft Edge Since EdgeHTML 14 [3].  WHATWG DOM spec has been updated [4] to reflect this with appropriate tests upstreamed to web-platform-tests.

Also we have received very positive feedback from Facebook [5] about the usefulness of high resolution event timestamp in scroll performance investigations.

I think at this point it is pretty safe to make the conversion given that it has been shipping for a while in 3 major browsers and our experience so far has been that backward compatibility issues are reasonably small and manageable.



[1] https://www.chromestatus.com/feature/5523910145605632
[2] https://developer.mozilla.org/en-US/Firefox/Releases/54
[3] https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12726672/
[4] https://dom.spec.whatwg.org/#dom-event-timestamp
[5] https://github.com/whatwg/dom/issues/23#issuecomment-249319401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346851</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-08 10:23:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/34333304&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350821</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 10:26:31 -0700</bug_when>
    <thetext>Test: http://w3c-test.org/dom/events/Event-timestamp-high-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350843</commentid>
    <comment_count>6</comment_count>
    <who name="Majid Valipour">majidvp</who>
    <bug_when>2017-09-20 10:52:52 -0700</bug_when>
    <thetext>And also: http://w3c-test.org/dom/events/Event-timestamp-safe-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350920</commentid>
    <comment_count>7</comment_count>
      <attachid>321348</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 13:20:16 -0700</bug_when>
    <thetext>Created attachment 321348
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351049</commentid>
    <comment_count>8</comment_count>
      <attachid>321384</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 16:26:25 -0700</bug_when>
    <thetext>Created attachment 321384
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351052</commentid>
    <comment_count>9</comment_count>
      <attachid>321385</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 16:36:29 -0700</bug_when>
    <thetext>Created attachment 321385
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351053</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-20 16:38:55 -0700</bug_when>
    <thetext>Attachment 321385 did not pass style-queue:


ERROR: Source/WebCore/dom/Event.cpp:229:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/html/TypeAhead.h:28:  wtf includes should be &lt;wtf/file.h&gt; instead of &quot;wtf/file.h&quot;.  [build/include] [4]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 6 in 54 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>1351057</commentid>
    <comment_count>11</comment_count>
      <attachid>321387</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 16:45:20 -0700</bug_when>
    <thetext>Created attachment 321387
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351058</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-20 16:47:04 -0700</bug_when>
    <thetext>Attachment 321387 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 7 in 56 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>1351060</commentid>
    <comment_count>13</comment_count>
      <attachid>321388</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 16:54:48 -0700</bug_when>
    <thetext>Created attachment 321388
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351061</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-20 16:56:06 -0700</bug_when>
    <thetext>Attachment 321388 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 7 in 57 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>1351064</commentid>
    <comment_count>15</comment_count>
      <attachid>321390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-20 17:05:01 -0700</bug_when>
    <thetext>Created attachment 321390
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351065</commentid>
    <comment_count>16</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-20 17:06:09 -0700</bug_when>
    <thetext>Attachment 321390 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 59 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>1351196</commentid>
    <comment_count>17</comment_count>
      <attachid>321430</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 08:57:14 -0700</bug_when>
    <thetext>Created attachment 321430
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351197</commentid>
    <comment_count>18</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 08:58:30 -0700</bug_when>
    <thetext>Attachment 321430 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 8 in 61 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>1351203</commentid>
    <comment_count>19</comment_count>
      <attachid>321432</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 09:21:40 -0700</bug_when>
    <thetext>Created attachment 321432
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351204</commentid>
    <comment_count>20</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 09:23:55 -0700</bug_when>
    <thetext>Attachment 321432 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 64 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>1351205</commentid>
    <comment_count>21</comment_count>
      <attachid>321433</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 09:25:27 -0700</bug_when>
    <thetext>Created attachment 321433
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351208</commentid>
    <comment_count>22</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 09:27:01 -0700</bug_when>
    <thetext>Attachment 321433 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 64 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>1351212</commentid>
    <comment_count>23</comment_count>
      <attachid>321435</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 09:29:02 -0700</bug_when>
    <thetext>Created attachment 321435
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351218</commentid>
    <comment_count>24</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 09:34:07 -0700</bug_when>
    <thetext>Attachment 321435 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 65 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>1351220</commentid>
    <comment_count>25</comment_count>
      <attachid>321437</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 09:36:53 -0700</bug_when>
    <thetext>Created attachment 321437
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351226</commentid>
    <comment_count>26</comment_count>
      <attachid>321440</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 09:44:49 -0700</bug_when>
    <thetext>Created attachment 321440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351229</commentid>
    <comment_count>27</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 09:47:41 -0700</bug_when>
    <thetext>Attachment 321440 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 71 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>1351305</commentid>
    <comment_count>28</comment_count>
      <attachid>321458</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 11:53:51 -0700</bug_when>
    <thetext>Created attachment 321458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351306</commentid>
    <comment_count>29</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 11:55:06 -0700</bug_when>
    <thetext>Attachment 321458 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 75 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>1351318</commentid>
    <comment_count>30</comment_count>
      <attachid>321462</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 12:17:13 -0700</bug_when>
    <thetext>Created attachment 321462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351322</commentid>
    <comment_count>31</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 12:20:22 -0700</bug_when>
    <thetext>Attachment 321462 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 9 in 76 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>1351327</commentid>
    <comment_count>32</comment_count>
      <attachid>321463</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 12:40:40 -0700</bug_when>
    <thetext>Created attachment 321463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351328</commentid>
    <comment_count>33</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 12:41:50 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351330</commentid>
    <comment_count>34</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 12:42:14 -0700</bug_when>
    <thetext>Attachment 321463 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp&quot;
Total errors found: 9 in 77 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>1351336</commentid>
    <comment_count>35</comment_count>
      <attachid>321466</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 12:55:49 -0700</bug_when>
    <thetext>Created attachment 321466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351337</commentid>
    <comment_count>36</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 12:57:52 -0700</bug_when>
    <thetext>Attachment 321466 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp&quot;
Total errors found: 9 in 78 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>1351361</commentid>
    <comment_count>37</comment_count>
      <attachid>321473</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 13:31:49 -0700</bug_when>
    <thetext>Created attachment 321473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351362</commentid>
    <comment_count>38</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 13:33:22 -0700</bug_when>
    <thetext>Attachment 321473 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp&quot;
Total errors found: 9 in 79 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>1351370</commentid>
    <comment_count>39</comment_count>
      <attachid>321474</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 13:49:51 -0700</bug_when>
    <thetext>Created attachment 321474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351371</commentid>
    <comment_count>40</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-21 13:52:07 -0700</bug_when>
    <thetext>Attachment 321474 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp&quot;
Total errors found: 9 in 79 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>1351432</commentid>
    <comment_count>41</comment_count>
      <attachid>321474</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-21 16:02:05 -0700</bug_when>
    <thetext>Comment on attachment 321474
Patch

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

&gt; LayoutTests/imported/w3c/web-platform-tests/dom/events/Event-timestamp-high-resolution-expected.txt:2
&gt; +PASS Constructed MouseEvent timestamp should be high resolution and have the same time origin as performance.now() 

In performance.now we explicitly call reduceTimeResolution to prevent nanosecond time from being available to JavaScript.  I see no such thing in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351445</commentid>
    <comment_count>42</comment_count>
      <attachid>321474</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-21 16:11:13 -0700</bug_when>
    <thetext>Comment on attachment 321474
Patch

Yeah, we need to call reduceTimeResolution everywhere. r- because this introduces a new timing attack vulnerability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351451</commentid>
    <comment_count>43</comment_count>
      <attachid>321474</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 16:24:33 -0700</bug_when>
    <thetext>Comment on attachment 321474
Patch

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

&gt; Source/WebCore/page/Performance.cpp:88
&gt; +    return reduceTimeResolution(seconds).milliseconds();

The reduceTimeResolution() call is here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351453</commentid>
    <comment_count>44</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-21 16:27:00 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #43)
&gt; Comment on attachment 321474 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=321474&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:88
&gt; &gt; +    return reduceTimeResolution(seconds).milliseconds();
&gt; 
&gt; The reduceTimeResolution() call is here...

And this is covered by imported/w3c/web-platform-tests/dom/events/Event-timestamp-safe-resolution.html which still passes after my change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351484</commentid>
    <comment_count>45</comment_count>
      <attachid>321474</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-09-21 17:39:52 -0700</bug_when>
    <thetext>Comment on attachment 321474
Patch

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

&gt; Source/WebCore/page/Performance.cpp:85
&gt; +DOMHighResTimeStamp Performance::monotonicTimeToHighResTimeStamp(MonotonicTime timestamp) const

I don&apos;t think converts MonotonicTime to DOMHighResTimeStamp is the most interesting aspect of this function.
I&apos;d rather focus on the fact this computes time relative to the time origin and that it reduces the resolution is more interesting &amp; important information to communicate.
So why don&apos;t we call this something like relativeTimeFromTimeOriginInReducedResolution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351665</commentid>
    <comment_count>46</comment_count>
      <attachid>321551</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-22 08:55:15 -0700</bug_when>
    <thetext>Created attachment 321551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351668</commentid>
    <comment_count>47</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-22 08:58:20 -0700</bug_when>
    <thetext>Attachment 321551 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:64:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/mac/NativeWebGestureEventMac.mm:66:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKit/Shared/gtk/WebEventFactory.cpp:143:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/page/DragController.cpp:131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit/Shared/ios/NativeWebTouchEventIOS.mm:125:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/dom/TouchEvent.cpp:45:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/WebKitLegacy/mac/WebView/WebFrame.mm:967:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp&quot;
Total errors found: 9 in 79 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>1351681</commentid>
    <comment_count>48</comment_count>
      <attachid>321556</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-22 09:39:13 -0700</bug_when>
    <thetext>Created attachment 321556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351689</commentid>
    <comment_count>49</comment_count>
      <attachid>321556</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-22 10:13:12 -0700</bug_when>
    <thetext>Comment on attachment 321556
Patch

Clearing flags on attachment: 321556

Committed r222392: &lt;http://trac.webkit.org/changeset/222392&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1351690</commentid>
    <comment_count>50</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-22 10:13:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352296</commentid>
    <comment_count>51</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 11:54:12 -0700</bug_when>
    <thetext>This caused bug #177444, bug #177447, and bug #177449. I won&apos;t roll it out, but if you could check and see if anything looks immediately suspicious, that would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352319</commentid>
    <comment_count>52</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 12:21:54 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #51)
&gt; This caused bug #177444, bug #177447, and bug #177449. I won&apos;t roll it out,
&gt; but if you could check and see if anything looks immediately suspicious,
&gt; that would be great.

One of them is expected. The 2 others may indicate something wrong with my patch but in GTK-specific code (since it did not cause any failures on Mac / iOS). I&apos;ll take a look at the GTK parts in this patch to see if I find what I did wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352358</commentid>
    <comment_count>53</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-09-25 12:57:20 -0700</bug_when>
    <thetext>By the way, thanks a bunch for trying to update our ports!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1359208</commentid>
    <comment_count>54</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-11 09:05:09 -0700</bug_when>
    <thetext>*** Bug 94987 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321348</attachid>
            <date>2017-09-20 13:20:16 -0700</date>
            <delta_ts>2017-09-20 14:26:40 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>33971</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2NkZDhmYjc3OWIuLjlmYWJiNGY4NTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU5LDYgKzE5NTksNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQyLDYgKzk4NDMs
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNTUsNiArMjYyNTcsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA3LDYgKzI3NzEwLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI4ODMyLDcg
KzI4ODM2LDYgQEAKIAkJCQkzMTZEQ0IyMDFFNzhDQTU1MDAxQjVGODcgLyogSlNSVENPZmZlckFu
c3dlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTY5REJBMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1BlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzk2OURCODE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMThDMzU0NDFGNzE5NzBDMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNl
V2ViUmVzb3VyY2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJDNDM3NDFCQ0YwRDc1
MDAwMUUyQkUgLyogSlNSVENSdHBQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJD
NDM3MjFCQ0YwRDc1MDAwMUUyQkMgLyogSlNSVENSdHBSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUUyQzQzNzQxQkNGMEQ3NTAwMDFFMkJDIC8qIEpTUlRDUnRwU2VuZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMwMzE3LDcgKzMwMzIwLDYgQEAKIAkJCQkwODA2RTU3QTEyODkzMDQ1MDA3
Q0VEMzIgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOENBM0Q0NDEyODk0QTM4
MDBGRkYyNjAgLyogU1ZHTWF0cml4VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThE
NUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlFMTg1MzY4NDFGNEU0ODE0MDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0
cmlidXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNEIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMUYyQjEw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzA2NTEsNiArMzA2NTMsOCBAQAogCQkJCUFBQTcyOEY3MTZEMUQ4QkMw
MEQzQkJDNiAvKiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQUE0NzhBN0YxNkNENzBDMzAwN0QxQkI0IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQx
ODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMTg1MzY4NDFGNEU0ODE0MDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5T
QXR0cmlidXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE4QzM1NDQxRjcxOTcwQzAw
RkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RFNjY3QTUxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCMkE2MjYxRUYxQkY2RDAwMkI5RDdBIC8qIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RDYzNzQwMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMjA3MSw3ICszMjA3NSw2IEBACiAJCQkJRTEyREU3MTcxRTRCNzQ5QzAwRjlBQ0NGIC8q
IEdyaWRUcmFja1NpemluZ0FsZ29yaXRobS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTRDMjVE
NzFFOUVGRURFMDBCRUUxNDEgLyogSDI2NFZpZGVvVG9vbEJveEVuY29kZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQlGNTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1By
aXZhdGVCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNUJFMTlCMUQ1NEY2QzEwMEREN0M2
OCAvKiBISURHYW1lcGFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNUJFMTlEMUQ1NEY2QzEw
MEREN0M2OCAvKiBISURHYW1lcGFkUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5
NEQxNTMwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0z
MjY1Niw3ICszMjY1OSw2IEBACiAJCQkJQTYxNDhBNzgxMkU0MUUzQjAwNDRBNzg0IC8qIEpTSFRN
TEtleWdlbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFCMjEwQTFDRTYzQjAw
QjQyQjI1IC8qIEpTSFRNTExhYmVsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUUy
QUIyMzBBMUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTGVnZW5kRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlFMThDMzU0MzFGNzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNl
V2ViUmVzb3VyY2VIYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFCMjUwQTFDRTYz
QjAwQjQyQjI1IC8qIEpTSFRNTExJRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBF
N0IxMDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFFMkFCMjcwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1hcEVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0zMjgyNCw3ICszMjgyNiw2IEBACiAJCQkJQTFDQzU2NzgxRjQ2
MTRBNTAwQTQ1NTVCIC8qIEpTUGF5bWVudFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTFGNjAwNTcxRjQ3NjUwNTAwNzdFODNGIC8qIEpTUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUY2MDA1OTFGNDc2NTA1MDA3N0U4M0YgLyogSlNQYXlt
ZW50UmVxdWVzdFVwZGF0ZUV2ZW50SW5pdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTg1MzY4
NTFGNTA5MDYxMDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0
cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQ0M1NjdBMUY0NjE0QUEwMEE0NTU1QiAvKiBK
U1BheW1lbnRSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUNDNTY3QzFGNDYxNEFG
MDBBNDU1NUIgLyogSlNQYXltZW50U2hpcHBpbmdPcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFDQzU2N0UxRjQ2MTRCNDAwQTQ1NTVCIC8qIEpTUGF5bWVudFNoaXBwaW5nVHlwZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTM0MzI5LDYgKzM0MzMwLDcgQEAKIAkJCQkwNzAzMzREOTE0NUEw
MDZGMDA4RDhENDUgLyogVHJhY2tCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MDMzNEQz
MTQ1OUZGQUQwMDhEOEQ0NSAvKiBUcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJF
ODhFMEMxMTcxNUNFMjYwMDY1OEQ5OCAvKiBUcmFja0xpc3RCYXNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTA3M0JEQzA1MUY2ODQzNjEwMEVFMzRFRCAvKiBUcmFja1ByaXZhdGVCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZGQUMzMEZGMTg0RkIxNDUwMDhDNEYxRSAvKiBUcmFpbGluZ09i
amVjdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEN0VGRUMxQkRFRkE1MTAwRTkzRTEwIC8q
IFRyYW5zYWN0aW9uT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RTkxMUMzMEVG
ODZENDcwMDlEMENBRiAvKiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTM0NDMxLDYgKzM0NDMzLDggQEAKIAkJCQlBQTQ3OEE4MDE2Q0Q3MEMzMDA3RDFCQjQgLyog
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDNFRjQ0OTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVn
YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTIwREUzRUQxQzg2Q0EzRTAwQjZENEREIC8qIFdl
YkFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTg1MzY4NTFGNTA5MDYxMDBGRTA5
MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxOEMzNTQzMUY3MTk3MDEwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3Vy
Y2VXZWJSZXNvdXJjZUhhbmRsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREU2NjdBNDFFNEJC
RjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3RDYzNzQxMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTMxMUNCRjc0REEwMDkwMUNDRiAvKiBXZWJB
VlBsYXllckNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
SGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01I
aWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNUaW1lU3RhbXAg
PSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi40MmQ4ZmE5
NjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXZlbnRQYXRoLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3Jt
YW5jZS5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBFdmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6
IG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRl
VGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwg
bV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcs
MTcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJs
ZUFyZykKICAgICAsIG1fY2FuY2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0
ZWQodHJ1ZSkKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1w
KGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygp
KQogewogfQogCi1FdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJv
b2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitF
dmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxl
QXJnLCBib29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDog
bV90eXBlKGV2ZW50VHlwZSkKICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9j
YW5CdWJibGUoY2FuQnViYmxlQXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcp
CiAgICAgLCBtX2lzVHJ1c3RlZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNv
bmRzVG9ET01UaW1lU3RhbXAodGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3Rh
bXApCiB7CiB9CiAKQEAgLTY0LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAg
ICAsIG1fY2FuY2VsYWJsZShpbml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3Nl
ZChpbml0aWFsaXplci5jb21wb3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJ
c1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGlt
ZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6
Om5vdygpKQogewogfQogCkBAIC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVy
bHlpbmdFdmVudChFdmVudCogdW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50
ID0gdW5kZXJseWluZ0V2ZW50OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1l
U3RhbXAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICBQZXJm
b3JtYW5jZSogcGVyZm9ybWFuY2UgPSBudWxscHRyOworICAgIGlmIChpczxXb3JrZXJHbG9iYWxT
Y29wZT4oY29udGV4dCkpCisgICAgICAgIHBlcmZvcm1hbmNlID0gJmRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihjb250ZXh0KS5wZXJmb3JtYW5jZSgpOworICAgIGVsc2UgaWYgKGF1dG8qIHdp
bmRvdyA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5kb21XaW5kb3coKSkKKyAgICAgICBw
ZXJmb3JtYW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFu
Y2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9u
aWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLjU3OWZhNWZhYjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5j
bHVkZSAiRE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgog
I2luY2x1ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5j
bHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KQEAgLTk2LDcgKzk3LDkgQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29t
cG9zZWQoKSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJl
dHVybiBtX2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisKKyAgICBNb25vdG9uaWNUaW1lIHRpbWVT
dGFtcEFzTW9ub3RvbmljVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAg
ICAgdm9pZCBzZXRFdmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRo
ID0gJnBhdGg7IH0KICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51
bGxwdHI7IH0KQEAgLTE3MCw3ICsxNzMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZl
bnQoSXNUcnVzdGVkID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
KTsKLSAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBi
b29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRh
cmdldCgpOwpAQCAtMTk1LDcgKzE5OCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFy
Z2V0PiBtX2N1cnJlbnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7
IG51bGxwdHIgfTsKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRp
bWVTdGFtcCBtX2NyZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAK
ICAgICBSZWZQdHI8RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRs
CmluZGV4IDUzM2YzMWNjOGQ1Li4yMzE2ODhlZGIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0x
OCw2ICsxOCw4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBl
ZGVmIGRvdWJsZSBET01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9N
U3RyaW5nIHR5cGUsIG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0
b21Ub0pTT2JqZWN0LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNo
YWRvd0RPTV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5m
b3JnZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIERPTUhpZ2hSZXNUaW1lU3Rh
bXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZlbnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlv
bmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRpb25hbCBib29sZWFuIGNhbmNlbGFibGUg
PSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNw
cAppbmRleCAyYmQ5MzFmYzQ4MC4uMGQ5N2Q3Nzc3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9h
cmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVu
dCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdp
dGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAg
ICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXko
KSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQorICAgICAgICAsIHRydWUsIHRydWUsIE1v
bm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGtleS50aW1lc3RhbXAoKSksIHZpZXcsIDAsIGtl
eS5jdHJsS2V5KCksIGtleS5hbHRLZXkoKSwga2V5LnNoaWZ0S2V5KCkKICAgICAgICAgLCBrZXku
bWV0YUtleSgpLCBmYWxzZSwga2V5Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSkpCiAgICAgLCBtX2tleUV2ZW50KHN0ZDo6bWFrZV91bmlx
dWU8UGxhdGZvcm1LZXlib2FyZEV2ZW50PihrZXkpKQogI2lmIEVOQUJMRShLRVlCT0FSRF9LRVlf
QVRUUklCVVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCmluZGV4IGViNzZkNmFmOTFmLi43
OGNlMDEzMmEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw3
ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmllCiAgICAgYm9vbCBpc0NhbmNlbGFibGUg
PSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50
ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmU7CiAK
LSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBpc0Nh
bmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LAorICAgIHJldHVybiBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQudGltZXN0YW1wKCkpLCB2aWV3LAogICAgICAgICBkZXRh
aWwsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC02MCw3ICs1OSw3IEBAIFJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRv
dyogdmllCiAgICAgICAgIHJlbGF0ZWRUYXJnZXQsIGV2ZW50LmZvcmNlKCksIGV2ZW50LnN5bnRo
ZXRpY0NsaWNrVHlwZSgpKTsKIH0KIAotUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0
ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNj
cmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKK1JlZjxNb3VzZUV2ZW50
PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93
KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwg
aW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgaW50IG1vdmVtZW50WCwg
aW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtODMsNyArODIsNyBAQCBNb3VzZUV2ZW50OjpNb3Vz
ZUV2ZW50KCkKIHsKIH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRp
bWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2Ny
ZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKK01vdXNlRXZlbnQ6
Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50
UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAg
IGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAogI2VuZGlmCkBAIC0xMDMsNyArMTAyLDcg
QEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2UKIH0KIAogTW91c2VFdmVudDo6TW91c2VFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVu
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBi
dXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJl
bGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgV1RGOjpjdXJyZW50VGltZSgpLCB2aWV3LCBkZXRhaWwsIHNjcmVlbkxv
Y2F0aW9uLCB7IH0sCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIGRldGFpbCwgc2NyZWVu
TG9jYXRpb24sIHsgfSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICB7IH0sCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGUzMDA4MmJkM2FmLi41ZjFjMDNhNDUx
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRF
dmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50
PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwg
aW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
aW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtNzEsNyArNzEsNyBAQCBw
dWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3RlZDoKLSAgICBN
b3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wg
Y2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRh
aWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRv
d0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBv
aW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5j
cHAKaW5kZXggZWJhOWE3YTkyYWUuLjY5MTVlOWMzMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJs
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAorTW91c2VSZWxhdGVkRXZlbnQ6Ok1v
dXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93
KiBET01XaW5kb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRl
dGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2lu
ZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggODBhNzMwYTIwOGEuLmUzNWQyOTNj
NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaApAQCAtNzMsNyArNzMs
NyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBNb3VzZVJlbGF0ZWRFdmVudCgpID0gZGVm
YXVsdDsKLSAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCisgICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0
aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NpbXVsYXRlZENsaWNrLmNwcAppbmRleCA2ZmIzYjRkN2Y3Mi4uYjkwNzdhMjZkYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWlu
Z0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAg
ICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50
ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAs
IHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1
bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcEFzTW9ub3RvbmljVGlt
ZSgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50
LmNwcAppbmRleCA0Y2IyMjM5ZWM1Yi4uZTgxNWFmOTdhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWIKIHsKIH0KIAotVUlF
dmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJi
bGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2
aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQorVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykK
ICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCB0aW1l
c3RhbXApCiAgICAgLCBtX3ZpZXcodmlld0FyZykKICAgICAsIG1fZGV0YWlsKGRldGFpbEFyZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5oCmluZGV4IDk3M2Q3M2VmM2ZhLi5iYWE3MzFmY2Y4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2
ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwog
ICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1Ry
dXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZl
bnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRl
LmgKaW5kZXggYmZlYTM4N2MyMTIuLjBhOGU0MDMxMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJvdGVjdGVkOgogICAgIHsK
ICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3LAorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAogICAgICAgICBpbnQgZGV0YWlsLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGJvb2wgYWx0R3Jh
cGhLZXksIGJvb2wgY2Fwc0xvY2tLZXkpCiAgICAgICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsIGRldGFpbCkKICAgICAgICAgICAg
ICwgbV9jdHJsS2V5KGN0cmxLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKaW5kZXggNTMw
ZTZiMDExOTIuLmQzNzNmMzgxZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCkBAIC01
MCw3ICs1MCw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzCiB9CiAKIFdoZWVsRXZlbnQ6Oldo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgRE9NV2luZG93KiB2aWV3
KQotICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwg
ZXZlbnQudGltZXN0YW1wKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIGV2ZW50
LnBvc2l0aW9uKCkKKyAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIHRy
dWUsIHRydWUsIE1vbm90b25pY1RpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCgp
KSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uNWZmYzZjOTllNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFTb3VyY2UqIGRhdGFTb3VyY2Up
CiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAsIG1fbGFzdFR5cGVUaW1lKDAp
CiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3RhdGljIGNvbnN0IERPTVRpbWVT
dGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHR5cGVB
aGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBzdHJpcExlYWRpbmdXaGl0ZVNw
YWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNTksMTIgKzU4LDEyIEBAIHN0YXRpYyBT
dHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIAogaW50
IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQsIE1hdGNoTW9kZUZs
YWdzIG1hdGNoTW9kZSkKIHsKLSAgICBpZiAoZXZlbnQtPnRpbWVTdGFtcCgpIDwgbV9sYXN0VHlw
ZVRpbWUpCisgICAgaWYgKGV2ZW50LT50aW1lU3RhbXBBc01vbm90b25pY1RpbWUoKSA8IG1fbGFz
dFR5cGVUaW1lKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQgb3B0aW9uQ291bnQgPSBt
X2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0YW1wIGRlbHRhID0gZXZl
bnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7Ci0gICAgbV9sYXN0VHlwZVRpbWUgPSBl
dmVudC0+dGltZVN0YW1wKCk7CisgICAgU2Vjb25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXBB
c01vbm90b25pY1RpbWUoKSAtIG1fbGFzdFR5cGVUaW1lOworICAgIG1fbGFzdFR5cGVUaW1lID0g
ZXZlbnQtPnRpbWVTdGFtcEFzTW9ub3RvbmljVGltZSgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVh
ZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2MTBhYzc4Mjg4Yi4u
ZjMzY2ExZDA3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMjUsNyArMjUsNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgInd0
Zi9Nb25vdG9uaWNUaW1lLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01OCw3ICs1OCw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBUeXBlQWhlYWREYXRhU291cmNlKiBtX2RhdGFTb3VyY2U7Ci0g
ICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5cGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9sYXN0
VHlwZVRpbWU7CiAgICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOwogICAgIFN0cmluZ0J1aWxkZXIg
bV9idWZmZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4
YWZkOWIwLi40NGU2NDVhMjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMjE5MCw3ICsyMTkwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiBkcmEKIAogICAgIHZpZXct
PmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKTsK
ICAgICBSZWY8TW91c2VFdmVudD4gbWUgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLAot
ICAgICAgICB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgbV9mcmFtZS5kb2N1bWVudCgp
LT5kZWZhdWx0VmlldygpLAorICAgICAgICB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpmcm9t
UmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXAoKSksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVs
dFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmds
b2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24o
KS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnRE
ZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZS5jcHAKaW5kZXggMWFmYTM2NDU5MTMuLmYyZTE0YmNmNzViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpj
b250ZXh0RGVzdHJveWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4
dERlc3Ryb3llZCgpOwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01I
aWdoUmVzVGltZVN0YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMg
bm93ID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJl
ZHVjZVRpbWVSZXNvbHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBA
QCBTZWNvbmRzIFBlcmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29u
ZHMpCiAgICAgcmV0dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3Rh
bXAgUGVyZm9ybWFuY2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1w
IC0gbV90aW1lT3JpZ2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRz
KS5taWxsaXNlY29uZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5j
ZTo6bmF2aWdhdGlvbigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyYy4u
ZDE0ODZiODM1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKQEAgLTMzLDYgKzMzLDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIu
aCIKKyNpbmNsdWRlICJET01IaWdoUmVzVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVl
dWUuaCIKQEAgLTU2LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFu
Y2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNb25vdG9uaWNUaW1l
IHRpbWVPcmlnaW4pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVyZm9ybWFuY2UoY29udGV4dCwg
dGltZU9yaWdpbikpOyB9CiAgICAgflBlcmZvcm1hbmNlKCk7CiAKLSAgICBkb3VibGUgbm93KCkg
Y29uc3Q7CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBub3coKSBjb25zdDsKIAogICAgIFBlcmZv
cm1hbmNlTmF2aWdhdGlvbiogbmF2aWdhdGlvbigpOwogICAgIFBlcmZvcm1hbmNlVGltaW5nKiB0
aW1pbmcoKTsKQEAgLTgyLDYgKzgzLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNlY29uZHMg
cmVkdWNlVGltZVJlc29sdXRpb24oU2Vjb25kcyk7CiAKKyAgICBET01IaWdoUmVzVGltZVN0YW1w
IG1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSkgY29uc3Q7CisK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwZWFiZTY1OTkwZC4u
ZjUyYTQ1YjU5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0xMjgxLDcgKzEyODEsNyBAQCB2b2lkIFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZM
aW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBJbnRQb2ludCBkbwogICAg
ICAgICByZXR1cm47CiAKICAgICBjb25zdCBpbnQgc2luZ2xlQ2xpY2sgPSAxOwotICAgIFJlZlB0
cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCBudWxscHRyLCBzaW5nbGVD
bGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgp
LCBkb2N1bWVudFBvaW50LnkoKSwKKyAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9
IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwg
TW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54
KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgp
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhOC4uYTU5ODhj
OGJlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KQEAgLTk3LDcg
Kzk3LDcgQEAKIC0gKERPTVRpbWVTdGFtcCl0aW1lU3RhbXAKIHsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPnRpbWVTdGFtcCgpOwor
ICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXBBc01vbm90b25pY1RpbWUoKS5zZWNvbmRzU2luY2VF
cG9jaCgpLm1pbGxpc2Vjb25kcygpOwogfQogCiAtIChCT09MKWRlZmF1bHRQcmV2ZW50ZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBlYzU3
Yzg4YTZjYS4uMThlMzVhNWJkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNG
cmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBO
U0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0g
UGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50
KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJh
d0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7
CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGlt
ZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQg
PSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUs
IE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwg
MCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321384</attachid>
            <date>2017-09-20 16:26:25 -0700</date>
            <delta_ts>2017-09-20 16:36:29 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>80827</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTljNzhiNjAwNWMuLjU3NDQzZjMwNzE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU5LDYgKzE5NTksNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQyLDYgKzk4NDMs
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNTUsNiArMjYyNTcsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA3LDYgKzI3NzEwLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTI4ODMyLDcg
KzI4ODM2LDYgQEAKIAkJCQkzMTZEQ0IyMDFFNzhDQTU1MDAxQjVGODcgLyogSlNSVENPZmZlckFu
c3dlck9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTY5REJBMTdEMTQxNTEwMDdGRjg0
MiAvKiBKU1JUQ1BlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzk2OURCODE3
RDE0MTUxMDA3RkY4NDIgLyogSlNSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMThDMzU0NDFGNzE5NzBDMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNl
V2ViUmVzb3VyY2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJDNDM3NDFCQ0YwRDc1
MDAwMUUyQkUgLyogSlNSVENSdHBQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RTJD
NDM3MjFCQ0YwRDc1MDAwMUUyQkMgLyogSlNSVENSdHBSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUUyQzQzNzQxQkNGMEQ3NTAwMDFFMkJDIC8qIEpTUlRDUnRwU2VuZGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMwMzE3LDcgKzMwMzIwLDYgQEAKIAkJCQkwODA2RTU3QTEyODkzMDQ1MDA3
Q0VEMzIgLyogU1ZHTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOENBM0Q0NDEyODk0QTM4
MDBGRkYyNjAgLyogU1ZHTWF0cml4VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNThE
NUMxREQ3RUM5QzAwMTI4NTUyIC8qIFNWR01hdHJpeFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQlFMTg1MzY4NDFGNEU0ODE0MDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0
cmlidXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBNEIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR01ldGFkYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMUYyQjEw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTRFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNUGF0aEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzA2NTEsNiArMzA2NTMsOCBAQAogCQkJCUFBQTcyOEY3MTZEMUQ4QkMw
MEQzQkJDNiAvKiBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQUE0NzhBN0YxNkNENzBDMzAwN0QxQkI0IC8qIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0ODE5MTc5MTVDMDAwMzQx
ODQgLyogV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMTg1MzY4NDFGNEU0ODE0MDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5T
QXR0cmlidXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE4QzM1NDQxRjcxOTcwQzAw
RkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RFNjY3QTUxRTRCQkYxNTAwRTgxNTRBIC8qIFdlYkF1ZGlvQnVmZmVyTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCMkE2MjYxRUYxQkY2RDAwMkI5RDdBIC8qIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RDYzNzQwMUJCMEIxMTMw
MDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMjY1NSw3ICszMjY1OSw2IEBACiAJCQkJQTYxNDhBNzgxMkU0MUUzQjAwNDRBNzg0IC8q
IEpTSFRNTEtleWdlbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFCMjEwQTFD
RTYzQjAwQjQyQjI1IC8qIEpTSFRNTExhYmVsRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQUUyQUIyMzBBMUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTGVnZW5kRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlFMThDMzU0MzFGNzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJl
c291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFCMjUw
QTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTExJRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODBFN0IxMDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFFMkFCMjcwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTE1hcEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjgyMyw3ICszMjgyNiw2IEBACiAJCQkJQTFDQzU2
NzgxRjQ2MTRBNTAwQTQ1NTVCIC8qIEpTUGF5bWVudFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTFGNjAwNTcxRjQ3NjUwNTAwNzdFODNGIC8qIEpTUGF5bWVudFJlcXVlc3RVcGRhdGVF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUY2MDA1OTFGNDc2NTA1MDA3N0U4M0YgLyog
SlNQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50SW5pdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlF
MTg1MzY4NTFGNTA5MDYxMDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmli
dXRlZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExQ0M1NjdBMUY0NjE0QUEwMEE0NTU1
QiAvKiBKU1BheW1lbnRSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUNDNTY3QzFG
NDYxNEFGMDBBNDU1NUIgLyogSlNQYXltZW50U2hpcHBpbmdPcHRpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTFDQzU2N0UxRjQ2MTRCNDAwQTQ1NTVCIC8qIEpTUGF5bWVudFNoaXBwaW5nVHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM0NDMxLDYgKzM0NDMzLDggQEAKIAkJCQlBQTQ3OEE4
MDE2Q0Q3MEMzMDA3RDFCQjQgLyogV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQkyRDNFRjQ0OTE5MTc5MTVDMDAwMzQxODQgLyogV2ViQWN0aW9u
RGlzYWJsaW5nQ0FMYXllckRlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTIwREUzRUQx
Qzg2Q0EzRTAwQjZENEREIC8qIFdlYkFuaW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
MTg1MzY4NTFGNTA5MDYxMDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmli
dXRlZFN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUxOEMzNTQzMUY3MTk3MDEwMEZGNjMy
RCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJjZUhhbmRsZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDREU2NjdBNDFFNEJCRjE1MDBFODE1NEEgLyogV2ViQXVkaW9CdWZmZXJMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3RDYzNzQxMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTMxMUNC
Rjc0REEwMDkwMUNDRiAvKiBXZWJBVlBsYXllckNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5n
IERPTUhpZ2hSZXNUaW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCAxMTM1Yzk0NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTI1MjUsNyArMjUyNSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJl
Z2luKCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigp
Lmxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93
bk1vdXNlR2xvYmFsUG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VB
dENsaWNrLCBOb1RhcCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRv
biwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
V2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZv
cmNlV2lsbEJlZ2luRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtp
dG1vdXNlZm9yY2V3aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0
Zm9ybU1vdXNlRXZlbnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVu
dC0+c2V0VGFyZ2V0KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdp
bkV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5jMzM5Y2NhOTE4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQ
YXRoLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5o
IgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBFdmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNU
cnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShj
b252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVh
dGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAg
RXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykK
ICAgICAsIG1fY2FuY2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1
ZSkKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJl
bnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewog
fQogCi1FdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2Fu
QnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBl
KGV2ZW50VHlwZSkKICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJi
bGUoY2FuQnViYmxlQXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAg
LCBtX2lzVHJ1c3RlZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9E
T01UaW1lU3RhbXAodGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7
CiB9CiAKQEAgLTY0LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1f
Y2FuY2VsYWJsZShpbml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0
aWFsaXplci5jb21wb3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0
ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1w
KGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygp
KQogewogfQogCkBAIC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdF
dmVudChFdmVudCogdW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5k
ZXJseWluZ0V2ZW50OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBG
b3JCaW5kaW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAg
IFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckds
b2JhbFNjb3BlPihjb250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0
byogd2luZG93ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAg
ICAgIHBlcmZvcm1hbmNlID0gd2luZG93LT5wZXJmb3JtYW5jZSgpOworCisgICAgaWYgKCFwZXJm
b3JtYW5jZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGVyZm9ybWFuY2UtPm1v
bm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAobV9jcmVhdGVUaW1lKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCA5ZWRiM2FmMzFlYy4uYzVkNGQ0MWQ2
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudC5oCkBAIC0yMywxMSArMjMsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlICJET01IaWdoUmVzVGltZVN0YW1w
LmgiCiAjaW5jbHVkZSAiRXZlbnRJbml0LmgiCiAjaW5jbHVkZSAiRXZlbnRJbnRlcmZhY2VzLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgpAQCAtOTYsNyArOTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5jZWxhYmxl
KCkgY29uc3QgeyByZXR1cm4gbV9jYW5jZWxhYmxlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBjb21wb3NlZCgpIGNvbnN0OwogCi0gICAgRE9NVGltZVN0YW1wIHRpbWVTdGFtcCgpIGNvbnN0
IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQorICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0
YW1wRm9yQmluZGluZ3MoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIGNvbnN0OworICAgIE1vbm90
b25pY1RpbWUgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVUaW1lOyB9CiAKICAg
ICB2b2lkIHNldEV2ZW50UGF0aChjb25zdCBFdmVudFBhdGgmIHBhdGgpIHsgbV9ldmVudFBhdGgg
PSAmcGF0aDsgfQogICAgIHZvaWQgY2xlYXJFdmVudFBhdGgoKSB7IG1fZXZlbnRQYXRoID0gbnVs
bHB0cjsgfQpAQCAtMTcwLDcgKzE3Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBFdmVu
dChJc1RydXN0ZWQgPSBJc1RydXN0ZWQ6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUp
OwotICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNU
aW1lIHRpbWVzdGFtcCk7CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25z
dCBFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkVGFy
Z2V0KCk7CkBAIC0xOTUsNyArMTk3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RXZlbnRUYXJn
ZXQ+IG1fY3VycmVudFRhcmdldDsKICAgICBjb25zdCBFdmVudFBhdGgqIG1fZXZlbnRQYXRoIHsg
bnVsbHB0ciB9OwogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV90YXJnZXQ7Ci0gICAgRE9NVGlt
ZVN0YW1wIG1fY3JlYXRlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fY3JlYXRlVGltZTsKIAog
ICAgIFJlZlB0cjxFdmVudD4gbV91bmRlcmx5aW5nRXZlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwK
aW5kZXggNTMzZjMxY2M4ZDUuLjg3YWUxZmI0OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4
LDYgKzE4LDggQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVk
ZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01T
dHJpbmcgdHlwZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3Rv
bVRvSlNPYmplY3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hh
ZG93RE9NXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZv
cmdlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2
b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0g
ZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNh
bC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwLi40
ODA0YzFkMDVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtOTUsNyAr
OTUsNyBAQCBLZXlib2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkgPSBkZWZhdWx0OwogCiBLZXli
b2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5
LCBET01XaW5kb3cqIHZpZXcpCiAgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZv
cktleWJvYXJkRXZlbnRUeXBlKGtleS50eXBlKCkpCi0gICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5
LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5z
aGlmdEtleSgpCisgICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5LnRpbWVzdGFtcCgpLmFwcHJveGlt
YXRlTW9ub3RvbmljVGltZSgpLCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCks
IGtleS5zaGlmdEtleSgpCiAgICAgICAgICwga2V5Lm1ldGFLZXkoKSwgZmFsc2UsIGtleS5tb2Rp
ZmllcnMoKS5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpKQog
ICAgICwgbV9rZXlFdmVudChzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4o
a2V5KSkKICNpZiBFTkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmNwcAppbmRleCBlYjc2ZDZhZjkxZi4uM2M3ODVhN2E0NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TW91c2VFdmVudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0
Q3VzdG9tLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTEsNyArNTAsNyBAQCBSZWY8TW91c2VFdmVudD4g
TW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5k
b3cqIHZpZQogICAgIGJvb2wgaXNDYW5jZWxhYmxlID0gZXZlbnRUeXBlICE9IGV2ZW50TmFtZXMo
KS5tb3VzZW1vdmVFdmVudCAmJiAhaXNNb3VzZUVudGVyT3JMZWF2ZTsKICAgICBib29sIGNhbkJ1
YmJsZSA9ICFpc01vdXNlRW50ZXJPckxlYXZlOwogCi0gICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNy
ZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5jZWxhYmxlLCBldmVudC50aW1lc3RhbXAo
KSwgdmlldywKKyAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnVi
YmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3Rvbmlj
VGltZSgpLCB2aWV3LAogICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgp
LCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50
LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC02MCw3
ICs1OSw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmllCiAgICAgICAgIHJlbGF0ZWRUYXJnZXQs
IGV2ZW50LmZvcmNlKCksIGV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpKTsKIH0KIAotUmVmPE1v
dXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgs
IGludCBwYWdlWSwKK1JlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtODMs
NyArODIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KCkKIHsKIH0KIAotTW91c2VFdmVudDo6
TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQg
ZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3
aW5kb3dMb2NhdGlvbiwKK01vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50
JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRh
LAogI2VuZGlmCkBAIC0xMDMsNyArMTAyLDcgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2UKIH0K
IAogTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0
YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBjbGll
bnRMb2NhdGlvbiwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCB1bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRp
Y0NsaWNrVHlwZSwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0
ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgV1RGOjpjdXJyZW50VGlt
ZSgpLCB2aWV3LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCisgICAgOiBNb3VzZVJlbGF0
ZWRFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6
bm93KCksIHZpZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQogICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmlu
ZGV4IGUzMDA4MmJkM2FmLi41ZjFjMDNhNDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL01vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBA
IC0zMyw3ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VF
dmVudCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdl
WCwgaW50IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4g
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWws
IGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwK
ICNlbmRpZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3Qg
ZmluYWw7CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwg
RE9NV2luZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERP
TVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2Nh
dGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWUuLjY5MTVlOWMz
MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91
c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2lu
ZG93LAorTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9u
aWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiBET01XaW5kb3csCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxv
Y2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQ
b2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgK
aW5kZXggODBhNzMwYTIwOGEuLmUzNWQyOTNjNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VS
ZWxhdGVkRXZlbnQuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAg
ICBNb3VzZVJlbGF0ZWRFdmVudCgpID0gZGVmYXVsdDsKLSAgICBNb3VzZVJlbGF0ZWRFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCisgICAgTW91c2VSZWxhdGVkRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwg
Y29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9j
YXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVk
Q2xpY2suY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcAppbmRleCA2
ZmIzYjRkN2Y3Mi4uNDU0OTM2OGJlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aW11bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNr
LmNwcApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVk
TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3
LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVs
YXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwg
dHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAo
KSA6IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZl
bnQoZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZl
bnQtPnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9VSUV2ZW50LmNwcAppbmRleCA0Y2IyMjM5ZWM1Yi4uZTgxNWFmOTdhZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgVUlFdmVudDo6VUlFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWIK
IHsKIH0KIAotVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Ym9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwg
RE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQorVUlFdmVudDo6VUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2Vs
YWJsZUFyZywgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50
IGRldGFpbEFyZykKICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxh
YmxlQXJnLCB0aW1lc3RhbXApCiAgICAgLCBtX3ZpZXcodmlld0FyZykKICAgICAsIG1fZGV0YWls
KGRldGFpbEFyZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCmluZGV4IDk3M2Q3M2VmM2ZhLi5iYWE3MzFmY2Y4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwp
OwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWls
KTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGlu
dCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVUlFdmVu
dEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50
V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTIuLjBhOGU0MDMxMjQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJvdGVj
dGVkOgogICAgIHsKICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRp
bWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25v
dG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAogICAgICAgICBpbnQgZGV0YWls
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXks
IGJvb2wgYWx0R3JhcGhLZXksIGJvb2wgY2Fwc0xvY2tLZXkpCiAgICAgICAgICAgICA6IFVJRXZl
bnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsIGRldGFpbCkK
ICAgICAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5j
cHAKaW5kZXggNTMwZTZiMDExOTIuLjgwZGIwNWExNTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZl
bnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzCiB9CiAKIFdo
ZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgRE9N
V2luZG93KiB2aWV3KQotICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwg
dHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0
aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKKyAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3Rv
bmljVGltZSgpLCB2aWV3LCAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlv
bigpCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgLCB7IH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UeXBlQWhlYWQuY3BwCmluZGV4IGQyNmY1N2Q4NDlhLi5mMWVjYjdjZDYwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcsMTIgKzM3LDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0
YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRhU291cmNlKQotICAgICwgbV9sYXN0VHlw
ZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogewogfQogCi1zdGF0aWMgY29uc3Qg
RE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworc3RhdGljIGNvbnN0IFNlY29u
ZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBzdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGlu
Z1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC02Myw3ICs2Miw3IEBAIGlu
dCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVG
bGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBvcHRpb25Db3Vu
dCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsKLSAgICBET01UaW1lU3RhbXAgZGVsdGEg
PSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGltZTsKKyAgICBTZWNvbmRzIGRlbHRh
ID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRp
bWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2Rl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2MTBhYzc4Mjg4Yi4uZjMzY2ExZDA3M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgInd0Zi9Nb25vdG9uaWNU
aW1lLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBUeXBlQWhlYWREYXRhU291cmNlKiBtX2RhdGFTb3VyY2U7Ci0gICAgRE9NVGltZVN0
YW1wIG1fbGFzdFR5cGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VHlwZVRpbWU7CiAg
ICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAppbmRleCBl
Mzk5NmZkZWQ1MC4uZTUyODdjMGNiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
QXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8g
RGVsYXkgdGltZSBpbiBzZWNvbmQgZm9yIHN0YXJ0IGF1dG9zY3JvbGwgaWYgcG9pbnRlciBpcyBp
biBib3JkZXIgZWRnZSBvZiBzY3JvbGxhYmxlIGVsZW1lbnQuCi1zdGF0aWMgY29uc3QgZG91Ymxl
IGF1dG9zY3JvbGxEZWxheSA9IDAuMjsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxE
ZWxheSB7IDIwMF9tcyB9OwogCiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9yIHRoZSBwYW5TY3Jv
bGwgaXMgdHJpZ2dlcmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSA1MG1zIHRvIG1ha2UgaXQg
c21vb3RoLgogc3RhdGljIGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbEludGVydmFsIHsgNTBfbXMg
fTsKQEAgLTU5LDcgKzU4LDYgQEAgQXV0b3Njcm9sbENvbnRyb2xsZXI6OkF1dG9zY3JvbGxDb250
cm9sbGVyKCkKICAgICA6IG1fYXV0b3Njcm9sbFRpbWVyKCp0aGlzLCAmQXV0b3Njcm9sbENvbnRy
b2xsZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKQogICAgICwgbV9hdXRvc2Nyb2xsUmVuZGVyZXIo
bnVsbHB0cikKICAgICAsIG1fYXV0b3Njcm9sbFR5cGUoTm9BdXRvc2Nyb2xsKQotICAgICwgbV9k
cmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWUoMCkKIHsKIH0KIApAQCAtMTQwLDcgKzEzOCw3
IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigp
CiAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXIgPSBpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSA/IGRv
d25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpIDogbnVsbHB0cjsKIH0KIAotdm9pZCBBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoTm9kZSogZHJvcFRhcmdldE5vZGUsIGNv
bnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRUaW1lKQordm9pZCBBdXRv
c2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoTm9kZSogZHJvcFRhcmdldE5vZGUs
IGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRpbWUpCiB7CiAg
ICAgaWYgKCFkcm9wVGFyZ2V0Tm9kZSkgewogICAgICAgICBzdG9wQXV0b3Njcm9sbFRpbWVyKCk7
CkBAIC0yNDEsNyArMjM5LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9s
bFRpbWVyRmlyZWQoKQogICAgIEZyYW1lJiBmcmFtZSA9IG1fYXV0b3Njcm9sbFJlbmRlcmVyLT5m
cmFtZSgpOwogICAgIHN3aXRjaCAobV9hdXRvc2Nyb2xsVHlwZSkgewogICAgIGNhc2UgQXV0b3Nj
cm9sbEZvckRyYWdBbmREcm9wOgotICAgICAgICBpZiAoV1RGOjpjdXJyZW50VGltZSgpIC0gbV9k
cmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCisgICAgICAg
IGlmIChXYWxsVGltZTo6bm93KCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKICAgICAgICAgICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyLT5hdXRv
c2Nyb2xsKG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNlUG9zaXRpb24pOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEF1dG9zY3JvbGxGb3JTZWxlY3Rpb246IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAppbmRleCAzY2Q5ZGJmMzM3OS4uNzEzNjBi
YTQ0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAg
LTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVj
dGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCBy
ZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Ny
b2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5v
ZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAg
ICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50
JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NS
T0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNj
cm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1f
YXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9zY3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7
CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsK
LSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRp
bWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JP
TExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3JvbGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJk
NjAzLi4zMjJiNDkyM2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJt
YXJrdXAuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29k
ZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTQ0MCw3ICsx
NDQxLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KEZy
YW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWMKICAgICBjbGVhckNvbnRleHRNZW51KCk7
CiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBjbGljayBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhY2Nl
c3NpYmlsaXR5IG9iamVjdC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChjbGlj
a1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgRm9yY2VB
dENsaWNrLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQ
b2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VB
dENsaWNrLCBOb1RhcCk7CiAgICAgZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVz
c0V2ZW50KG1vdXNlRXZlbnQpOwogICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxl
cigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBlZjU2Njc5NWFhZC4uM2Y4
YTIwNmI1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMjgs
NyArMTI4LDcgQEAgc3RhdGljIFBsYXRmb3JtTW91c2VFdmVudCBjcmVhdGVNb3VzZUV2ZW50KGNv
bnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIHJldHVybiBQbGF0Zm9ybU1vdXNlRXZlbnQo
ZHJhZ0RhdGEuY2xpZW50UG9zaXRpb24oKSwgZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXRhS2V5LCBjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIFdhbGxUaW1lOjpub3co
KSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiB9CiAKIERyYWdDb250cm9sbGVyOjpEcmFnQ29udHJv
bGxlcihQYWdlJiBwYWdlLCBEcmFnQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggNWM4NDhhZmQ5YjAuLmVmMDY5YzQ3ZTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdl
RHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBj
b25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJlc2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkK
LWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3Qg
U2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgog
I2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAgICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90
dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1l
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZl
bnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAg
ICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1l
KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQu
Z2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5w
b3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnRE
ZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkzOSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5k
Q29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5
cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBS
aWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RG
OjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRC
dXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1l
Ojpub3coKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRN
ZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZv
aWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29s
IGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpn
ZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5
KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3du
TW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwg
bWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93
bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
LCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCks
IDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVkKGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5k
aWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKaW5kZXggNjY2M2M4ZjJhODkuLmEwYWE1MzVmNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7Ci0gICAg
c3RhdGljIGNvbnN0IGRvdWJsZSBUZXh0RHJhZ0RlbGF5OworICAgIHN0YXRpYyBjb25zdCBTZWNv
bmRzIFRleHREcmFnRGVsYXk7CiAgICAgUmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdE
YXRhVHJhbnNmZXIoKSBjb25zdDsKICNlbmRpZgogCkBAIC01NjQsNyArNTY0LDcgQEAgcHJpdmF0
ZToKICAgICBJbnRQb2ludCBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb247CiAgICAgSW50UG9pbnQg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbW91c2VEb3du
UG9zOyAvLyBJbiBvdXIgdmlldydzIGNvb3Jkcy4KLSAgICBkb3VibGUgbV9tb3VzZURvd25UaW1l
c3RhbXAgeyAwIH07CisgICAgV2FsbFRpbWUgbV9tb3VzZURvd25UaW1lc3RhbXA7CiAgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IG1fbW91c2VEb3duOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCmluZGV4IDFhZmEzNjQ1OTEzLi5mMmUxNGJjZjc1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQ
ZXJmb3JtYW5jZTo6Y29udGV4dERlc3Ryb3llZCgpCiAgICAgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKIH0KIAotZG91YmxlIFBlcmZvcm1hbmNlOjpub3co
KSBjb25zdAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bm93KCkgY29uc3QKIHsK
ICAgICBTZWNvbmRzIG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV90aW1lT3JpZ2luOwog
ICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihub3cpLm1pbGxpc2Vjb25kcygpOwpAQCAt
ODIsNiArODIsMTIgQEAgU2Vjb25kcyBQZXJmb3JtYW5jZTo6cmVkdWNlVGltZVJlc29sdXRpb24o
U2Vjb25kcyBzZWNvbmRzKQogICAgIHJldHVybiBTZWNvbmRzKHJlZHVjZWQpOwogfQogCitET01I
aWdoUmVzVGltZVN0YW1wIFBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0
YW1wKE1vbm90b25pY1RpbWUgdGltZXN0YW1wKSBjb25zdAoreworICAgIFNlY29uZHMgc2Vjb25k
cyA9IHRpbWVzdGFtcCAtIG1fdGltZU9yaWdpbjsKKyAgICByZXR1cm4gcmVkdWNlVGltZVJlc29s
dXRpb24oc2Vjb25kcykubWlsbGlzZWNvbmRzKCk7Cit9CisKIFBlcmZvcm1hbmNlTmF2aWdhdGlv
biogUGVyZm9ybWFuY2U6Om5hdmlnYXRpb24oKQogewogICAgIGlmICghaXM8RG9jdW1lbnQ+KHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXgg
OWE2MGVjMGFiMmMuLmQxNDg2YjgzNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBA
IC0zMyw2ICszMyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJH
ZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
TW9ub3RvbmljVGltZSB0aW1lT3JpZ2luKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1h
bmNlKGNvbnRleHQsIHRpbWVPcmlnaW4pKTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAg
ZG91YmxlIG5vdygpIGNvbnN0OworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7
CiAKICAgICBQZXJmb3JtYW5jZU5hdmlnYXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3Jt
YW5jZVRpbWluZyogdGltaW5nKCk7CkBAIC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVSZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGln
aFJlc1RpbWVTdGFtcCBtb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1Rp
bWUpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA1Y2I0Nzg0NzFk
Ni4uNTJjYjljODc0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTg2LDI5ICs4NywyNyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1v
ZGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGlt
ZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
UGxhdGZvcm1FdmVudCgpCiAgICAgICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3Rp
bWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5
cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgw
KQogICAgIHsKICAgICB9CiAKLSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVu
dChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9k
aWZpZXJzKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQog
Ci0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0
Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3
ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9u
U2V0PE1vZGlmaWVyPiBtX21vZGlmaWVyczsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAg
V2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3
YmE1NzYwOGRmLi45N2QwM2FmOTJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmIEVOQUJMRShLRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkKICAgICAgICAgY29uc3Qg
U3RyaW5nJiBjb2RlLAogI2VuZGlmCi0gICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNL
ZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wKQorICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFk
LCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3RleHQodGV4dCkKICAgICAgICAgICAgICwg
bV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgKaW5kZXggMTA0ZjUzOTcwOTIuLmE0ZTdkNTg5MjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtNjEs
NyArNjEsNyBAQCBjb25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xpY2sgPSAyOwogICAgICAgICB9
CiAKICAgICAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50KGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBNb3VzZUJ1dHRvbiBidXR0b24sIFBsYXRm
b3JtRXZlbnQ6OlR5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlj
a0NvdW50LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1l
dGFLZXksIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBl
IHN5bnRoZXRpY0NsaWNrVHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlj
a0NvdW50LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1l
dGFLZXksIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5
cGUgc3ludGhldGljQ2xpY2tUeXBlKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUs
IHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAgICAgICAgICwgbV9nbG9iYWxQb3NpdGlv
bihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVl
bEV2ZW50LmgKaW5kZXggNmQ0NThiZWY0YjguLjI5NTg4MjEwYzgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJ
bnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0
IHdoZWVsVGlja3NYLCBmbG9hdCB3aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgbWV0YUtleSkKLSAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6
OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6
IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBh
bHRLZXksIG1ldGFLZXksIHsgfSkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAg
ICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0
YVgoZGVsdGFYKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Ny
b2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENv
bnRyb2xsZXIubW0KaW5kZXggZDM3OWUyNDc0ZDEuLjBiMmIyODE4MGM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTE3OSwx
NCArMTc5LDE0IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgaWYgKCFtX21vbWVudHVtU2Ny
b2xsSW5Qcm9ncmVzcyAmJiAobW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZUJlZ2FuIHx8IG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2Vk
KSkKICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOwogCi0gICAgQ0ZU
aW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAtIG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIC0gbV9sYXN0
TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CiAgICAgaWYgKG1faW5TY3JvbGxHZXN0dXJlIHx8IG1f
bW9tZW50dW1TY3JvbGxJblByb2dyZXNzKSB7CiAgICAgICAgIGlmIChtX2xhc3RNb21lbnR1bVNj
cm9sbFRpbWVzdGFtcCAmJiB0aW1lRGVsdGEgPiAwICYmIHRpbWVEZWx0YSA8IHNjcm9sbFZlbG9j
aXR5WmVyb2luZ1RpbWVvdXQpIHsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRX
aWR0aChldmVudENvYWxlc2NlZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwogICAgICAgICAg
ICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldEhlaWdodChldmVudENvYWxlc2NlZERlbHRhWSAvIChm
bG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3Rh
bXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1T
Y3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2No
KCkudmFsdWUoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVt
U2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1f
bGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkg
PSBGbG9hdFNpemUoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDYyZjk4MjM3NzEu
LjhlMDQ1NjMzNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJX
QUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NL
ZXlib2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0
Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAg
cHVibGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQog
ICAgIHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBt
X3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRp
bWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsK
ICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpA
QCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0g
V2ViRXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6
V2hlZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90
aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50
Rm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRG
b3JFdmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1f
dHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlV
cCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgp
OworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Rl
eHQgPSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQu
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoK
ICAgICBQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwg
SW50UG9pbnQgbG9jYXRpb24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAg
ICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2Fs
bFRpbWU6Om5vdygpOwogICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAg
ICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwLi5j
NDBlYzIxZjEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQg
aW50IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBrZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGlt
ZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBP
UlQgdm9pZCBnZXRXaGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxv
YXQmIGRlbHRhWSwgQk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlD
aGFyRm9yRXZlbnQoTlNFdmVudCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNC4uNzk0
MWNkNmM0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9z
cGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgog
I2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50
ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5
c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNF
dmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBl
dmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGlt
ZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBU
aW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2Q0MWM3MTAzOS4u
YWE5OTgwYzM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4K
ICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+
CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBA
QCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFy
Z3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2Fs
bFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCku
dmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
dGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmlu
ZGV4IDViNWZkMzk3NDEzLi4wOGMzODM5MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKIG5hbWVzcGFjZSBXVEYg
ewogY2xhc3MgTW9ub3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7CitjbGFzcyBXYWxsVGltZTsK
IH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTYyLDYgKzE2MywxMSBAQCB0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6TW9ub3RvbmljVGltZT4gewogICAgIHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgV1RGOjpNb25vdG9uaWNUaW1lJik7CiB9OwogCit0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6V2FsbFRpbWU+IHsKKyAgICBzdGF0aWMgdm9p
ZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6V2FsbFRpbWUmKTsKKyAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoRGVjb2RlciYsIFdURjo6V2FsbFRpbWUmKTsKK307CisKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpTZWNvbmRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXVEY6OlNlY29uZHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdURjo6U2Vjb25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4
IDUwN2JjMTY2Mjg5Li41YTA4NmY5N2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcApA
QCAtMjgsMTcgKzI4LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5j
b2Rlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6IG1fdHlwZShzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oTm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJzKDApCi0gICAgLCBtX3RpbWVz
dGFtcCgwKQogewogfQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlw
ZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBl
KHR5cGUpCiAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgLCBtX3RpbWVzdGFtcCh0
aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAyMTAxODZkYzBmZC4uMmQ0NTlm
NmExMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEw
NCwxMiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAg
ZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2Fs
bFRpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVj
dGVkOgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcg
KzExOCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBU
eXBlCiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBt
X3RpbWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBN
b3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBA
QCBwdWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBO
b1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1v
dXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBm
bG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFw
LCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdl
Yk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0g
Tm9UYXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291
bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50
aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDEx
ICsxOTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2Vi
V2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxh
cml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1
bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENv
dW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0
YSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVj
dGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wg
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxF
dmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2Ug
bW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQg
cG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwx
MyBAQCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxl
ZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jiwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQg
bWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlm
IFBMQVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5n
JiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmly
dHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYg
Y29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7Cisg
ICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29s
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlz
S2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJ
T1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNB
dXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2
ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRp
ZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2Rl
LCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAog
ICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgy
LDcgKzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2
ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVu
dChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0
YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdl
YkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2Vz
dHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2Vi
VG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3Vj
aFBvaW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAs
IGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlv
bikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAg
ICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9z
aXRpb24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQg
OiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAg
ICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCk7CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2lu
dHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTMuLjBjZjI3MTk5NjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtMzcsNyArMzcs
NyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KCkKIAogI2lmIFVTRShBUFBL
SVQpCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQg
bWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0
aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZp
ZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwg
aW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVk
VGV4dCkKQEAgLTYyLDcgKzYyLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQ
TEFURk9STShHVEspCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRF
dmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5
SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5
cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3Vu
bW9kaWZpZWRUZXh0KHRleHQpCkBAIC04Myw3ICs4Myw3IEBAIFdlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYKIAogI2VsaWYgUExBVEZPUk0oSU9TKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2Fy
ZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBT
dHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRp
dmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9v
bCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRp
ZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2Rl
LCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0
ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTEwNiw3ICsx
MDYsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbHNlCiAKLVdlYktleWJvYXJkRXZl
bnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRF
dmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdl
YkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAg
ICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJNb3VzZUV2ZW50LmNwcAppbmRleCA4ZGE4ZDNmZTgzMy4uMGY3N2ZhZTNkMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIFdlYk1vdXNl
RXZlbnQ6OldlYk1vdXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkK
K1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBT
eW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGlu
dCBtZW51VHlwZSkKICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlw
ZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0
YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
LCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCitX
ZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29u
c3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICNlbmRpZgogICAgIDogV2ViRXZl
bnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX2J1dHRvbihidXR0b24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDEzZmU0OGRlOTlkLi40ZTEz
ZTg5NjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgeyAg
ICAKIAotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9h
dFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hl
ZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRh
LCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0
eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAg
ICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTAsNyArNTAsNyBAQCBX
ZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludAogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1XZWJXaGVl
bEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50
dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxD
b3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVs
dGEsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5
cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAg
ICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC02Nyw3ICs2Nyw3IEBAIFdl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkp
OwogfQogI2VsaWYgUExBVEZPUk0oR1RLKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChU
eXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVs
VGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1w
KQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xv
YmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZl
V2ViR2VzdHVyZUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdl
Ykdlc3R1cmVFdmVudE1hYy5tbQppbmRleCAzYjU1Y2U4MDkyZi4uMGM0NWJmZmIxZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1h
Yy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldl
Ykdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8
d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdl
Ykdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1Zp
ZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZv
ck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAg
ICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChl
dmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/
IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRU
eXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDcuLjlkODU1OTRhMzY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTM2MCw3ICsz
NjAsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVu
dChOU0V2ZW50ICpldmVudCwgTlNFdmVudCAqbGFzdAogICAgIGZsb2F0IGRlbHRhWiA9IFtldmVu
dCBkZWx0YVpdOwogICAgIGludCBjbGlja0NvdW50ID0gY2xpY2tDb3VudEZvckV2ZW50KGV2ZW50
KTsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50
KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAo
ZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZl
bnQpOwogICAgIGludCBldmVudE51bWJlciA9IFtldmVudCBldmVudE51bWJlcl07CiAgICAgaW50
IG1lbnVUeXBlRm9yRXZlbnQgPSB0eXBlRm9yRXZlbnQoZXZlbnQpOwogCkBAIC00MTgsNyArNDE4
LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQo
TlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KICAgICB9CiAKICAgICBXZWJFdmVudDo6TW9k
aWZpZXJzIG1vZGlmaWVycyAgICAgICAgICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0g
ICAgZG91YmxlIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICAKICAgICByZXR1
cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50
UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNp
emUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdE
ZWx0YXMsIHNjcm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVy
cywgdGltZXN0YW1wKTsKIH0KQEAgLTQzOCw3ICs0MzgsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9v
bCBoYQogICAgIGJvb2wgaXNLZXlwYWQgICAgICAgICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50
KGV2ZW50KTsKICAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8v
IFN5c3RlbUtleSBpcyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9k
aWZpZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJs
ZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVu
dCk7CisgICAgYXV0byB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1w
U2luY2UxOTcwKGV2ZW50KTsKIAogICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9yIEVudGVyL1JldHVy
biAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZv
ciBFbnRlci4KICAgICBpZiAod2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX1JFVFVSTikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCmluZGV4IGJjNjhiYTUy
N2E1Li5iNmY5YzY4ZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJl
RXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdl
c3R1cmVFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViR2VzdHVyZUV2
ZW50KCkgeyB9Ci0gICAgV2ViR2VzdHVyZUV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlm
aWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJH
ZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZmxvYXQgZ2VzdHVy
ZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAgIDogV2ViRXZlbnQodHlwZSwg
bW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAg
ICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwCmluZGV4IDVkZjNkZmMzZTZlLi4wN2VkYWJmYjZmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VS
ZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRl
TW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0
aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0
aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0lu
dFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0lt
cGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiks
IGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsK
IH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50
TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5z
aW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwg
bW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0
b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVN
b3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91Ymxl
IHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9p
bnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rp
b24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7
CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDUuLjg2ZmUzNmIxZmZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1
NzYsNyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNv
bnN0IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZy
YW1lKCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9
IGZyYW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50
IGV2ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBj
b250ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJF
dmVudDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNv
cmU6OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91
c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVu
dHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCks
IFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFu
ZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmUuLmVjZDU2N2Zj
YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJFdmVudD4gUGx1Z2lu
Vmlldzo6Y3JlYXRlV2ViRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKGV2
ZW50Lm1ldGFLZXkoKSkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5Owog
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9u
LCBtX3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBl
dmVudC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tD
b3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgMCwgMCk7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9u
LCBtX3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBl
dmVudC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tD
b3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgV2FsbFRp
bWUgeyB9LCAwKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCYgZXZl
bnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDBlYWJlNjU5OTBkLi5mZjhiYjk4MDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6
bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIElu
dFBvaW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9
IDE7Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51
bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9j
dW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50
PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ss
IHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9j
dW1lbnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwK
ICNlbmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6
Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNv
cmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAog
ICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVu
dS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwg
UmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2Vi
Q29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9p
bnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlk
Z2UoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhh
bmRsZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2
ZW50KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8q
IG1lbnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1N
b3VzZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsK
KyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBX
ZWJDb3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxl
TW91c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7
CkBAIC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJ
bnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICgh
dmlldykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2Rp
ZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0
ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6
Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3Np
dGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3co
KSwgMCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7
CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpA
QCAtNDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4
dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdl
Yk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9u
PihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRp
Y19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29y
ZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
biwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1v
dXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0
dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2Fz
dDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZv
cmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpz
aW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGlt
ZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBw
b3NpdGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQo
V2ViTW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRp
b24sIHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGlt
ZSwgMCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOS4uYmIxZjUxMjZkNmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAv
LyBGb3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1
dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
LCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2Vi
Q29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUg
dGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBk
b3VibGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJD
b3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1l
KTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lk
IHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lm
IEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBt
X2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTUV2ZW50Lm1tCmluZGV4IDk1Zjg0ZGQyNWE4Li43Njg1NDQ4NDBmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQpAQCAtOTcsNyArOTcsNyBAQAogLSAoRE9NVGlt
ZVN0YW1wKXRpbWVTdGFtcAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7CisgICAgcmV0dXJuIElNUEwtPnRp
bWVTdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIC0gKEJP
T0wpZGVmYXVsdFByZXZlbnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KaW5kZXggMDAxNmMwYTQyYzAuLmYzNGQ2OTU5ZDRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0
aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmll
ciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xv
YmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlv
bik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVj
NTdjODhhNmNhLi4xOGUzNWE1YmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUERGVmlldy5tbQpAQCAtMTAxOCwxNCArMTAxOCwxNCBAQCBzdGF0aWMgQk9PTCBp
c0ZyYW1lSW5SYW5nZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICBjYXNl
IE5TRXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUg
PSBQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZl
bnQpOwogICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6
UmF3S2V5RG93bik7Ci0gICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAw
KTsKKyAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIG51bGxwdHIpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24pIHsKLSAgICAgICAgZXZlbnQgPSBNb3VzZUV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRU
aW1lKCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAorICAgICAgICBldmVu
dCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAw
LCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321385</attachid>
            <date>2017-09-20 16:36:29 -0700</date>
            <delta_ts>2017-09-20 16:45:20 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>77338</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5jMzM5Y2NhOTE4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgIHBlcmZvcm1h
bmNlID0gd2luZG93LT5wZXJmb3JtYW5jZSgpOworCisgICAgaWYgKCFwZXJmb3JtYW5jZSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGVyZm9ybWFuY2UtPm1vbm90b25pY1RpbWVU
b0hpZ2hSZXNUaW1lU3RhbXAobV9jcmVhdGVUaW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnQuaAppbmRleCA5ZWRiM2FmMzFlYy4uYzVkNGQ0MWQ2MzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudC5oCkBAIC0yMywxMSArMjMsMTIgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJE
T01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlICJET01IaWdoUmVzVGltZVN0YW1wLmgiCiAjaW5jbHVk
ZSAiRXZlbnRJbml0LmgiCiAjaW5jbHVkZSAiRXZlbnRJbnRlcmZhY2VzLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpA
QCAtOTYsNyArOTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5jZWxhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYW5jZWxhYmxlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb21wb3NlZCgp
IGNvbnN0OwogCi0gICAgRE9NVGltZVN0YW1wIHRpbWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3JlYXRlVGltZTsgfQorICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wRm9yQmluZGlu
Z3MoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIGNvbnN0OworICAgIE1vbm90b25pY1RpbWUgdGlt
ZVN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVUaW1lOyB9CiAKICAgICB2b2lkIHNldEV2
ZW50UGF0aChjb25zdCBFdmVudFBhdGgmIHBhdGgpIHsgbV9ldmVudFBhdGggPSAmcGF0aDsgfQog
ICAgIHZvaWQgY2xlYXJFdmVudFBhdGgoKSB7IG1fZXZlbnRQYXRoID0gbnVsbHB0cjsgfQpAQCAt
MTcwLDcgKzE3Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBFdmVudChJc1RydXN0ZWQg
PSBJc1RydXN0ZWQ6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCBFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUpOwotICAgIEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCk7CiAgICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBFdmVudEluaXQm
LCBJc1RydXN0ZWQpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkVGFyZ2V0KCk7CkBAIC0x
OTUsNyArMTk3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fY3VycmVu
dFRhcmdldDsKICAgICBjb25zdCBFdmVudFBhdGgqIG1fZXZlbnRQYXRoIHsgbnVsbHB0ciB9Owog
ICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV90YXJnZXQ7Ci0gICAgRE9NVGltZVN0YW1wIG1fY3Jl
YXRlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fY3JlYXRlVGltZTsKIAogICAgIFJlZlB0cjxF
dmVudD4gbV91bmRlcmx5aW5nRXZlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKaW5kZXggNTMzZjMx
Y2M4ZDUuLjg3YWUxZmI0OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDggQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91YmxlIERP
TUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwg
b3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmplY3Qs
CkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRFdmVu
dChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlv
bmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwLi40ODA0YzFkMDVlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtOTUsNyArOTUsNyBAQCBLZXli
b2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkgPSBkZWZhdWx0OwogCiBLZXlib2FyZEV2ZW50OjpL
ZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBET01XaW5kb3cq
IHZpZXcpCiAgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJkRXZl
bnRUeXBlKGtleS50eXBlKCkpCi0gICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5LnRpbWVzdGFtcCgp
LCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5zaGlmdEtleSgpCisg
ICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3Rvbmlj
VGltZSgpLCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5zaGlmdEtl
eSgpCiAgICAgICAgICwga2V5Lm1ldGFLZXkoKSwgZmFsc2UsIGtleS5tb2RpZmllcnMoKS5jb250
YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpKQogICAgICwgbV9rZXlF
dmVudChzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4oa2V5KSkKICNpZiBF
TkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApp
bmRleCBlYjc2ZDZhZjkxZi4uM2M3ODVhN2E0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0Q3VzdG9tLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtNTEsNyArNTAsNyBAQCBSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6
Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAg
IGJvb2wgaXNDYW5jZWxhYmxlID0gZXZlbnRUeXBlICE9IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVF
dmVudCAmJiAhaXNNb3VzZUVudGVyT3JMZWF2ZTsKICAgICBib29sIGNhbkJ1YmJsZSA9ICFpc01v
dXNlRW50ZXJPckxlYXZlOwogCi0gICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5
cGUsIGNhbkJ1YmJsZSwgaXNDYW5jZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKSwgdmlldywKKyAg
ICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNl
bGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCB2aWV3
LAogICAgICAgICBkZXRhaWwsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9i
YWxQb3NpdGlvbigpLnkoKSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCku
eSgpLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVs
dGEoKS54KCksIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC02MCw3ICs1OSw3IEBAIFJl
ZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIERPTVdpbmRvdyogdmllCiAgICAgICAgIHJlbGF0ZWRUYXJnZXQsIGV2ZW50LmZvcmNl
KCksIGV2ZW50LnN5bnRoZXRpY0NsaWNrVHlwZSgpKTsKIH0KIAotUmVmPE1vdXNlRXZlbnQ+IE1v
dXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50
IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwK
K1JlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVl
blksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAg
aW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtODMsNyArODIsNyBAQCBN
b3VzZUV2ZW50OjpNb3VzZUV2ZW50KCkKIHsKIH0KIAotTW91c2VFdmVudDo6TW91c2VFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKK01vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1w
LCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2Nh
dGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLAogI2VuZGlmCkBA
IC0xMDMsNyArMTAyLDcgQEAgTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2UKIH0KIAogTW91c2VFdmVu
dDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJ
bnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRMb2NhdGlvbiwg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCB1
bnNpZ25lZCBzaG9ydCBidXR0b24sIHVuc2lnbmVkIHNob3J0IHN5bnRoZXRpY0NsaWNrVHlwZSwg
RXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpCi0gICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVu
dFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgV1RGOjpjdXJyZW50VGltZSgpLCB2aWV3LCBk
ZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudChldmVu
dFR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcs
IGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQog
ICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCmluZGV4IGUzMDA4MmJk
M2FmLi41ZjFjMDNhNDUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3ICszMyw3
IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1Ymxp
YyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAt
NzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAKIHBy
b3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwK
KyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAg
ICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3Qg
SW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAg
ICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3Vz
ZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWUuLjY5MTVlOWMzMDc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNh
bmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAorTW91c2VS
ZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVz
dGFtcCwgRE9NV2luZG93KiBET01XaW5kb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25z
dCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1l
bnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggODBhNzMw
YTIwOGEuLmUzNWQyOTNjNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VS
ZWxhdGVkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQu
aApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBNb3VzZVJlbGF0
ZWRFdmVudCgpID0gZGVmYXVsdDsKLSAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosCisgICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1l
IHRpbWVzdGFtcCwgRE9NV2luZG93KiwKICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9p
bnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVs
dGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcAppbmRleCA2ZmIzYjRkN2Y3Mi4u
NDU0OTM2OGJlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcApAQCAtNDYs
NyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBSZWZQdHI8RXZl
bnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291
cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwgdHJ1ZSwg
dW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1cnJlbnRU
aW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBl
LCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFt
cCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50
LmNwcAppbmRleCA0Y2IyMjM5ZWM1Yi4uZTgxNWFmOTdhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAKQEAgLTM5LDcgKzM5LDcgQEAgVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWIKIHsKIH0KIAotVUlF
dmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJi
bGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2
aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQorVUlFdmVudDo6VUlFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyZywgTW9u
b3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykK
ICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxlQXJnLCB0aW1l
c3RhbXApCiAgICAgLCBtX3ZpZXcodmlld0FyZykKICAgICAsIG1fZGV0YWlsKGRldGFpbEFyZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5oCmluZGV4IDk3M2Q3M2VmM2ZhLi5iYWE3MzFmY2Y4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2
ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwog
ICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1Ry
dXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZl
bnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRl
LmgKaW5kZXggYmZlYTM4N2MyMTIuLjBhOGU0MDMxMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJvdGVjdGVkOgogICAgIHsK
ICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3LAorICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAogICAgICAgICBpbnQgZGV0YWlsLCBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIGJvb2wgYWx0R3Jh
cGhLZXksIGJvb2wgY2Fwc0xvY2tLZXkpCiAgICAgICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3RhbXAsIHZpZXcsIGRldGFpbCkKICAgICAgICAgICAg
ICwgbV9jdHJsS2V5KGN0cmxLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKaW5kZXggNTMw
ZTZiMDExOTIuLjgwZGIwNWExNTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCkBAIC01
MCw3ICs1MCw3IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBjb25zdCBJbml0JiBpbml0aWFsaXplciwgSXNUcnVzCiB9CiAKIFdoZWVsRXZlbnQ6Oldo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgRE9NV2luZG93KiB2aWV3
KQotICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwg
ZXZlbnQudGltZXN0YW1wKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIGV2ZW50
LnBvc2l0aW9uKCkKKyAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndoZWVsRXZlbnQsIHRy
dWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpLCB2
aWV3LCAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgLCB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCmluZGV4IGQyNmY1N2Q4NDlhLi5mMWVjYjdjZDYwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmNwcApAQCAtMzcsMTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
VHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAg
ICA6IG1fZGF0YVNvdXJjZShkYXRhU291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAg
ICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1w
IHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFk
VGltZW91dCB7IDFfcyB9OwogCiBzdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2Uo
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6
OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1v
ZGUpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNv
dXJjZS0+b3B0aW9uQ291bnQoKTsKLSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGlt
ZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRp
bWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+
dGltZVN0YW1wKCk7CiAKICAgICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UeXBlQWhlYWQuaAppbmRleCA2MTBhYzc4Mjg4Yi4uZjMzY2ExZDA3M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UeXBlQWhlYWQuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgInd0Zi9Nb25vdG9uaWNUaW1lLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUeXBl
QWhlYWREYXRhU291cmNlKiBtX2RhdGFTb3VyY2U7Ci0gICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5
cGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VHlwZVRpbWU7CiAgICAgVUNoYXIgbV9y
ZXBlYXRpbmdDaGFyOwogICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAppbmRleCBlMzk5NmZkZWQ1MC4u
ZTUyODdjMGNiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xs
ZXIuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5j
bHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGVsYXkgdGltZSBp
biBzZWNvbmQgZm9yIHN0YXJ0IGF1dG9zY3JvbGwgaWYgcG9pbnRlciBpcyBpbiBib3JkZXIgZWRn
ZSBvZiBzY3JvbGxhYmxlIGVsZW1lbnQuCi1zdGF0aWMgY29uc3QgZG91YmxlIGF1dG9zY3JvbGxE
ZWxheSA9IDAuMjsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxEZWxheSB7IDIwMF9t
cyB9OwogCiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9yIHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dl
cmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSA1MG1zIHRvIG1ha2UgaXQgc21vb3RoLgogc3Rh
dGljIGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbEludGVydmFsIHsgNTBfbXMgfTsKQEAgLTU5LDcg
KzU4LDYgQEAgQXV0b3Njcm9sbENvbnRyb2xsZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKCkKICAg
ICA6IG1fYXV0b3Njcm9sbFRpbWVyKCp0aGlzLCAmQXV0b3Njcm9sbENvbnRyb2xsZXI6OmF1dG9z
Y3JvbGxUaW1lckZpcmVkKQogICAgICwgbV9hdXRvc2Nyb2xsUmVuZGVyZXIobnVsbHB0cikKICAg
ICAsIG1fYXV0b3Njcm9sbFR5cGUoTm9BdXRvc2Nyb2xsKQotICAgICwgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxTdGFydFRpbWUoMCkKIHsKIH0KIApAQCAtMTQwLDcgKzEzOCw3IEBAIHZvaWQgQXV0
b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpCiAgICAgbV9hdXRv
c2Nyb2xsUmVuZGVyZXIgPSBpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSA/IGRvd25jYXN0PFJlbmRl
ckJveD4ocmVuZGVyZXIpIDogbnVsbHB0cjsKIH0KIAotdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxl
cjo6dXBkYXRlRHJhZ0FuZERyb3AoTm9kZSogZHJvcFRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50
JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRUaW1lKQordm9pZCBBdXRvc2Nyb2xsQ29udHJv
bGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoTm9kZSogZHJvcFRhcmdldE5vZGUsIGNvbnN0IEludFBv
aW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRpbWUpCiB7CiAgICAgaWYgKCFkcm9w
VGFyZ2V0Tm9kZSkgewogICAgICAgICBzdG9wQXV0b3Njcm9sbFRpbWVyKCk7CkBAIC0yNDEsNyAr
MjM5LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQo
KQogICAgIEZyYW1lJiBmcmFtZSA9IG1fYXV0b3Njcm9sbFJlbmRlcmVyLT5mcmFtZSgpOwogICAg
IHN3aXRjaCAobV9hdXRvc2Nyb2xsVHlwZSkgewogICAgIGNhc2UgQXV0b3Njcm9sbEZvckRyYWdB
bmREcm9wOgotICAgICAgICBpZiAoV1RGOjpjdXJyZW50VGltZSgpIC0gbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxTdGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCisgICAgICAgIGlmIChXYWxsVGlt
ZTo6bm93KCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+IGF1dG9zY3JvbGxE
ZWxheSkKICAgICAgICAgICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyLT5hdXRvc2Nyb2xsKG1fZHJh
Z0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNlUG9zaXRpb24pOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEF1dG9zY3JvbGxGb3JTZWxlY3Rpb246IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaAppbmRleCAzY2Q5ZGJmMzM3OS4uNzEzNjBiYTQ0ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJP
YmplY3QqKTsKICAgICB2b2lkIHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVp
bmdEZXN0cm95ZWQgPSBmYWxzZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIo
KTsKLSAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IElu
dFBvaW50JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBXYWxsVGltZSBldmVudFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAg
IHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsK
QEAgLTc5LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJl
bmRlcmVyOwogICAgIEF1dG9zY3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9p
bnQgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUg
bV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5k
RHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAg
SW50UG9pbnQgbV9wYW5TY3JvbGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzLi4zMjJiNDky
M2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9y
LmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJO
YW1lcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwpAQCAtMTQ0MCw3ICsxNDQxLDcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgSW50UG9pbnQmIGNsaWMKICAgICBjbGVhckNvbnRleHRNZW51KCk7CiAgICAgCiAgICAg
Ly8gU2ltdWxhdGUgYSBjbGljayBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IG9i
amVjdC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChjbGlja1BvaW50LCBjbGlj
a1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQ
b2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAgICAgZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNl
RXZlbnQpOwogICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLnNlbmRDb250
ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBlZjU2Njc5NWFhZC4uM2Y4YTIwNmI1NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAg
c3RhdGljIFBsYXRmb3JtTW91c2VFdmVudCBjcmVhdGVNb3VzZUV2ZW50KGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKIAogICAgIHJldHVybiBQbGF0Zm9ybU1vdXNlRXZlbnQoZHJhZ0RhdGEuY2xp
ZW50UG9zaXRpb24oKSwgZHJhZ0RhdGEuZ2xvYmFsUG9zaXRpb24oKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZXRhS2V5LCBjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CiB9CiAKIERyYWdDb250cm9sbGVyOjpEcmFnQ29udHJvbGxlcihQYWdlJiBw
YWdlLCBEcmFnQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggNWM4NDhhZmQ5YjAuLmVmMDY5YzQ3ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVz
aXMgPSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2Vu
ZXJhbERyYWdIeXN0ZXJlc2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJs
ZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVu
dEhhbmRsZXI6OlRleHREcmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxl
bWVudCYgZHJhCiAKICAgICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jh
cmlseUZvckludGVyYWN0aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVu
dDo6Y3JlYXRlKGV2ZW50VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1w
KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1
ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRp
b24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngo
KSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwK
QEAgLTI5MzksNyArMjkzOSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVF
dmVudEZvcktleSgpCiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBw
bGF0Zm9ybU1vdXNlRXZlbnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwg
ZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGlt
ZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZv
cm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50
VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9y
Y2VBdENsaWNrLCBOb1RhcCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxh
dGZvcm1Nb3VzZUV2ZW50KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAg
ICBib29sIG1ldGFLZXk7CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9k
aWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlv
biwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3Vy
cmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VN
b3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtl
eSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsK
ICAgICBtb3VzZU1vdmVkKGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2
M2M4ZjJhODkuLmEwYWE1MzVmNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAg
LTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAgICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7Ci0gICAgc3RhdGljIGNvbnN0
IGRvdWJsZSBUZXh0RHJhZ0RlbGF5OworICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIFRleHREcmFn
RGVsYXk7CiAgICAgUmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIo
KSBjb25zdDsKICNlbmRpZgogCkBAIC01NjQsNyArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRQ
b2ludCBtX2xhc3RLbm93bk1vdXNlUG9zaXRpb247CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbW91c2VEb3duUG9zOyAvLyBJbiBv
dXIgdmlldydzIGNvb3Jkcy4KLSAgICBkb3VibGUgbV9tb3VzZURvd25UaW1lc3RhbXAgeyAwIH07
CisgICAgV2FsbFRpbWUgbV9tb3VzZURvd25UaW1lc3RhbXA7CiAgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IG1fbW91c2VEb3duOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2UuY3BwCmluZGV4IDFhZmEzNjQ1OTEzLi5mMmUxNGJjZjc1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBQZXJmb3JtYW5jZTo6
Y29udGV4dERlc3Ryb3llZCgpCiAgICAgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRl
eHREZXN0cm95ZWQoKTsKIH0KIAotZG91YmxlIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAorRE9N
SGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bm93KCkgY29uc3QKIHsKICAgICBTZWNvbmRz
IG5vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV90aW1lT3JpZ2luOwogICAgIHJldHVybiBy
ZWR1Y2VUaW1lUmVzb2x1dGlvbihub3cpLm1pbGxpc2Vjb25kcygpOwpAQCAtODIsNiArODIsMTIg
QEAgU2Vjb25kcyBQZXJmb3JtYW5jZTo6cmVkdWNlVGltZVJlc29sdXRpb24oU2Vjb25kcyBzZWNv
bmRzKQogICAgIHJldHVybiBTZWNvbmRzKHJlZHVjZWQpOwogfQogCitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wKSBjb25zdAoreworICAgIFNlY29uZHMgc2Vjb25kcyA9IHRpbWVzdGFt
cCAtIG1fdGltZU9yaWdpbjsKKyAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24oc2Vjb25k
cykubWlsbGlzZWNvbmRzKCk7Cit9CisKIFBlcmZvcm1hbmNlTmF2aWdhdGlvbiogUGVyZm9ybWFu
Y2U6Om5hdmlnYXRpb24oKQogewogICAgIGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXggOWE2MGVjMGFiMmMu
LmQxNDg2YjgzNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFy
Z2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1
ZXVlLmgiCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1h
bmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGlt
ZSB0aW1lT3JpZ2luKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQs
IHRpbWVPcmlnaW4pKTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygp
IGNvbnN0OworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJm
b3JtYW5jZU5hdmlnYXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyog
dGltaW5nKCk7CkBAIC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRz
IHJlZHVjZVRpbWVSZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFt
cCBtb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0Owor
CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA1Y2I0Nzg0NzFkNi4uNTJjYjljODc0
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1
ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4
NywyNyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNv
bnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29u
c3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25z
dCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVu
dCgpCiAgICAgICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQog
ICAgIHsKICAgICB9CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAg
ICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAg
ICB9CiAKLSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBt
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUs
IE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
ICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAg
ICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZv
cm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5
cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBt
ZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAg
ICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVy
PiBtX21vZGlmaWVyczsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90
aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmLi45
N2QwM2FmOTJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgKQEAgLTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVO
QUJMRShLRVlCT0FSRF9DT0RFX0FUVFJJQlVURSkKICAgICAgICAgY29uc3QgU3RyaW5nJiBjb2Rl
LAogI2VuZGlmCi0gICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wg
aXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0
YW1wKQorICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lz
dGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1w
KQogICAgICAgICAgICAgLCBtX3RleHQodGV4dCkKICAgICAgICAgICAgICwgbV91bm1vZGlmaWVk
VGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
b3VzZUV2ZW50LmgKaW5kZXggMTA0ZjUzOTcwOTIuLmE0ZTdkNTg5MjRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtNjEsNyArNjEsNyBAQCBj
b25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xpY2sgPSAyOwogICAgICAgICB9CiAKICAgICAgICAg
UGxhdGZvcm1Nb3VzZUV2ZW50KGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBNb3VzZUJ1dHRvbiBidXR0b24sIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29s
IHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29s
IHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIFdhbGxU
aW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGlj
Q2xpY2tUeXBlKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIHNoaWZ0S2V5LCBj
dHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV9wb3Np
dGlvbihwb3NpdGlvbikKICAgICAgICAgICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5k
ZXggNmQ0NThiZWY0YjguLjI5NTg4MjEwYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NY
LCBmbG9hdCB3aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSkKLSAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZl
bnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFL
ZXksIHsgfSkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xv
YmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0K
aW5kZXggZDM3OWUyNDc0ZDEuLjBiMmIyODE4MGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTE3OSwxNCArMTc5LDE0IEBA
IGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVz
cyAmJiAobW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHx8IG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2VkKSkKICAgICAgICAg
bV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwg
dGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wOworICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGlt
ZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpIC0gbV9sYXN0TW9tZW50dW1TY3Jv
bGxUaW1lc3RhbXA7CiAgICAgaWYgKG1faW5TY3JvbGxHZXN0dXJlIHx8IG1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzKSB7CiAgICAgICAgIGlmIChtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cCAmJiB0aW1lRGVsdGEgPiAwICYmIHRpbWVEZWx0YSA8IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1Rp
bWVvdXQpIHsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRXaWR0aChldmVudENv
YWxlc2NlZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwogICAgICAgICAgICAgbV9tb21lbnR1
bVZlbG9jaXR5LnNldEhlaWdodChldmVudENvYWxlc2NlZERlbHRhWSAvIChmbG9hdCl0aW1lRGVs
dGEpOwotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2
ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3Rh
bXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVt
U2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9j
aCgpLnZhbHVlKCk7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUo
KTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDYyZjk4MjM3NzEuLjhlMDQ1NjMzNWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZh
Y3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVi
cy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVz
LmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAg
IFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAg
ICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9
IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwog
CiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9n
bG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEw
Niw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3Jv
bGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAg
ICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBX
YWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZl
bnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVu
dCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlwZSA9IChldmVu
dC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3Jt
RXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50
KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQgPSBldmVudC5j
aGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9y
bVRvdWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50UG9pbnQgbG9j
YXRpb24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBtX3RpbWVzdGFt
cCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygp
OwogICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAgICBtX2dlc3R1
cmVSb3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwLi5jNDBlYzIxZjEyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQgaW50IHdpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlJ
ZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBr
ZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVGb3JL
ZXlFdmVudChOU0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2ZW50VGltZVN0YW1w
U2luY2UxOTcwKE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBldmVudFRpbWVT
dGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRX
aGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRhWSwg
Qk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZlbnQo
TlNFdmVudCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNC4uNzk0MWNkNmM0ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZh
Y3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZl
bnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3Rm
L0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVk
U3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBU
aW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQp
CitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2lu
Y2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxT
aW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2Q0MWM3MTAzOS4uYWE5OTgwYzM0MjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8
d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9u
aWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUp
Cit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30K
KworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
QXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNl
Y29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3
NDEzLi4wOGMzODM5MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTW9u
b3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7CitjbGFzcyBXYWxsVGltZTsKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTYyLDYgKzE2MywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdURjo6TW9ub3RvbmljVGltZT4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV1RGOjpNb25vdG9uaWNUaW1lJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6V2FsbFRpbWU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdURjo6V2FsbFRpbWUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6V2FsbFRpbWUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V1RGOjpTZWNvbmRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXVEY6OlNlY29uZHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdU
Rjo6U2Vjb25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDUwN2JjMTY2Mjg5
Li41YTA4NmY5N2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAtMjgsMTcgKzI4
LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Tm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJzKDApCi0gICAgLCBtX3RpbWVzdGFtcCgwKQogewog
fQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAg
LCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAyMTAxODZkYzBmZC4uMmQ0NTlmNmExMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEy
IEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdl
YkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWlu
dDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsK
KyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xh
c3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2
ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnRO
dW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAg
IFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5
cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAg
cHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhh
c2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6
CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJv
b2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9h
cmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZl
VmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBA
IHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQg
Z2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00
NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2Vi
RXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2
ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBj
b25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9h
cmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTMuLjBjZjI3MTk5NjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtMzcsNyArMzcsNyBAQCBXZWJLZXli
b2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KCkKIAogI2lmIFVTRShBUFBLSVQpCiAKLVdlYktl
eWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitX
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFk
LCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1f
dGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTYy
LDcgKzYyLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQTEFURk9STShHVEsp
CiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3Ry
aW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0
KHRleHQpCkBAIC04Myw3ICs4Myw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZl
bnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYg
UExBVEZPUk0oSU9TKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkK
K1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwg
bV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTEwNiw3ICsxMDYsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbHNlCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5
Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1
bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1Zp
cnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9k
aWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50
LmNwcAppbmRleCA4ZGE4ZDNmZTgzMy4uMGY3N2ZhZTNkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIFdlYk1vdXNlRXZlbnQ6OldlYk1v
dXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotV2ViTW91c2VFdmVudDo6V2ViTW91
c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRl
bHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhl
dGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKK1dlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkK
ICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1
dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlj
a0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9y
Y2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCitXZWJNb3VzZUV2ZW50
OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICNlbmRpZgogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX2J1dHRvbihidXR0b24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDEzZmU0OGRlOTlkLi40ZTEzZTg5NjUyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgeyAgICAKIAotV2ViV2hl
ZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRh
LCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9h
dFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2Jh
bFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTAsNyArNTAsNyBAQCBXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludAogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1XZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9u
SW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9v
bCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVy
cyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYg
Z2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYg
d2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC02Nyw3ICs2Nyw3IEBAIFdlYldoZWVsRXZlbnQ6
OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IEludFBvaW50CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkpOwogfQogI2VsaWYg
UExBVEZPUk0oR1RLKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBj
b25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNl
IHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9w
b3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2
ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVu
dE1hYy5tbQppbmRleCAzYjU1Y2U4MDkyZi4uMGM0NWJmZmIxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEs
NyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVu
dC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRU
aW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVu
dDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAg
ICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZl
bnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBldmVudC50
aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVudCwgdmlldykp
LAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25p
ZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8g
ZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDcuLjlkODU1OTRhMzY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTM2MCw3ICszNjAsNyBAQCBXZWJN
b3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICpl
dmVudCwgTlNFdmVudCAqbGFzdAogICAgIGZsb2F0IGRlbHRhWiA9IFtldmVudCBkZWx0YVpdOwog
ICAgIGludCBjbGlja0NvdW50ID0gY2xpY2tDb3VudEZvckV2ZW50KGV2ZW50KTsKICAgICBXZWJF
dmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAg
ICBkb3VibGUgdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAg
IGF1dG8gdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwogICAgIGlu
dCBldmVudE51bWJlciA9IFtldmVudCBldmVudE51bWJlcl07CiAgICAgaW50IG1lbnVUeXBlRm9y
RXZlbnQgPSB0eXBlRm9yRXZlbnQoZXZlbnQpOwogCkBAIC00MTgsNyArNDE4LDcgQEAgV2ViV2hl
ZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAqZXZl
bnQsIE5TVmlldyAqd2luZG8KICAgICB9CiAKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVycyAgICAgICAgICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRp
bWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAo
ZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICAKICAgICByZXR1cm4gV2ViV2hlZWxF
dmVudChXZWJFdmVudDo6V2hlZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFs
UG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNr
c1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHNjcm9s
bENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0YW1w
KTsKIH0KQEAgLTQzOCw3ICs0MzgsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBoYQogICAgIGJv
b2wgaXNLZXlwYWQgICAgICAgICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50KGV2ZW50KTsKICAg
ICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8vIFN5c3RlbUtleSBp
cyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlm
aWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAg
ICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0
byB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2
ZW50KTsKIAogICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9yIEVudGVyL1JldHVybiAtLSB3ZSBkb24n
dCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBFbnRlci4KICAg
ICBpZiAod2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX1JFVFVSTikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCmluZGV4IGJjNjhiYTUyN2E1Li5iNmY5YzY4
ZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdlc3R1cmVFdmVudCA6
IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViR2VzdHVyZUV2ZW50KCkgeyB9Ci0g
ICAgV2ViR2VzdHVyZUV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBn
ZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJHZXN0dXJlRXZlbnQo
V2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9h
dCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0
aW1lc3RhbXApCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAgICAgLCBtX2dl
c3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4
IDVkZjNkZmMzZTZlLi4wN2VkYWJmYjZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xp
Y2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAg
IHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0
aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNp
bXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQs
IG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBX
S0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0
b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNl
VXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9p
bnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0g
ICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24p
LCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2lu
dChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2
NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggYWZjZmZhNTE3NDUuLjg2ZmUzNmIxZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3
IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50
JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVG
cmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+
Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2
ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50
LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZp
ZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJN
b3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwg
MCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpu
b3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1l
bnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmUuLmVjZDU2N2ZjYzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODk3
LDcgKzg5Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJFdmVudD4gUGx1Z2luVmlldzo6Y3JlYXRl
V2ViRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKGV2ZW50Lm1ldGFLZXko
KSkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwogCi0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+
Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZ
KCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgMCwgMCk7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+
Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZ
KCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgV2FsbFRpbWUgeyB9LCAwKTsK
IH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBlYWJlNjU5OTBk
Li5mZjhiYjk4MDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BE
RkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0gICAgUmVm
UHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIsIHNpbmds
ZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54
KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50
LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55
KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpAQCAt
MjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVB
dFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNv
bnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8vIFNpbXVs
YXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24s
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXAp
OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVN
b3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBjb3Jl
UGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNlUHJl
c3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUgPSBoYW5k
bGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1v
dXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGlt
ZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1Rh
cCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNl
RXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcg
KzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGll
bnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAgICAg
ICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhl
cmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3Np
dGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0
ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29y
ZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1Nv
dXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwxNyAr
NDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNv
bnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVN
b3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlj
a0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdl
YlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6
Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBw
b3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1v
dXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRl
TW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNr
Q291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2Vi
UGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1v
dXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRp
b24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2
ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywg
V2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNl
TW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQgV2Vi
UGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgV2Fs
bFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVu
dDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9u
LCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwgV2ViTW91
c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOS4uYmIxZjUxMjZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
U2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEsp
CkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGlu
ZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29y
ZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9p
bnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAg
dm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7
CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lk
IHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNr
Q291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91
c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0Nv
bnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1t
CmluZGV4IDk1Zjg0ZGQyNWE4Li43Njg1NDQ4NDBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0RPTS9ET01FdmVudC5tbQpAQCAtOTcsNyArOTcsNyBAQAogLSAoRE9NVGltZVN0YW1wKXRpbWVT
dGFtcAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7CisgICAgcmV0dXJuIElNUEwtPnRpbWVTdGFtcCgpLnNl
Y29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIC0gKEJPT0wpZGVmYXVsdFBy
ZXZlbnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5k
ZXggMDAxNmMwYTQyYzAuLmYzNGQ2OTU5ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMgaW5saW5lIFdl
YkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAg
cmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUs
IGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFsUG9pbnQod2lu
ZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJD
b3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZHJh
Z1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9CiAjZW5k
aWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdjODhhNmNhLi4x
OGUzNWE1YmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQpAQCAtMTAxOCwxNCArMTAxOCwxNCBAQCBzdGF0aWMgQk9PTCBpc0ZyYW1lSW5SYW5n
ZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICBjYXNlIE5TRXZlbnRUeXBl
S2V5RG93bjogewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQbGF0Zm9ybUV2
ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQpOwogICAgICAg
ICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bik7
Ci0gICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsKKyAgICAgICAg
ZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIG51bGxwdHIpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChi
dXR0b24gIT0gbm9CdXR0b24pIHsKLSAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAsIFtu
c0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAorICAgICAgICBldmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgTW9ub3Rvbmlj
VGltZTo6bm93KCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321387</attachid>
            <date>2017-09-20 16:45:20 -0700</date>
            <delta_ts>2017-09-20 16:54:48 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>79857</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2
Li41MmNiOWM4NzQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtODYsMjkgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnM7IH0KIAotICAgIGRvdWJsZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFdhbGxUaW1lIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBQ
bGF0Zm9ybUV2ZW50KCkKICAgICAgICAgOiBtX3R5cGUoTm9UeXBlKQotICAgICAgICAsIG1fdGlt
ZXN0YW1wKDApCiAgICAgewogICAgIH0KIAogICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlw
ZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fdGltZXN0YW1wKDAp
CiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50
KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycyhtb2Rp
ZmllcnMpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAgICB9CiAK
LSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0
S2V5LCBib29sIG1ldGFLZXksIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewpAQCAtMTMwLDcg
KzEyOSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHVuc2lnbmVkIG1fdHlwZTsKICAgICBPcHRpb25T
ZXQ8TW9kaWZpZXI+IG1fbW9kaWZpZXJzOwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBX
YWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggODdi
YTU3NjA4ZGYuLjk3ZDAzYWY5MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgRU5BQkxFKEtFWUJPQVJEX0NPREVfQVRUUklCVVRFKQogICAgICAgICBjb25zdCBT
dHJpbmcmIGNvZGUsCiAjZW5kaWYKLSAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
LCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXApCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAgICAgLCBt
X3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAxMDRmNTM5NzA5Mi4uYTRlN2Q1ODkyNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0K
IAogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSBzeW50aGV0aWNDbGlja1R5cGUpCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9u
KGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRiOC4uMjk1ODgyMTBjODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQoSW50UG9pbnQgcG9zaXRpb24sIElu
dFBvaW50IGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQg
d2hlZWxUaWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxh
cml0eSBncmFudWxhcml0eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBtZXRhS2V5KQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIDApCisgICAgICAgIDog
UGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgeyB9KQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAg
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKICAgICAgICAgLCBtX2RlbHRh
WChkZWx0YVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQppbmRleCBkMzc5ZTI0NzRkMS4uMGIyYjI4MTgwYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTc5LDE0
ICsxNzksMTQgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAoIW1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQp
KQogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKLSAgICBDRlRp
bWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpIHsKICAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Ny
b2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2Np
dHlaZXJvaW5nVGltZW91dCkgewogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdp
ZHRoKGV2ZW50Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CiAgICAgICAgICAg
ICBtX21vbWVudHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZs
b2F0KXRpbWVEZWx0YSk7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNj
cm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1T
Y3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9s
YXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9
IEZsb2F0U2l6ZSgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MS4u
OGUwNDU2MzM1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIldB
S0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tl
eWJvYXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3Rm
L1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBAQCBw
dWJsaWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAg
ICAgewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1f
dGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGlt
ZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwog
ICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBA
IC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBX
ZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpX
aGVlbDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3Rp
bWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRG
b3JFdmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZv
ckV2ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV90
eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVw
IDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7
CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fdGV4
dCA9IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVudC5j
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00OTYsNyArNDk2LDcgQEAgcHVibGljOgog
ICAgIFBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXIoUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLCBJ
bnRQb2ludCBsb2NhdGlvbikKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHR5cGU7Ci0gICAgICAg
IG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxs
VGltZTo6bm93KCk7CiAgICAgICAgIAogICAgICAgICBtX2dlc3R1cmVTY2FsZSA9IDE7CiAgICAg
ICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKaW5kZXggZDIwYTJkOGVlOTAuLmM0
MGVjMjFmMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBp
bnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZl
bnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1l
IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9S
VCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9h
dCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNo
YXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJiMTgyMjRmODM0Li43OTQx
Y2Q2YzRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAj
aW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjE3LDkgKzYxOCw5IEBAIHN0YXRpYyBDRlRpbWVJbnRl
cnZhbCBjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkKICAgICByZXR1cm4gc3lz
dGVtU3RhcnR1cFRpbWU7CiB9CiAKLWRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2
ZW50KiBldmVudCkKK1dhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2
ZW50KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1l
SW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKTsKKyAgICByZXR1cm4gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRp
bWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pKTsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5Li5h
YTk5ODBjMzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4K
KyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xNjAsNiArMTYxLDIxIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxNb25vdG9uaWNUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIE1vbm90b25pY1RpbWUmIHRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXYWxs
VGltZSYgdGltZSkKK3sKKyAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52
YWx1ZSgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZG91YmxlIHZhbHVlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0
aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogdm9pZCBBcmd1bWVudENvZGVyPFNlY29uZHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2Vjb25kcyYgc2Vjb25kcykKIHsKICAgICBlbmNvZGVyIDw8IHNlY29uZHMudmFs
dWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggNWI1ZmQzOTc0MTMuLjA4YzM4MzkwYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDMsNiArNDMsNyBAQAogbmFtZXNwYWNlIFdURiB7
CiBjbGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgU2Vjb25kczsKK2NsYXNzIFdhbGxUaW1lOwog
fQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIsNiArMTYzLDExIEBAIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNb25vdG9uaWNUaW1lPiB7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXVEY6Ok1vbm90b25pY1RpbWUmKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpXYWxsVGltZT4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpXYWxsVGltZSYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV1RGOjpXYWxsVGltZSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlNlY29uZHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdURjo6U2Vjb25kcyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV1RGOjpTZWNvbmRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKaW5kZXgg
NTA3YmMxNjYyODkuLjVhMDg2Zjk3YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBA
IC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNv
ZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0
YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBt
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBl
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRp
bWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkLi4yZDQ1OWY2
YTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMTA0
LDEyICsxMDUsMTIgQEAgcHVibGljOgogCiAgICAgTW9kaWZpZXJzIG1vZGlmaWVycygpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PE1vZGlmaWVycz4obV9tb2RpZmllcnMpOyB9CiAKLSAgICBk
b3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxs
VGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViRXZlbnQoKTsKIAotICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViRXZlbnQoVHlwZSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0
aW1lc3RhbXApOwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYkV2ZW50Jik7CkBAIC0xMTcsNyAr
MTE4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3R5cGU7IC8vIFR5
cGUKICAgICB1aW50MzJfdCBtX21vZGlmaWVyczsgLy8gTW9kaWZpZXJzCi0gICAgZG91YmxlIG1f
dGltZXN0YW1wOworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogLy8gRklYTUU6IE1v
dmUgdGhpcyBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLgpAQCAtMTM1LDkgKzEzNiw5IEBA
IHB1YmxpYzoKICAgICBXZWJNb3VzZUV2ZW50KCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAg
V2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5v
VGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CisgICAgV2ViTW91
c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXAs
IGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKICNlbHNlCi0gICAgV2Vi
TW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgs
IGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBO
b1RhcCk7CisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9u
LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3Vu
dCwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSA9IDAsIFN5bnRo
ZXRpY0NsaWNrVHlwZSA9IE5vVGFwKTsKICNlbmRpZgogCiAgICAgQnV0dG9uIGJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEJ1dHRvbj4obV9idXR0b24pOyB9CkBAIC0xOTcsMTEg
KzE5OCwxMSBAQCBwdWJsaWM6CiAKICAgICBXZWJXaGVlbEV2ZW50KCkgeyB9CiAKLSAgICBXZWJX
aGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFy
aXR5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlw
ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVt
UGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291
bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRh
LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsK
KyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3Ms
IFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApOwogI2VuZGlmCiAKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBw
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KQEAgLTI1MCwxMyArMjUxLDEz
IEBAIHB1YmxpYzoKICAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwogCiAjaWYgVVNFKEFQUEtJVCkK
LSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBi
b29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VsaWYg
UExBVEZPUk0oR1RLKQotICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBj
b21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNL
ZXlwYWQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKElP
UykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxzZQotICAgIFdlYktleWJvYXJkRXZl
bnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0
LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1Jl
cGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wg
aXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAg
ICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CkBAIC0zODIs
NyArMzgzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50
KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJU
b3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCwgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNo
UG9pbnRzLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgYm9vbCBpc1BvdGVudGlhbFRhcCwg
Ym9vbCBpc0dlc3R1cmUsIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9u
KQogICAgICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICAg
ICAsIG1fdG91Y2hQb2ludHModG91Y2hQb2ludHMpCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3Np
dGlvbikKQEAgLTQ3MSw3ICs0NzIsNyBAQCBwcml2YXRlOgogY2xhc3MgV2ViVG91Y2hFdmVudCA6
IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViVG91Y2hFdmVudCgpIHsgfQotICAg
IFdlYlRvdWNoRXZlbnQoVHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgTW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3Rv
cjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKIAogICAgIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50
cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQb2ludHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCBlYjQ3NzFmZGE1My4uMGNmMjcxOTk2MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBAIC0zNyw3ICszNyw3
IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoKQogCiAjaWYgVVNFKEFQUEtJ
VCkKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJv
b2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1w
KQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRU
ZXh0KQpAQCAtNjIsNyArNjIsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlmIFBM
QVRGT1JNKEdUSykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlw
ZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5t
b2RpZmllZFRleHQodGV4dCkKQEAgLTgzLDcgKzgzLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2Vi
S2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JgogCiAjZWxpZiBQTEFURk9STShJT1MpCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJk
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29s
IGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wg
aXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAg
ICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRl
eHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpAQCAtMTA2LDcgKzEw
Niw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2Vsc2UKIAotV2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQg
d2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWND
aGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2
ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1h
Y0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2Vi
RXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAg
ICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
Yk1vdXNlRXZlbnQuY3BwCmluZGV4IDhkYThkM2ZlODMzLi4wZjc3ZmFlM2QwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNr
VHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQor
V2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBm
bG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwg
TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBl
LCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRh
WiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAs
IGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dl
Yk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50
aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggMTNmZTQ4ZGU5OWQuLjRlMTNl
ODk2NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyAr
MzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAg
IAogCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVl
bEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5
cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAg
ICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9v
bCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1
bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENv
dW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0
YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6
OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlw
ZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAg
ICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2Vi
V2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7
CiB9CiAjZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5
cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxU
aWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBj
b25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBo
YXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXAp
CiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9i
YWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVX
ZWJHZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2Vi
R2VzdHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmLi4wYzQ1YmZmYjFmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFj
Lm1tCkBAIC0zMSw3ICszMSw3IEBACiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2Vi
R2VzdHVyZUV2ZW50LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW1wb3J0IDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTYzLDcgKzYzLDcgQEAgTmF0aXZlV2Vi
R2VzdHVyZUV2ZW50OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmll
dyAqdmlldykKICAgICA6IFdlYkdlc3R1cmVFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9y
TlNFdmVudChldmVudCksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAg
ICAgIGV2ZW50LnRpbWVzdGFtcCwKKyAgICAgICAgV2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5j
ZTE5NzAoZXZlbnQpLAogICAgICAgICBXZWJDb3JlOjpJbnRQb2ludChwb2ludEZvckV2ZW50KGV2
ZW50LCB2aWV3KSksCiAgICAgICAgIGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVNYWduaWZ5ID8g
ZXZlbnQubWFnbmlmaWNhdGlvbiA6IDAsCiAgICAgICAgIGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5
cGVSb3RhdGUgPyBldmVudC5yb3RhdGlvbiA6IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1dlYkV2ZW50RmFjdG9yeS5tbQppbmRleCAwZGIzYmU4YzY0Ny4uOWQ4NTU5NGEzNjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMzYwLDcgKzM2
MCw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50
KE5TRXZlbnQgKmV2ZW50LCBOU0V2ZW50ICpsYXN0CiAgICAgZmxvYXQgZGVsdGFaID0gW2V2ZW50
IGRlbHRhWl07CiAgICAgaW50IGNsaWNrQ291bnQgPSBjbGlja0NvdW50Rm9yRXZlbnQoZXZlbnQp
OwogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChl
dmVudCk7CisgICAgYXV0byB0aW1lc3RhbXAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVu
dCk7CiAgICAgaW50IGV2ZW50TnVtYmVyID0gW2V2ZW50IGV2ZW50TnVtYmVyXTsKICAgICBpbnQg
bWVudVR5cGVGb3JFdmVudCA9IHR5cGVGb3JFdmVudChldmVudCk7CiAKQEAgLTQxOCw3ICs0MTgs
NyBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChO
U0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kbwogICAgIH0KIAogICAgIFdlYkV2ZW50OjpNb2Rp
ZmllcnMgbW9kaWZpZXJzICAgICAgICAgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAg
ICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFt
cFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0byB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAg
ICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwogICAgIAogICAgIHJldHVy
biBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQ
b2ludChnbG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6
ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0
ZWRGcm9tRGV2aWNlLCBwaGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0Rl
bHRhcywgc2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApOwogfQpAQCAtNDM4LDcgKzQzOCw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29s
IGhhCiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFkRXZlbnQo
ZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxzZTsgLy8g
U3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50OjpNb2Rp
ZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91Ymxl
IHRpbWVzdGFtcCAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBT
aW5jZTE5NzAoZXZlbnQpOwogCiAgICAgLy8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJu
IC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9y
IEVudGVyLgogICAgIGlmICh3aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVUVVJOKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKaW5kZXggYmM2OGJhNTI3
YTUuLmI2ZjljNjhkYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
R2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVF
dmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2Vz
dHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZl
bnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdl
c3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJl
U2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAg
ICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUuLjA3ZWRhYmZiNmZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcApAQCAtNDc4LDE3ICs0NzgsMTcgQEAgdm9pZCBXS0J1bmRsZVBhZ2VGb3JjZVJl
cGFpbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVN
b3VzZURvd24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRp
b24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0b24sIHRvSW50
UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIHRpbWUpOworICAgIHRvSW1w
bChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwg
Y2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgaW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNp
bXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBt
b2RpZmllcnMsIHRpbWUpOworICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRv
biwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1v
dXNlTW90aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvc2l0aW9uLCBkb3VibGUg
dGltZSkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2lu
dChwb3NpdGlvbiksIHRpbWUpOworICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZU1vdGlv
bih0b0ludFBvaW50KHBvc2l0aW9uKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsK
IH0KIAogdWludDY0X3QgV0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tCdW5kbGVQYWdl
UmVmIHBhZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbQppbmRleCBhZmNmZmE1MTc0NS4uODZmZTM2YjFmZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTU3
Niw3ICsxNTc2LDcgQEAgYm9vbCBQREZQbHVnaW46OnNob3dDb250ZXh0TWVudUF0UG9pbnQoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gd2ViRnJh
bWUoKS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBJbnRQb2ludCBjb250ZW50c1BvaW50ID0g
ZnJhbWVWaWV3LT5jb250ZW50c1RvUm9vdFZpZXcocG9pbnQpOwotICAgIFdlYk1vdXNlRXZlbnQg
ZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNv
bnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2
ZW50OjpNb2RpZmllcnM+KDApLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSwgV2ViQ29y
ZTo6Rm9yY2VBdENsaWNrKTsKKyAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50OjpNb3Vz
ZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBjb250ZW50
c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwg
V2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOwogICAgIHJldHVybiBoYW5k
bGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhNjQ4ZjdlYWJmZS4uZWNkNTY3ZmNj
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCkBAIC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50PiBQbHVnaW5W
aWV3OjpjcmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoZXZl
bnQubWV0YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CiAK
LSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24s
IG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2
ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCAwLCAwKTsK
KyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24s
IG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2
ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCBXYWxsVGlt
ZSB7IH0sIDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50JiBldmVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
MGVhYmU2NTk5MGQuLmZmOGJiOTgwNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBXZWJQYWdlOjpu
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50
UG9pbnQgZG8KICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0g
MTsKLSAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVs
bHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1
bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+
IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQs
IHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywg
c2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1
bWVudFBvaW50LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAog
I2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1LDExIEBAIFdlYkNvbnRleHRNZW51KiBXZWJQYWdlOjpj
b250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgY29y
ZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVudSgpOwogCiAg
ICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51
LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJD
b3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUHJlc3NFdmVudChwb2lu
dCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRn
ZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZVByZXNzRXZlbnQpOwogICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRleHRNZW51RXZl
bnQobW91c2VQcmVzc0V2ZW50LCBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKSk7CiAgICAgYXV0byog
bWVudSA9IGhhbmRsZWQgPyBjb250ZXh0TWVudSgpIDogbnVsbHB0cjsKLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVhc2VFdmVudChwb2ludCwgcG9pbnQsIFJp
Z2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVN
b3VzZVJlbGVhc2VFdmVudChtb3VzZVJlbGVhc2VFdmVudCk7CiAKICAgICByZXR1cm4gbWVudTsK
QEAgLTM2NzQsNyArMzY3NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhZ0VuZGVkKFdlYkNvcmU6Oklu
dFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iCiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlm
aWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgotICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3Rl
ZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgV2ViQ29yZTo6
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0
aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsK
IAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRW5kRHJhZ2dpbmcoKSk7CkBA
IC00NjcwLDE3ICs0NjcwLDE3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0
VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
OjpzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
biwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2Vi
TW91c2VFdmVudDo6TW91c2VEb3duLCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+
KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGlj
X2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCB0aW1lLCBXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6Ok5vVGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91
c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0
b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNp
bXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBXYWxsVGltZSB0aW1lKQogewogICAgIG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChX
ZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycygpLCB0aW1l
LCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQzMTU0YTYxNGI5Li5iYjFmNTEyNmQ2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjYsNiArNjYsNyBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIFBM
QVRGT1JNKEdUSykKQEAgLTgwNiw5ICs4MDcsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIC8v
IEZvciB0ZXN0aW5nIHB1cnBvc2UuCi0gICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0
dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMs
IGRvdWJsZSB0aW1lKTsKLSAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJD
b3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIGRvdWJsZSB0
aW1lKTsKLSAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIGRv
dWJsZSB0aW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNv
cmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgV2FsbFRpbWUp
OworICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgV2FsbFRpbWUpOworICAgIHZvaWQg
c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgV2FsbFRpbWUpOwogCiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBjb250ZXh0TWVudVNob3dpbmcoKSB7IG1f
aXNTaG93aW5nQ29udGV4dE1lbnUgPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRXZlbnQubW0KaW5kZXggOTVmODRkZDI1YTguLjc2ODU0NDg0MGYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01UaW1l
U3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+dGlt
ZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9P
TClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMC4uZjM0ZDY5NTlkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTY0LDcgKzk2NCw3IEBAIHN0YXRp
YyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVy
KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVy
IGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgogICAgIFBs
YXRmb3JtTW91c2VFdmVudCBldmVudChJbnRQb2ludCh3aW5kb3dMb2MpLCBJbnRQb2ludChnbG9i
YWxQb2ludCh3aW5kb3dMb2MsIFt2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10pKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdl
YkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5ldmVudEhh
bmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9u
KTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggZWM1
N2M4OGE2Y2EuLjE4ZTM1YTViZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJQREZWaWV3Lm1tCkBAIC0xMDE4LDE0ICsxMDE4LDE0IEBAIHN0YXRpYyBCT09MIGlz
RnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGNhc2Ug
TlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9
IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVu
dCk7CiAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpS
YXdLZXlEb3duKTsKLSAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDAp
OworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgbnVsbHB0cik7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewotICAgICAgICBldmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRp
bWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCisgICAgICAgIGV2ZW50
ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVl
LCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAs
IDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321388</attachid>
            <date>2017-09-20 16:54:48 -0700</date>
            <delta_ts>2017-09-20 17:05:01 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>80482</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2
Li41MmNiOWM4NzQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtODYsMjkgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnM7IH0KIAotICAgIGRvdWJsZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFdhbGxUaW1lIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBQ
bGF0Zm9ybUV2ZW50KCkKICAgICAgICAgOiBtX3R5cGUoTm9UeXBlKQotICAgICAgICAsIG1fdGlt
ZXN0YW1wKDApCiAgICAgewogICAgIH0KIAogICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlw
ZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fdGltZXN0YW1wKDAp
CiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50
KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycyhtb2Rp
ZmllcnMpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAgICB9CiAK
LSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0
S2V5LCBib29sIG1ldGFLZXksIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewpAQCAtMTMwLDcg
KzEyOSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHVuc2lnbmVkIG1fdHlwZTsKICAgICBPcHRpb25T
ZXQ8TW9kaWZpZXI+IG1fbW9kaWZpZXJzOwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBX
YWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggODdi
YTU3NjA4ZGYuLjk3ZDAzYWY5MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgRU5BQkxFKEtFWUJPQVJEX0NPREVfQVRUUklCVVRFKQogICAgICAgICBjb25zdCBT
dHJpbmcmIGNvZGUsCiAjZW5kaWYKLSAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
LCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXApCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAgICAgLCBt
X3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAxMDRmNTM5NzA5Mi4uYTRlN2Q1ODkyNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0K
IAogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSBzeW50aGV0aWNDbGlja1R5cGUpCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9u
KGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRiOC4uMjk1ODgyMTBjODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQoSW50UG9pbnQgcG9zaXRpb24sIElu
dFBvaW50IGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQg
d2hlZWxUaWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxh
cml0eSBncmFudWxhcml0eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBtZXRhS2V5KQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIDApCisgICAgICAgIDog
UGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgeyB9KQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAg
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKICAgICAgICAgLCBtX2RlbHRh
WChkZWx0YVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQppbmRleCBkMzc5ZTI0NzRkMS4uMGIyYjI4MTgwYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTc5LDE0
ICsxNzksMTQgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAoIW1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQp
KQogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKLSAgICBDRlRp
bWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpIHsKICAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Ny
b2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2Np
dHlaZXJvaW5nVGltZW91dCkgewogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdp
ZHRoKGV2ZW50Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CiAgICAgICAgICAg
ICBtX21vbWVudHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZs
b2F0KXRpbWVEZWx0YSk7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNj
cm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1T
Y3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9s
YXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9
IEZsb2F0U2l6ZSgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MS4u
OGUwNDU2MzM1ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIldB
S0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tl
eWJvYXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3Rm
L1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBAQCBw
dWJsaWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAg
ICAgewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1f
dGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGlt
ZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwog
ICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBA
IC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBX
ZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpX
aGVlbDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3Rp
bWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRG
b3JFdmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZv
ckV2ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV90
eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVw
IDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7
CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fdGV4
dCA9IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVudC5j
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00OTYsNyArNDk2LDcgQEAgcHVibGljOgog
ICAgIFBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXIoUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLCBJ
bnRQb2ludCBsb2NhdGlvbikKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHR5cGU7Ci0gICAgICAg
IG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxs
VGltZTo6bm93KCk7CiAgICAgICAgIAogICAgICAgICBtX2dlc3R1cmVTY2FsZSA9IDE7CiAgICAg
ICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgKaW5kZXggZDIwYTJkOGVlOTAuLmM0
MGVjMjFmMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBp
bnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQg
U3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZl
bnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1l
IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9S
VCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9h
dCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNo
YXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJiMTgyMjRmODM0Li43OTQx
Y2Q2YzRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cGFsL3Nw
aS9tYWMvTlNFdmVudFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAj
aW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjE3LDkgKzYxOCw5IEBAIHN0YXRpYyBDRlRpbWVJbnRl
cnZhbCBjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkKICAgICByZXR1cm4gc3lz
dGVtU3RhcnR1cFRpbWU7CiB9CiAKLWRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2
ZW50KiBldmVudCkKK1dhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2
ZW50KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1l
SW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKTsKKyAgICByZXR1cm4gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRp
bWVJbnRlcnZhbFNpbmNlMTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pKTsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sIGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5Li5h
YTk5ODBjMzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4K
KyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCkBAIC0xNjAsNiArMTYxLDIxIEBA
IGJvb2wgQXJndW1lbnRDb2RlcjxNb25vdG9uaWNUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIE1vbm90b25pY1RpbWUmIHRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxXYWxsVGltZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXYWxs
VGltZSYgdGltZSkKK3sKKyAgICBlbmNvZGVyIDw8IHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS52
YWx1ZSgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZG91YmxlIHZhbHVlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB0
aW1lID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogdm9pZCBBcmd1bWVudENvZGVyPFNlY29uZHM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgU2Vjb25kcyYgc2Vjb25kcykKIHsKICAgICBlbmNvZGVyIDw8IHNlY29uZHMudmFs
dWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggNWI1ZmQzOTc0MTMuLjA4YzM4MzkwYjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDMsNiArNDMsNyBAQAogbmFtZXNwYWNlIFdURiB7
CiBjbGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgU2Vjb25kczsKK2NsYXNzIFdhbGxUaW1lOwog
fQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIsNiArMTYzLDExIEBAIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNb25vdG9uaWNUaW1lPiB7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXVEY6Ok1vbm90b25pY1RpbWUmKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpXYWxsVGltZT4geworICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpXYWxsVGltZSYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV1RGOjpXYWxsVGltZSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlNlY29uZHM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdURjo6U2Vjb25kcyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV1RGOjpTZWNvbmRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKaW5kZXgg
NTA3YmMxNjYyODkuLjVhMDg2Zjk3YjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBA
IC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNv
ZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0
YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBt
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBl
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRp
bWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkLi4yZDQ1OWY2
YTEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFBvaW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMTA0
LDEyICsxMDUsMTIgQEAgcHVibGljOgogCiAgICAgTW9kaWZpZXJzIG1vZGlmaWVycygpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PE1vZGlmaWVycz4obV9tb2RpZmllcnMpOyB9CiAKLSAgICBk
b3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxs
VGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViRXZlbnQoKTsKIAotICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViRXZlbnQoVHlwZSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0
aW1lc3RhbXApOwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYkV2ZW50Jik7CkBAIC0xMTcsNyAr
MTE4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX3R5cGU7IC8vIFR5
cGUKICAgICB1aW50MzJfdCBtX21vZGlmaWVyczsgLy8gTW9kaWZpZXJzCi0gICAgZG91YmxlIG1f
dGltZXN0YW1wOworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogLy8gRklYTUU6IE1v
dmUgdGhpcyBjbGFzcyB0byBpdHMgb3duIGhlYWRlciBmaWxlLgpAQCAtMTM1LDkgKzEzNiw5IEBA
IHB1YmxpYzoKICAgICBXZWJNb3VzZUV2ZW50KCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAg
V2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5v
VGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CisgICAgV2ViTW91
c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXAs
IGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKICNlbHNlCi0gICAgV2Vi
TW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgs
IGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBO
b1RhcCk7CisgICAgV2ViTW91c2VFdmVudChUeXBlLCBCdXR0b24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9u
LCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3Vu
dCwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSA9IDAsIFN5bnRo
ZXRpY0NsaWNrVHlwZSA9IE5vVGFwKTsKICNlbmRpZgogCiAgICAgQnV0dG9uIGJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEJ1dHRvbj4obV9idXR0b24pOyB9CkBAIC0xOTcsMTEg
KzE5OCwxMSBAQCBwdWJsaWM6CiAKICAgICBXZWJXaGVlbEV2ZW50KCkgeyB9CiAKLSAgICBXZWJX
aGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFy
aXR5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlw
ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVt
UGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291
bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRh
LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsK
KyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3Ms
IFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApOwogI2VuZGlmCiAKICAgICBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBw
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb247IH0KQEAgLTI1MCwxMyArMjUxLDEz
IEBAIHB1YmxpYzoKICAgICB+V2ViS2V5Ym9hcmRFdmVudCgpOwogCiAjaWYgVVNFKEFQUEtJVCkK
LSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVk
QnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mLCBi
b29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VsaWYg
UExBVEZPUk0oR1RLKQotICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBj
b21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAg
ICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNL
ZXlwYWQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKElP
UykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxzZQotICAgIFdlYktleWJvYXJkRXZl
bnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0
LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1Jl
cGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wg
aXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAg
ICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CkBAIC0zODIs
NyArMzgzLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50
KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJU
b3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCwgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNo
UG9pbnRzLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgYm9vbCBpc1BvdGVudGlhbFRhcCwg
Ym9vbCBpc0dlc3R1cmUsIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9u
KQogICAgICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICAg
ICAsIG1fdG91Y2hQb2ludHModG91Y2hQb2ludHMpCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3Np
dGlvbikKQEAgLTQ3MSw3ICs0NzIsNyBAQCBwcml2YXRlOgogY2xhc3MgV2ViVG91Y2hFdmVudCA6
IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViVG91Y2hFdmVudCgpIHsgfQotICAg
IFdlYlRvdWNoRXZlbnQoVHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgTW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3Rv
cjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKIAogICAgIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50
cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQb2ludHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCBlYjQ3NzFmZGE1My4uMGNmMjcxOTk2MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCkBAIC0zNyw3ICszNyw3
IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoKQogCiAjaWYgVVNFKEFQUEtJ
VCkKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJv
b2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1w
KQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRU
ZXh0KQpAQCAtNjIsNyArNjIsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlmIFBM
QVRGT1JNKEdUSykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlw
ZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5t
b2RpZmllZFRleHQodGV4dCkKQEAgLTgzLDcgKzgzLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2Vi
S2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JgogCiAjZWxpZiBQTEFURk9STShJT1MpCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJk
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29s
IGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wg
aXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAg
ICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRl
eHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpAQCAtMTA2LDcgKzEw
Niw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2Vsc2UKIAotV2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQg
d2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWND
aGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2
ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1h
Y0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2Vi
RXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAg
ICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
Yk1vdXNlRXZlbnQuY3BwCmluZGV4IDhkYThkM2ZlODMzLi4wZjc3ZmFlM2QwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNr
VHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQor
V2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBm
bG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwg
TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBl
LCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRh
WiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAs
IGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dl
Yk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50
aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTcuLjdhZWEw
ZTczZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcApAQCAtMzIsNyAr
MzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViVG91Y2hFdmVudDo6V2ViVG91Y2hF
dmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYm
IHRvdWNoUG9pbnRzLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2Vi
VG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiYmIHRvdWNoUG9pbnRzLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVz
dGFtcCkKICAgICAsIG1fdG91Y2hQb2ludHMoV1RGTW92ZSh0b3VjaFBvaW50cykpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCmluZGV4IDEzZmU0OGRlOTlkLi40ZTEzZTg5
NjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgeyAgICAK
IAotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBj
b25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAg
LCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNTAsNyArNTAsNyBAQCBXZWJX
aGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludAogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1XZWJXaGVlbEV2
ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNv
bnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wg
ZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3Vu
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEs
IE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
Ym9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAs
IG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC02Nyw3ICs2Nyw3IEBAIFdlYldo
ZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IEludFBvaW50CiAgICAgQVNTRVJUKGlzV2hlZWxFdmVudFR5cGUodHlwZSkpOwog
fQogI2VsaWYgUExBVEZPUk0oR1RLKQotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBl
IHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlj
a3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxh
cml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZl
bnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQog
ICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFs
UG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2Vi
R2VzdHVyZUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdl
c3R1cmVFdmVudE1hYy5tbQppbmRleCAzYjU1Y2U4MDkyZi4uMGM0NWJmZmIxZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5t
bQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdl
c3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3Rm
L0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdl
c3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcg
KnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5T
RXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAg
ICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2Ux
OTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVu
dCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2
ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBl
Um90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDcuLjlkODU1OTRhMzY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KQEAgLTM2MCw3ICszNjAs
NyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChO
U0V2ZW50ICpldmVudCwgTlNFdmVudCAqbGFzdAogICAgIGZsb2F0IGRlbHRhWiA9IFtldmVudCBk
ZWx0YVpdOwogICAgIGludCBjbGlja0NvdW50ID0gY2xpY2tDb3VudEZvckV2ZW50KGV2ZW50KTsK
ICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZl
bnQpOworICAgIGF1dG8gdGltZXN0YW1wID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQp
OwogICAgIGludCBldmVudE51bWJlciA9IFtldmVudCBldmVudE51bWJlcl07CiAgICAgaW50IG1l
bnVUeXBlRm9yRXZlbnQgPSB0eXBlRm9yRXZlbnQoZXZlbnQpOwogCkBAIC00MTgsNyArNDE4LDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoTlNF
dmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KICAgICB9CiAKICAgICBXZWJFdmVudDo6TW9kaWZp
ZXJzIG1vZGlmaWVycyAgICAgICAgICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAg
ZG91YmxlIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBT
aW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICAKICAgICByZXR1cm4g
V2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBvaW50KHBvc2l0aW9uKSwgSW50UG9p
bnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFYLCBkZWx0YVkpLCBGbG9hdFNpemUo
d2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0
YXMsIHNjcm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIG1vZGlmaWVycywg
dGltZXN0YW1wKTsKIH0KQEAgLTQzOCw3ICs0MzgsNyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBo
YQogICAgIGJvb2wgaXNLZXlwYWQgICAgICAgICAgICAgICAgICAgPSBpc0tleXBhZEV2ZW50KGV2
ZW50KTsKICAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAgICAgICAgID0gZmFsc2U7IC8vIFN5
c3RlbUtleSBpcyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4KICAgICBXZWJFdmVudDo6TW9kaWZp
ZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0
aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CisgICAgYXV0byB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKGV2ZW50KTsKIAogICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9yIEVudGVyL1JldHVybiAt
LSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBF
bnRlci4KICAgICBpZiAod2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX1JFVFVSTikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCmluZGV4IGJjNjhiYTUyN2E1
Li5iNmY5YzY4ZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdl
c3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZl
bnQuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdlc3R1
cmVFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViR2VzdHVyZUV2ZW50
KCkgeyB9Ci0gICAgV2ViR2VzdHVyZUV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVy
cyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJHZXN0
dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZmxvYXQgZ2VzdHVyZVNj
YWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAg
ICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
Y3BwCmluZGV4IDVkZjNkZmMzZTZlLi4wN2VkYWJmYjZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBh
aW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91
c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9u
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
KQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBv
aW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwo
cGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNs
aWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0K
IAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11
bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9k
aWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24s
IHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3Vz
ZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRp
bWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQo
cG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24o
dG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9
CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDUuLjg2ZmUzNmIxZmZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYs
NyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1l
KCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZy
YW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2
ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250
ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVu
dDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6
OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VE
b3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQ
b2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxl
Q29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmUuLmVjZDU2N2ZjYzNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtODk3LDcgKzg5Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJFdmVudD4gUGx1Z2luVmll
dzo6Y3JlYXRlV2ViRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKGV2ZW50
Lm1ldGFLZXkoKSkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwogCi0g
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBt
X3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVu
dC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3Vu
dCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgMCwgMCk7Cisg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBt
X3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVu
dC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3Vu
dCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgV2FsbFRpbWUg
eyB9LCAwKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBl
YWJlNjU5OTBkLi5mZjhiYjk4MDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2
aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBv
aW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7
Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxw
dHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1l
bnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBt
b3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0
cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNj
cmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1l
bnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNl
bmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29u
dGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQ
YWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAg
IC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4K
LSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmln
aHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29y
ZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQs
IHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2Uo
KS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRs
ZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50
KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1l
bnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdo
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJD
b3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91
c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBA
IC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQ
b2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmll
dykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmll
ciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRH
bG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5v
VGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlv
biwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwg
MCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAt
NDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJ
UmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24s
IGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUp
Cit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1v
dXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihi
dXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19j
YXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6
OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwg
aW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkK
K3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNl
RXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9u
KSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxX
ZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11
bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkK
K3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3Np
dGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2Vi
TW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24s
IHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwg
MCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOS4uYmIxZjUxMjZkNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAK
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFU
Rk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBG
b3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRv
biwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBk
b3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29y
ZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3Vi
bGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3Jl
OjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsK
KyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwg
aW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNp
bXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lz
U2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RP
TUV2ZW50Lm1tCmluZGV4IDk1Zjg0ZGQyNWE4Li43Njg1NDQ4NDBmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQpAQCAtOTcsNyArOTcsNyBAQAogLSAoRE9NVGltZVN0
YW1wKXRpbWVTdGFtcAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7CisgICAgcmV0dXJuIElNUEwtPnRpbWVT
dGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIC0gKEJPT0wp
ZGVmYXVsdFByZXZlbnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KaW5kZXggMDAxNmMwYTQyYzAuLmYzNGQ2OTU5ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMg
aW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBr
ZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFs
UG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdj
ODhhNmNhLi4xOGUzNWE1YmQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUERGVmlldy5tbQpAQCAtMTAxOCwxNCArMTAxOCwxNCBAQCBzdGF0aWMgQk9PTCBpc0Zy
YW1lSW5SYW5nZShXZWJGcmFtZSAqZnJhbWUsIERPTVJhbmdlICpyYW5nZSkKICAgICBjYXNlIE5T
RXZlbnRUeXBlS2V5RG93bjogewogICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGUgPSBQ
bGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1LZXlib2FyZEV2ZW50KG5zRXZlbnQp
OwogICAgICAgICBwZS5kaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoUGxhdGZvcm1FdmVudDo6UmF3
S2V5RG93bik7Ci0gICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCAwKTsK
KyAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIG51bGxwdHIpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgIGlmIChidXR0b24gIT0gbm9CdXR0b24pIHsKLSAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1l
KCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAwLAorICAgICAgICBldmVudCA9
IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwg
TW9ub3RvbmljVGltZTo6bm93KCksIDAsIFtuc0V2ZW50IGNsaWNrQ291bnRdLCAwLCAwLCAwLCAw
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAwLCAwLAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321390</attachid>
            <date>2017-09-20 17:05:01 -0700</date>
            <delta_ts>2017-09-21 08:57:14 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>85224</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2
Li41MmNiOWM4NzQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtODYsMjkgKzg3LDI3IEBAIHB1YmxpYzoKIAogICAgIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzKCkgY29uc3QgeyByZXR1cm4gbV9tb2RpZmllcnM7IH0KIAotICAgIGRvdWJsZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFdhbGxUaW1lIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBQ
bGF0Zm9ybUV2ZW50KCkKICAgICAgICAgOiBtX3R5cGUoTm9UeXBlKQotICAgICAgICAsIG1fdGlt
ZXN0YW1wKDApCiAgICAgewogICAgIH0KIAogICAgIGV4cGxpY2l0IFBsYXRmb3JtRXZlbnQoVHlw
ZSB0eXBlKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fdGltZXN0YW1wKDAp
CiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8
TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50
KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKICAgICAgICAgLCBtX21vZGlmaWVycyhtb2Rp
ZmllcnMpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKICAgICB9CiAK
LSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0
S2V5LCBib29sIG1ldGFLZXksIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgOiBtX3R5cGUo
dHlwZSkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewpAQCAtMTMwLDcg
KzEyOSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHVuc2lnbmVkIG1fdHlwZTsKICAgICBPcHRpb25T
ZXQ8TW9kaWZpZXI+IG1fbW9kaWZpZXJzOwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBX
YWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5kZXggODdi
YTU3NjA4ZGYuLjk3ZDAzYWY5MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAjaWYgRU5BQkxFKEtFWUJPQVJEX0NPREVfQVRUUklCVVRFKQogICAgICAgICBjb25zdCBT
dHJpbmcmIGNvZGUsCiAjZW5kaWYKLSAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
LCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXApCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAgICAgLCBt
X3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAxMDRmNTM5NzA5Mi4uYTRlN2Q1ODkyNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0K
IAogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUg
c3ludGhldGljQ2xpY2tUeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNr
Q291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSBzeW50aGV0aWNDbGlja1R5cGUpCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9u
KGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRiOC4uMjk1ODgyMTBjODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC03MCw3ICs3MCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQoSW50UG9pbnQgcG9zaXRpb24sIElu
dFBvaW50IGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQg
d2hlZWxUaWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxh
cml0eSBncmFudWxhcml0eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBtZXRhS2V5KQotICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIDApCisgICAgICAgIDog
UGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgeyB9KQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAg
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKICAgICAgICAgLCBtX2RlbHRh
WChkZWx0YVgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQppbmRleCBkMzc5ZTI0NzRkMS4uMGIyYjI4MTgwYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTc5LDE0
ICsxNzksMTQgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAoIW1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
QmVnYW4gfHwgbW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQp
KQogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKLSAgICBDRlRp
bWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpIHsKICAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Ny
b2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2Np
dHlaZXJvaW5nVGltZW91dCkgewogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdp
ZHRoKGV2ZW50Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CiAgICAgICAgICAg
ICBtX21vbWVudHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZs
b2F0KXRpbWVEZWx0YSk7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNj
cm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS52YWx1ZSgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1T
Y3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9s
YXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9
IEZsb2F0U2l6ZSgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MS4u
NDhjODQwMzMyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIldB
S0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tl
eWJvYXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3Rm
L1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBAQCBw
dWJsaWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAg
ICAgewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1f
dGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGlt
ZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwog
ICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBA
IC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBX
ZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpX
aGVlbDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3Rp
bWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRG
b3JFdmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZv
ckV2ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV90
eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVw
IDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7
CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fdGV4
dCA9IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVudC5j
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00NzUsNyArNDc1LDcgQEAgcHVibGljOgog
ICAgIHsKICAgICAgICAgbV90eXBlID0gdG91Y2hFdmVudFR5cGUoZXZlbnQpOwogICAgICAgICBt
X21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3Rh
bXAgPSBldmVudC50aW1lc3RhbXA7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUg
PSBldmVudC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQu
Z2VzdHVyZVJvdGF0aW9uOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9y
bVRvdWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50UG9pbnQgbG9j
YXRpb24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBtX3RpbWVzdGFt
cCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygp
OwogICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAgICBtX2dlc3R1
cmVSb3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwLi5jNDBlYzIxZjEyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQgaW50IHdpbmRvd3NL
ZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlJ
ZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBr
ZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVGb3JL
ZXlFdmVudChOU0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2ZW50VGltZVN0YW1w
U2luY2UxOTcwKE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBldmVudFRpbWVT
dGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRX
aGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRhWSwg
Qk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZlbnQo
TlNFdmVudCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNC4uNzk0MWNkNmM0ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZh
Y3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZl
bnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3Rm
L0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVk
U3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBU
aW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQp
CitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2lu
Y2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxT
aW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2Q0MWM3MTAzOS4uYWE5OTgwYzM0MjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8
d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9u
aWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUp
Cit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30K
KworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
QXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNl
Y29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3
NDEzLi4wOGMzODM5MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTW9u
b3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7CitjbGFzcyBXYWxsVGltZTsKIH0KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMTYyLDYgKzE2MywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdURjo6TW9ub3RvbmljVGltZT4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV1RGOjpNb25vdG9uaWNUaW1lJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6V2FsbFRpbWU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdURjo6V2FsbFRpbWUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6V2FsbFRpbWUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V1RGOjpTZWNvbmRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXVEY6OlNlY29uZHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdU
Rjo6U2Vjb25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDUwN2JjMTY2Mjg5
Li41YTA4NmY5N2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAtMjgsMTcgKzI4
LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
Tm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJzKDApCi0gICAgLCBtX3RpbWVzdGFtcCgwKQogewog
fQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAg
LCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAyMTAxODZkYzBmZC4uMmQ0NTlmNmExMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEy
IEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdl
YkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWlu
dDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsK
KyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xh
c3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2
ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnRO
dW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAg
IFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5
cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAg
cHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhh
c2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6
CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJv
b2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9h
cmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZl
VmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBA
IHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQg
Z2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00
NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2Vi
RXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2
ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBj
b25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9h
cmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTMuLjBjZjI3MTk5NjIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtMzcsNyArMzcsNyBAQCBXZWJLZXli
b2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KCkKIAogI2lmIFVTRShBUFBLSVQpCiAKLVdlYktl
eWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitX
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFk
LCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1f
dGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTYy
LDcgKzYyLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQTEFURk9STShHVEsp
CiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3Ry
aW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0
KHRleHQpCkBAIC04Myw3ICs4Myw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZl
bnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYg
UExBVEZPUk0oSU9TKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkK
K1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwg
bV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTEwNiw3ICsxMDYsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbHNlCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5
Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1
bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1Zp
cnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9k
aWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50
LmNwcAppbmRleCA4ZGE4ZDNmZTgzMy4uMGY3N2ZhZTNkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIFdlYk1vdXNlRXZlbnQ6OldlYk1v
dXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotV2ViTW91c2VFdmVudDo6V2ViTW91
c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRl
bHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhl
dGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKK1dlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkK
ICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1
dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlj
a0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9y
Y2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCitXZWJNb3VzZUV2ZW50
OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICNlbmRpZgogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX2J1dHRvbihidXR0b24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlRvdWNoRXZlbnQuY3BwCmluZGV4IGI5YWFjYmFmNmU3Li43YWVhMGU3M2Q5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZl
bnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50
cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6
OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZC4uNGUxM2U4OTY1MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsgICAgCiAKLVdlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUwLDcgKzUwLDcgQEAgV2ViV2hlZWxFdmVudDo6
V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotV2ViV2hlZWxFdmVudDo6V2ViV2hl
ZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNp
emUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wg
aGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdo
ZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJl
Y2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMs
IHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBv
c2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNjcsNyArNjcsNyBAQCBXZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludAogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsKIH0KICNlbGlmIFBM
QVRGT1JNKEdUSykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSBw
aGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlm
aWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6
ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9z
aXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCA2OGQ2
ZDM4ODU5YS4uYmNlYTMyOWQyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0
ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJF
dmVudEZhY3RvcnkuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBpbnQg
Y3UKICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbHRhWiAqLywKICAgICAgICAgICAg
ICAgICAgICAgICAgICBjdXJyZW50Q2xpY2tDb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2Rr
X2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKIH0KIAogV2Vi
V2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2Rr
RXZlbnQqIGV2ZW50KQpAQCAtMjEwLDcgKzIxMCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViV2hl
CiAgICAgICAgIG1vbWVudHVtUGhhc2UsCiAgICAgICAgIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5
UGl4ZWxXaGVlbEV2ZW50LAogICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAg
ICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJLZXlib2FyZEV2
ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVu
dCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29tcG9zaXRpb25S
ZXN1bHRzLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKQpAQCAtMjI3LDcgKzIyNyw3IEBAIFdl
YktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNv
bnN0IEdka0V2ZW50KiBldmVudCwKICAgICAgICAgV1RGTW92ZShjb21tYW5kcyksCiAgICAgICAg
IGlzR2RrS2V5Q29kZUZyb21LZXlQYWQoZXZlbnQtPmtleS5rZXl2YWwpLAogICAgICAgICBtb2Rp
ZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkp
OworICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2
ZW50KSkpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTI0OSw3ICsyNDksNyBA
QCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQsIFZlY3RvcgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9p
bnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQp
KTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwg
bW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2
ZW50X2dldF90aW1lKGV2ZW50KSkpOwogI2Vsc2UKICAgICByZXR1cm4gV2ViVG91Y2hFdmVudCgp
OwogI2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQppbmRleCAzYjU1Y2U4MDkyZi4u
MGM0NWJmZmIxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVX
ZWJHZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2
ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZl
bnQuaCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQ
b2ludC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3
ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5T
RXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAg
ICAgIHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxN
b2RpZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6
OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9p
bnQocG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5T
RXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVu
dC50eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDcu
LjlkODU1OTRhMzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rv
cnkubW0KQEAgLTM2MCw3ICszNjAsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViTW91c2VFdmVudChOU0V2ZW50ICpldmVudCwgTlNFdmVudCAqbGFzdAogICAgIGZs
b2F0IGRlbHRhWiA9IFtldmVudCBkZWx0YVpdOwogICAgIGludCBjbGlja0NvdW50ID0gY2xpY2tD
b3VudEZvckV2ZW50KGV2ZW50KTsKICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyA9
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wID0gZXZlbnRU
aW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wID0gZXZlbnRUaW1l
U3RhbXBTaW5jZTE5NzAoZXZlbnQpOwogICAgIGludCBldmVudE51bWJlciA9IFtldmVudCBldmVu
dE51bWJlcl07CiAgICAgaW50IG1lbnVUeXBlRm9yRXZlbnQgPSB0eXBlRm9yRXZlbnQoZXZlbnQp
OwogCkBAIC00MTgsNyArNDE4LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqd2luZG8KICAgICB9CiAK
ICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyAgICAgICAgICAgPSBtb2RpZmllcnNG
b3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAg
ICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1w
ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKICAgICAKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIEludFBv
aW50KHBvc2l0aW9uKSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pLCBGbG9hdFNpemUoZGVsdGFY
LCBkZWx0YVkpLCBGbG9hdFNpemUod2hlZWxUaWNrc1gsIHdoZWVsVGlja3NZKSwgZ3JhbnVsYXJp
dHksIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgcGhhc2UsIG1vbWVudHVtUGhhc2UsIGhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHNjcm9sbENvdW50LCB1bmFjY2VsZXJhdGVkU2Nyb2xs
aW5nRGVsdGEsIG1vZGlmaWVycywgdGltZXN0YW1wKTsKIH0KQEAgLTQzOCw3ICs0MzgsNyBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChO
U0V2ZW50ICpldmVudCwgYm9vbCBoYQogICAgIGJvb2wgaXNLZXlwYWQgICAgICAgICAgICAgICAg
ICAgPSBpc0tleXBhZEV2ZW50KGV2ZW50KTsKICAgICBib29sIGlzU3lzdGVtS2V5ICAgICAgICAg
ICAgICAgID0gZmFsc2U7IC8vIFN5c3RlbUtleSBpcyBhbHdheXMgZmFsc2Ugb24gdGhlIE1hYy4K
ICAgICBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycyAgID0gbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVT
dGFtcFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0byB0aW1lc3RhbXAgICAgICAgICAgICAgICAg
ICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKIAogICAgIC8vIEFsd2F5cyB1c2Ug
MTMgZm9yIEVudGVyL1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZm
ZXJlbnQgY2hhcmFjdGVyIGZvciBFbnRlci4KICAgICBpZiAod2luZG93c1ZpcnR1YWxLZXlDb2Rl
ID09IFZLX1JFVFVSTikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dl
Ykdlc3R1cmVFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCmluZGV4IGJjNjhiYTUyN2E1Li5iNmY5YzY4ZGIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIGNsYXNzIFdlYkdlc3R1cmVFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6
CiAgICAgV2ViR2VzdHVyZUV2ZW50KCkgeyB9Ci0gICAgV2ViR2VzdHVyZUV2ZW50KFdlYkV2ZW50
OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIFdlYkNv
cmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVS
b3RhdGlvbikKKyAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3Np
dGlvbiwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAg
IDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICwgbV9wb3Np
dGlvbihwb3NpdGlvbikKICAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJlU2NhbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCmluZGV4IGUwYWM2
ZWY4NWE5Li45NDc0MTMwNjYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EK
ICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlk
ZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9r
ZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAg
ICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsK
IH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0K
IAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
CkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJF
dmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlj
a3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hl
ZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGlu
YXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBl
dmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUuLjA3ZWRhYmZiNmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNDc4LDE3ICs0NzgsMTcgQEAgdm9pZCBXS0J1bmRsZVBh
Z2VGb3JjZVJlcGFpbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgV0tCdW5kbGVQYWdl
U2ltdWxhdGVNb3VzZURvd24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9p
bnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0
b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIHRpbWUpOwor
ICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBv
c2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
dGltZSkpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcChXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgaW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQs
IFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICB0b0ltcGwo
cGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlj
a0NvdW50LCBtb2RpZmllcnMsIHRpbWUpOworICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3Vz
ZVVwKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywg
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VT
aW11bGF0ZU1vdXNlTW90aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1BvaW50IHBvc2l0aW9u
LCBkb3VibGUgdGltZSkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24o
dG9JbnRQb2ludChwb3NpdGlvbiksIHRpbWUpOworICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVN
b3VzZU1vdGlvbih0b0ludFBvaW50KHBvc2l0aW9uKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWUpKTsKIH0KIAogdWludDY0X3QgV0tCdW5kbGVQYWdlR2V0UmVuZGVyVHJlZVNpemUoV0tC
dW5kbGVQYWdlUmVmIHBhZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBhZmNmZmE1MTc0NS4uODZmZTM2YjFmZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQpAQCAtMTU3Niw3ICsxNTc2LDcgQEAgYm9vbCBQREZQbHVnaW46OnNob3dDb250ZXh0TWVudUF0
UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gd2ViRnJhbWUoKS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBJbnRQb2ludCBjb250ZW50
c1BvaW50ID0gZnJhbWVWaWV3LT5jb250ZW50c1RvUm9vdFZpZXcocG9pbnQpOwotICAgIFdlYk1v
dXNlRXZlbnQgZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b24sIGNvbnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKKyAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2
ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50
LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZp
ZXJzPigwKSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOwogICAgIHJl
dHVybiBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBhNjQ4ZjdlYWJmZS4u
ZWNkNTY3ZmNjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50
PiBQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAg
ICBpZiAoZXZlbnQubWV0YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1l
dGFLZXk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBl
LCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZz
ZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAw
LCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMp
LCAwLCAwKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBl
LCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZz
ZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAw
LCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMp
LCBXYWxsVGltZSB7IH0sIDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2
ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggMGVhYmU2NTk5MGQuLmZmOGJiOTgwNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBX
ZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcm
IHVybCwgSW50UG9pbnQgZG8KICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgaW50IHNpbmds
ZUNsaWNrID0gMTsKLSAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRp
bWUoKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQu
eSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCisgICAgUmVmUHRyPE1v
dXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNs
aWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5n
bGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQu
eCgpLCBkb2N1bWVudFBvaW50LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAg
ICAwLCAwLAogI2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1LDExIEBAIFdlYkNvbnRleHRNZW51KiBX
ZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQp
CiAgICAgY29yZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVu
dSgpOwogCiAgICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29y
cmVjdCBtZW51LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQs
IHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUHJlc3NF
dmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNv
cmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNvcmVQYWdlKCktPnVzZXJJ
bnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZVByZXNzRXZlbnQpOwogICAg
IGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRl
eHRNZW51RXZlbnQobW91c2VQcmVzc0V2ZW50LCBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKSk7CiAg
ICAgYXV0byogbWVudSA9IGhhbmRsZWQgPyBjb250ZXh0TWVudSgpIDogbnVsbHB0cjsKLSAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1
dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVhc2VFdmVudChwb2ludCwg
cG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2Uo
KS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtb3VzZVJlbGVhc2VFdmVudCk7CiAKICAgICByZXR1
cm4gbWVudTsKQEAgLTM2NzQsNyArMzY3NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhZ0VuZGVkKFdl
YkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iCiAg
ICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBm
YWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0
ZWFkLgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9u
LCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwg
V2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENs
aWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5l
dmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3Bl
cmF0aW9uKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRW5kRHJhZ2dp
bmcoKSk7CkBAIC00NjcwLDE3ICs0NjcwLDE3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJu
YXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwg
V2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNl
RXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VEb3duLCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50
OjpCdXR0b24+KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgY2xpY2tDb3Vu
dCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCB0aW1l
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6Ok5vVGFwKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZl
bnQoV2ViTW91c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0
dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0
YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2Vi
Q29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OnNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGRv
dWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uLCBXYWxsVGltZSB0aW1lKQogewogICAgIG1vdXNlRXZlbnQoV2ViTW91
c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9u
LCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVy
cygpLCB0aW1lLCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQzMTU0YTYxNGI5Li5iYjFmNTEyNmQ2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjYs
NiArNjYsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpICYmIFBMQVRGT1JNKEdUSykKQEAgLTgwNiw5ICs4MDcsOSBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2UuCi0gICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93
bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRN
b2RpZmllcnMsIGRvdWJsZSB0aW1lKTsKLSAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0
dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMs
IGRvdWJsZSB0aW1lKTsKLSAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50
UG9pbnQsIGRvdWJsZSB0aW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0
b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywg
V2FsbFRpbWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6
OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgV2FsbFRpbWUpOwor
ICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgV2FsbFRpbWUp
OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBjb250ZXh0TWVudVNob3dp
bmcoKSB7IG1faXNTaG93aW5nQ29udGV4dE1lbnUgPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9ET00vRE9NRXZlbnQubW0KaW5kZXggOTVmODRkZDI1YTguLjc2ODU0NDg0MGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAt
IChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4g
SU1QTC0+dGltZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0K
IAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMC4uZjM0ZDY5NTlkNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTY0LDcgKzk2NCw3
IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtl
IG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFk
LgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChJbnRQb2ludCh3aW5kb3dMb2MpLCBJbnRQ
b2ludChnbG9iYWxQb2ludCh3aW5kb3dMb2MsIFt2aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRv
d10pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRU
aW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBfcHJpdmF0ZS0+Y29yZUZyYW1l
LT5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24p
b3BlcmF0aW9uKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBE
RlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0K
aW5kZXggZWM1N2M4OGE2Y2EuLjE4ZTM1YTViZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC0xMDE4LDE0ICsxMDE4LDE0IEBAIHN0YXRp
YyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQog
ICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZl
bnQobnNFdmVudCk7CiAgICAgICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9y
bUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVh
dGUocGUsIDApOworICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgbnVs
bHB0cik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRvbikgewotICAgICAgICBldmVudCA9
IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwg
Y3VycmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCisgICAg
ICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0
cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0s
IDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAs
CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321430</attachid>
            <date>2017-09-21 08:57:14 -0700</date>
            <delta_ts>2017-09-21 09:21:40 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>87468</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNl
YzAzNGRmZWMuLjQyMTA2YTY4ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgeyAwX3MgfTsKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNWNi
NDc4NDcxZDYuLjUyY2I5Yzg3NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04NiwyOSArODcsMjcgQEAgcHVibGljOgogCiAgICAgT3B0aW9uU2V0PE1vZGlm
aWVyPiBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyczsgfQogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRp
bWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVk
OgogICAgIFBsYXRmb3JtRXZlbnQoKQogICAgICAgICA6IG1fdHlwZShOb1R5cGUpCi0gICAgICAg
ICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1F
dmVudChUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV90aW1l
c3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9w
dGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZp
ZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewog
ICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCisg
ICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAgICA6
IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CkBA
IC0xMzAsNyArMTI5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdW5zaWduZWQgbV90eXBlOwogICAg
IE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1w
OworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApp
bmRleCA4N2JhNTc2MDhkZi4uOTdkMDNhZjkyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAg
IGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAg
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyLi5hNGU3ZDU4
OTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgK
QEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICAg
ICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGlj
Q2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAg
ICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IDZkNDU4YmVmNGI4Li4yOTU4ODIxMGM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3Np
dGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZ
LCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9y
bUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgMCkKKyAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCB7IH0pCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bikKICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAs
IG1fZGVsdGFYKGRlbHRhWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGQzNzllMjQ3NGQxLi4wYjJiMjgxODBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBA
IC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Q2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAot
ICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVs
dGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAt
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3Jv
bGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2Np
dHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAg
ICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0
YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAg
ICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZl
bG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKaW5kZXggYzJhYTlkYzAxZjcuLmQ1
NzgwZjNlODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
QW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxB
bmltYXRvckd0ay5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yR3Rr
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAg
bV9raW5ldGljQW5pbWF0aW9uLT5zdG9wKCk7CiAKICAgICBtX3Njcm9sbEhpc3RvcnkucmVtb3Zl
QWxsTWF0Y2hpbmcoWyZldmVudF0gKFBsYXRmb3JtV2hlZWxFdmVudCYgb3RoZXJFdmVudCkgLT4g
Ym9vbCB7Ci0gICAgICAgIHJldHVybiBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGV2ZW50LnRp
bWVzdGFtcCgpIC0gb3RoZXJFdmVudC50aW1lc3RhbXAoKSkgPiBzY3JvbGxDYXB0dXJlVGhyZXNo
b2xkOworICAgICAgICByZXR1cm4gKGV2ZW50LnRpbWVzdGFtcCgpIC0gb3RoZXJFdmVudC50aW1l
c3RhbXAoKSkgPiBzY3JvbGxDYXB0dXJlVGhyZXNob2xkOwogICAgIH0pOwogCiAgICAgaWYgKGV2
ZW50LmlzRW5kT2ZOb25Nb21lbnR1bVNjcm9sbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDYyZjk4
MjM3NzEuLjQ4Yzg0MDMzMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1w
b3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldp
bmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBv
cnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1
LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2
ZW50KQogICAgIHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAg
ICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0g
V2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2
ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZl
bnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5
cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1F
dmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAg
ICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9
IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFs
UG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAg
ICAgIG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50
OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50
VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAg
ICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0g
ZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAg
ICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1f
dGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVy
ZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxlOwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9
IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAg
UGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBv
aW50IGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90
aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1l
Ojpub3coKTsKICAgICAgICAgCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAg
bV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAppbmRleCBkMjBhMmQ4ZWU5MC4uYzQwZWMy
MWYxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIFdFQkNPUkVfRVhQT1JUIGludCB3
aW5kb3dzS2V5Q29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcga2V5Rm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBj
b2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKLVdFQkNPUkVfRVhQT1JUIGRvdWJsZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgZXZl
bnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZ2V0V2hlZWxFdmVudERlbHRhcyhOU0V2ZW50ICosIGZsb2F0JiBkZWx0YVgsIGZsb2F0JiBk
ZWx0YVksIEJPT0wmIGNvbnRpbnVvdXMpOwogV0VCQ09SRV9FWFBPUlQgVUludDgga2V5Q2hhckZv
ckV2ZW50KE5TRXZlbnQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMmIxODIyNGY4MzQuLjc5NDFjZDZj
NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21h
Yy9OU0V2ZW50U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBv
cnQgPHd0Zi9BU0NJSUNUeXBlLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02MTcsOSArNjE4LDkgQEAgc3RhdGljIENGVGltZUludGVydmFs
IGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKQogICAgIHJldHVybiBzeXN0ZW1T
dGFydHVwVGltZTsKIH0KIAotZG91YmxlIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQq
IGV2ZW50KQorV2FsbFRpbWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQp
CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRl
cnZhbFNpbmNlMTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pOworICAgIHJldHVybiBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUlu
dGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSkpOwogfQogCiBzdGF0aWMgaW5s
aW5lIGJvb2wgaXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTdkNDFjNzEwMzkuLmFhOTk4
MGMzNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5j
bHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTE2MCw2ICsxNjEsMjEgQEAgYm9v
bCBBcmd1bWVudENvZGVyPE1vbm90b25pY1RpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
TW9ub3RvbmljVGltZSYgdGltZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVu
dENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1l
JiB0aW1lKQoreworICAgIGVuY29kZXIgPDwgdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVl
KCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBXYWxsVGltZSYgdGltZSkKK3sKKyAgICBkb3VibGUgdmFsdWU7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHRpbWUg
PSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgIHJldHVybiB0cnVlOworfQor
CiB2b2lkIEFyZ3VtZW50Q29kZXI8U2Vjb25kcz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBTZWNvbmRzJiBzZWNvbmRzKQogewogICAgIGVuY29kZXIgPDwgc2Vjb25kcy52YWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA1
YjVmZDM5NzQxMy4uMDhjMzgzOTBiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNs
YXNzIE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXVEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdi
YzE2NjI4OS4uNWEwODZmOTdiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTI4
LDE3ICsyOCwxNyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIu
aCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYkV2ZW50OjpXZWJFdmVudCgpCiAgICAgOiBtX3R5cGUoc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KE5vVHlwZSkpCiAgICAgLCBtX21vZGlmaWVycygwKQotICAgICwgbV90aW1lc3RhbXAo
MCkKIHsKIH0KIAotV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IG1fdHlwZSh0eXBl
KQogICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICwgbV90aW1lc3RhbXAodGltZXN0
YW1wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKaW5kZXggMjEwMTg2ZGMwZmQuLjJkNDU5ZjZhMTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0Zsb2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0xMDQsMTIg
KzEwNSwxMiBAQCBwdWJsaWM6CiAKICAgICBNb2RpZmllcnMgbW9kaWZpZXJzKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TW9kaWZpZXJzPihtX21vZGlmaWVycyk7IH0KIAotICAgIGRvdWJs
ZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFdhbGxUaW1l
IHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoK
ICAgICBXZWJFdmVudCgpOwogCi0gICAgV2ViRXZlbnQoVHlwZSwgTW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKTsKKyAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViRXZlbnQmKTsKQEAgLTExNyw3ICsxMTgs
NyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fdHlwZTsgLy8gVHlwZQog
ICAgIHVpbnQzMl90IG1fbW9kaWZpZXJzOyAvLyBNb2RpZmllcnMKLSAgICBkb3VibGUgbV90aW1l
c3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCiAvLyBGSVhNRTogTW92ZSB0
aGlzIGNsYXNzIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCkBAIC0xMzUsOSArMTM2LDkgQEAgcHVi
bGljOgogICAgIFdlYk1vdXNlRXZlbnQoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJN
b3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXAs
IGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyAgICBXZWJNb3VzZUV2
ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQg
ZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50
IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwogI2Vsc2UKLSAgICBXZWJNb3Vz
ZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxv
YXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSA9IDAsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFw
KTsKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZs
b2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGlj
Q2xpY2tUeXBlID0gTm9UYXApOwogI2VuZGlmCiAKICAgICBCdXR0b24gYnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KQEAgLTE5NywxMSArMTk4
LDExIEBAIHB1YmxpYzoKIAogICAgIFdlYldoZWVsRXZlbnQoKSB7IH0KIAotICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHks
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVsRXZl
bnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIGJv
b2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIFdlYldoZWVsRXZlbnQo
VHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNlIG1vbWVu
dHVtUGhhc2UsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAg
IFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhh
c2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQpAQCAtMjUwLDEzICsyNTEsMTMgQEAg
cHVibGljOgogICAgIH5XZWJLZXlib2FyZEV2ZW50KCk7CiAKICNpZiBVU0UoQVBQS0lUKQotICAg
IFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYsIGJvb2wg
aXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMs
IGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFU
Rk9STShHVEspCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1h
bmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdl
YktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBh
ZCwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VsaWYgUExBVEZPUk0oSU9TKQot
ICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2Rl
LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1Jl
cGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1Zp
cnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbHNlCi0gICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50
IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0
LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlmCiAKICAgICBj
b25zdCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KQEAgLTM4Miw3ICsz
ODMsNyBAQCBwcml2YXRlOgogY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7
CiBwdWJsaWM6CiAgICAgV2ViVG91Y2hFdmVudCgpIHsgfQotICAgIFdlYlRvdWNoRXZlbnQoV2Vi
RXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwg
Y29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzLCBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbiwgYm9vbCBpc1BvdGVudGlhbFRhcCwgYm9vbCBpc0dlc3R1cmUs
IGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYlRvdWNo
RXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2lu
dHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29s
IGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCiAg
ICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICwg
bV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9u
KQpAQCAtNDcxLDcgKzQ3Miw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2Vi
VG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYlRvdWNoRXZlbnQoVHlwZSwgVmVjdG9yPFdl
YlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwog
CiAgICAgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV90b3VjaFBvaW50czsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGViNDc3MWZkYTUzLi4wY2YyNzE5OTYyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAg
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQog
Ci1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0
YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAg
ICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQp
CkBAIC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZP
Uk0oR1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2Rl
LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVj
dG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQo
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlm
aWVkVGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXli
b2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAK
ICNlbGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVk
VGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5n
JiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmly
dHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNL
ZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkK
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcg
QEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpX
ZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6
OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVu
dCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwg
bV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91
c2VFdmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzMuLjBmNzdmYWUzZDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtNDcsOSArNDcsOSBAQCBXZWJNb3VzZUV2ZW50
OjpXZWJNb3VzZUV2ZW50KCkKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLVdlYk1vdXNlRXZlbnQ6
OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBm
bG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBl
IHN5bnRoZXRpY0NsaWNrVHlwZSwgaW50IGV2ZW50TnVtYmVyLCBpbnQgbWVudVR5cGUpCitXZWJN
b3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0
IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhl
dGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSwgaW50IGV2ZW50TnVtYmVyLCBpbnQgbWVu
dVR5cGUpCiAjZWxzZQotV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1
dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBp
bnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91
YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQorV2ViTW91
c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBk
ZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRp
Y0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCiAjZW5kaWYKICAgICA6IFdlYkV2ZW50KHR5
cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9idXR0b24oYnV0dG9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCBiOWFhY2JhZjZlNy4uN2FlYTBlNzNk
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50
KFdlYkV2ZW50OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYgdG91
Y2hQb2ludHMsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJUb3Vj
aEV2ZW50OjpXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ+JiYgdG91Y2hQb2ludHMsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1w
KQogICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5kZXggMTNmZTQ4ZGU5OWQuLjRlMTNlODk2NTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1X
ZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1v
ZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1f
Z2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6
OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9n
bG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAj
ZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlw
ZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywg
UGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6
V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBG
bG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBH
cmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5k
ZXggNjhkNmQzODg1OWEuLmJjZWEzMjlkMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9n
dGsvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIFdlYk1vdXNlRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVu
dCwgaW50IGN1CiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBkZWx0YVogKi8sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3VycmVudENsaWNrQ291bnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9
CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNv
bnN0IEdka0V2ZW50KiBldmVudCkKQEAgLTIxMCw3ICsyMTAsNyBAQCBXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IFdlYldoZQogICAgICAgICBtb21lbnR1bVBoYXNlLAogICAgICAgICBXZWJXaGVlbEV2ZW50OjpT
Y3JvbGxCeVBpeGVsV2hlZWxFdmVudCwKICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
LAotICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKIH0KIAogV2ViS2V5
Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50LCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBv
c2l0aW9uUmVzdWx0cywgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcykKQEAgLTIyNyw3ICsyMjcs
NyBAQCBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRF
dmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsCiAgICAgICAgIFdURk1vdmUoY29tbWFuZHMpLAog
ICAgICAgICBpc0dka0tleUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXkua2V5dmFsKSwKICAgICAg
ICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUo
ZXZlbnQpKTsKKyAgICAgICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRf
dGltZShldmVudCkpKTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNDksNyAr
MjQ5LDcgQEAgV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZl
bnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBWZWN0b3IKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0
b3VjaFBvaW50cyksIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgZ2RrX2V2ZW50X2dldF90aW1l
KGV2ZW50KSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBv
aW50cyksIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYlRvdWNo
RXZlbnQoKTsKICNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KaW5kZXggM2I1NWNl
ODA5MmYuLjBjNDViZmZiMWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQg
IldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNv
cmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNjMsNyArNjMsNyBAQCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVF
dmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp2aWV3KQogICAgIDogV2ViR2VzdHVyZUV2ZW50
KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JOU0V2ZW50KGV2ZW50KSwKICAgICAgICAgc3RhdGlj
X2Nhc3Q8TW9kaWZpZXJzPigwKSwKLSAgICAgICAgZXZlbnQudGltZXN0YW1wLAorICAgICAgICBX
ZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCksCiAgICAgICAgIFdlYkNvcmU6
OkludFBvaW50KHBvaW50Rm9yRXZlbnQoZXZlbnQsIHZpZXcpKSwKICAgICAgICAgZXZlbnQudHlw
ZSA9PSBOU0V2ZW50VHlwZU1hZ25pZnkgPyBldmVudC5tYWduaWZpY2F0aW9uIDogMCwKICAgICAg
ICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJvdGF0ZSA/IGV2ZW50LnJvdGF0aW9uIDogMCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDBkYjNi
ZThjNjQ3Li45ZDg1NTk0YTM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZl
bnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QK
ICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9
IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2Rp
ZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9
IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZl
bnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50
KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAg
ICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9k
aWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAg
ICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRp
bWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVs
LCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXpl
KGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdy
YW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBo
YXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRl
ZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4
LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAg
ICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAg
ICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRo
ZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0Zv
ckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZl
bnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAg
ICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdh
eXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0
J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0
dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNS4uYjZmOWM2OGRiMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHZXN0dXJlRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewog
cHVibGljOgogICAgIFdlYkdlc3R1cmVFdmVudCgpIHsgfQotICAgIFdlYkdlc3R1cmVFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
LCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBn
ZXN0dXJlUm90YXRpb24pCisgICAgV2ViR2VzdHVyZUV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUs
IE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQog
ICAgICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICAgICAs
IG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICwgbV9nZXN0dXJlU2NhbGUoZ2VzdHVyZVNj
YWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRl
eCBlMGFjNmVmODVhOS4uOTQ3NDEzMDY2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dw
ZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC04MSw3ICs4MSw3IEBAIFdlYktleWJvYXJkRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRf
a2V5Ym9hCiAgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVyU3Ry
aW5nLCBpZGVudGlmaWVyU3RyaW5nLAogICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlfY29k
ZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZl
bnQpLAogICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKLSAg
ICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7CisgICAgICAgIG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50
aW1lKSk7CiB9CiAKIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKQpAQCAtMTE5LDcgKzExOSw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsKICAg
ICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIHJldHVybiBXZWJN
b3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLAotICAgICAgICAwLCAw
LCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZl
bnQtPnRpbWUpOworICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJF
dmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1l
KSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKQpAQCAtMTU0LDcgKzE1NCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCoKICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYldoZWVsRXZl
bnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIGRlbHRhLCB3
aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgZGVs
dGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIHN0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50SWQs
IGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKQEAgLTIwOSw3
ICsyMDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KgogICAgICAgICAgICAgICAgIHBvaW50
Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMpKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2Vi
VG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgV2ViRXZlbnQ6Ok1vZGlmaWVy
cygwKSwgZXZlbnQtPnRpbWUpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1v
dmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDVkZjNkZmMzZTZlLi4wN2VkYWJmYjZmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tC
dW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVu
ZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9u
LCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURv
d24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQ
b2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlj
a0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAg
dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9u
KSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVs
YXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2Rp
ZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5k
bGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBw
b3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNl
TW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNp
bXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVT
aXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDUuLjg2ZmUzNmIx
ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4
dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQg
Y29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAg
ICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6
OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVu
dChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVu
dHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6
Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsK
ICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3
ZWFiZmUuLmVjZDU2N2ZjYzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODk3LDcgKzg5Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJFdmVudD4gUGx1Z2luVmlldzo6Y3JlYXRlV2ViRXZlbnQoTW91c2VFdmVudCYgZXZlbnQpIGNv
bnN0CiAgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkKICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2
ZW50OjpNZXRhS2V5OwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVu
dD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZl
bnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwg
MCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9k
aWZpZXJzKSwgMCwgMCk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVu
dD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29udmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZl
bnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkpKSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwg
MCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9k
aWZpZXJzKSwgV2FsbFRpbWUgeyB9LCAwKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVF
dmVudChFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDBlYWJlNjU5OTBkLi5mZjhiYjk4MDQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBA
IHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3Qg
U3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGlu
dCBzaW5nbGVDbGljayA9IDE7Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBN
b3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1
cnJlbnRUaW1lKCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVl
blBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJl
ZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0
ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVu
dFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0
TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQm
IHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29u
dGV4dE1lbnUoKTsKIAogICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUg
dGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50
KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZv
cmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3Vz
ZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgp
LT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50
KTsKICAgICBib29sIGhhbmRsZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5k
bGVDb250ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCkpOwogICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7
Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwg
UmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQo
cG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0
QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAg
ICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdF
bmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQg
Z2xvYgogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVz
ZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9u
ZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRq
dXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0
aW9uKW9wZXJhdGlvbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVu
ZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRs
ZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlm
CiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBi
dXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChX
ZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91
c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJz
KSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJ
bnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0
b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJN
b3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZl
bnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRp
bWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAot
dm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50
KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpO
b0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpN
b2RpZmllcnMoKSwgdGltZSwgMCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOS4uYmIx
ZjUxMjZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NF
U1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVN
b3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBX
S0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAo
aW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9k
aWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNv
cmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihp
bnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2Rp
ZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBX
ZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxU
aW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdh
bGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1l
bnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRl
ci5tbQppbmRleCA0OGFlOWY3OWNiOS4uYzkxNWZlNGQ4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCkBA
IC00OCw3ICs0OCw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNWaWV3RXh0cmFzLmg+
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViUERGRG9jdW1lbnRFeHRyYXMuaD4KICNpbXBvcnQg
PFdlYktpdExlZ2FjeS9XZWJWaWV3UHJpdmF0ZS5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1l
Lmg+CisjaW1wb3J0IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5r
aW5nLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQ3OSw3ICs0NzksNyBAQCBzdGF0
aWMgY29uc3QgZmxvYXQgUEFHRV9IRUlHSFRfSU5TRVQgPSA0LjBmICogMi4wZjsKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gQ29uc3RydWN0IGFuIGV2ZW50IHRvIHNpbXVsYXRlIGEgY2xpY2su
Ci0gICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgMSwgMCwgMCwgMCwg
MCwKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwgMSwg
MCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KaW5kZXggOTVmODRkZDI1
YTguLjc2ODU0NDg0MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1t
CkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1l
U3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMC4u
ZjM0ZDY5NTlkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQpAQCAtOTY0LDcgKzk2NCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0
YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICByZXR1cm47CiAgICAgLy8g
RklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxk
IGJlIHJlYWwgb25lcyBpbnN0ZWFkLgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChJbnRQ
b2ludCh3aW5kb3dMb2MpLCBJbnRQb2ludChnbG9iYWxQb2ludCh3aW5kb3dMb2MsIFt2aWV3LT5w
bGF0Zm9ybVdpZGdldCgpIHdpbmRvd10pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29y
ZTo6Tm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2Fs
bFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAg
ICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChl
dmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggZWM1N2M4OGE2Y2EuLjE4ZTM1YTViZDA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBAIC0xMDE4
LDE0ICsxMDE4LDE0IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1lICpmcmFt
ZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7CiAgICAg
ICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVh
dGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CiAgICAgICAgIHBlLmRpc2FtYmlndWF0
ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAgZXZlbnQg
PSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBldmVudCA9IEtleWJvYXJk
RXZlbnQ6OmNyZWF0ZShwZSwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBk
ZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBub0J1dHRv
bikgewotICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xpY2tDb3Vu
dF0sIDAsIDAsIDAsIDAsCisgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgMCwg
W25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321432</attachid>
            <date>2017-09-21 09:21:40 -0700</date>
            <delta_ts>2017-09-21 09:25:27 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>93402</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNl
YzAzNGRmZWMuLjQyMTA2YTY4ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgeyAwX3MgfTsKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNWNi
NDc4NDcxZDYuLjUyY2I5Yzg3NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04NiwyOSArODcsMjcgQEAgcHVibGljOgogCiAgICAgT3B0aW9uU2V0PE1vZGlm
aWVyPiBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyczsgfQogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRp
bWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVk
OgogICAgIFBsYXRmb3JtRXZlbnQoKQogICAgICAgICA6IG1fdHlwZShOb1R5cGUpCi0gICAgICAg
ICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1F
dmVudChUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV90aW1l
c3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9w
dGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZp
ZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewog
ICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCisg
ICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAgICA6
IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CkBA
IC0xMzAsNyArMTI5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdW5zaWduZWQgbV90eXBlOwogICAg
IE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1w
OworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApp
bmRleCA4N2JhNTc2MDhkZi4uOTdkMDNhZjkyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAg
IGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAg
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyLi5hNGU3ZDU4
OTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgK
QEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICAg
ICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGlj
Q2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAg
ICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IDZkNDU4YmVmNGI4Li4yOTU4ODIxMGM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3Np
dGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZ
LCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9y
bUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgMCkKKyAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCB7IH0pCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bikKICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAs
IG1fZGVsdGFYKGRlbHRhWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGQzNzllMjQ3NGQxLi4wYjJiMjgxODBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBA
IC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Q2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAot
ICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVs
dGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAt
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3Jv
bGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2Np
dHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAg
ICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0
YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAg
ICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZl
bG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKaW5kZXggYzJhYTlkYzAxZjcuLmU3
NjA3YTI1MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
QW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxB
bmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1h
dG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxI
aXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5
LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5
WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4o
KS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yR3RrOjpoYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgbV9raW5ldGlj
QW5pbWF0aW9uLT5zdG9wKCk7CiAKICAgICBtX3Njcm9sbEhpc3RvcnkucmVtb3ZlQWxsTWF0Y2hp
bmcoWyZldmVudF0gKFBsYXRmb3JtV2hlZWxFdmVudCYgb3RoZXJFdmVudCkgLT4gYm9vbCB7Ci0g
ICAgICAgIHJldHVybiBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCgp
IC0gb3RoZXJFdmVudC50aW1lc3RhbXAoKSkgPiBzY3JvbGxDYXB0dXJlVGhyZXNob2xkOworICAg
ICAgICByZXR1cm4gKGV2ZW50LnRpbWVzdGFtcCgpIC0gb3RoZXJFdmVudC50aW1lc3RhbXAoKSkg
PiBzY3JvbGxDYXB0dXJlVGhyZXNob2xkOwogICAgIH0pOwogCiAgICAgaWYgKGV2ZW50LmlzRW5k
T2ZOb25Nb21lbnR1bVNjcm9sbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDYyZjk4MjM3NzEuLjQ4
Yzg0MDMzMmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZv
cm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtB
cHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXli
b2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9X
YWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAg
IHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3Rp
bWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6
Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAg
ICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAt
MTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2Vi
RXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hl
ZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1l
c3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9y
RXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JF
dmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlw
ZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6
IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVy
c0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwor
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQg
PSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9t
b2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1w
ID0gZXZlbnQudGltZXN0YW1wOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0g
ZXZlbnQuZ2VzdHVyZVNjYWxlOwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2ZW50Lmdl
c3R1cmVSb3RhdGlvbjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1U
b3VjaEV2ZW50QnVpbGRlcihQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50IGxvY2F0
aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1lc3RhbXAg
PSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsK
ICAgICAgICAgCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9nZXN0dXJl
Um90YXRpb24gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMuaAppbmRleCBkMjBhMmQ4ZWU5MC4uYzQwZWMyMWYxMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIFdFQkNPUkVfRVhQT1JUIGludCB3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5SWRl
bnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5
Rm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb2RlRm9yS2V5
RXZlbnQoTlNFdmVudCAqKTsKLVdFQkNPUkVfRVhQT1JUIGRvdWJsZSBldmVudFRpbWVTdGFtcFNp
bmNlMTk3MChOU0V2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0V2hl
ZWxFdmVudERlbHRhcyhOU0V2ZW50ICosIGZsb2F0JiBkZWx0YVgsIGZsb2F0JiBkZWx0YVksIEJP
T0wmIGNvbnRpbnVvdXMpOwogV0VCQ09SRV9FWFBPUlQgVUludDgga2V5Q2hhckZvckV2ZW50KE5T
RXZlbnQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMmIxODIyNGY4MzQuLjc5NDFjZDZjNGRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9B
U0NJSUNUeXBlLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02MTcsOSArNjE4LDkgQEAgc3RhdGljIENGVGltZUludGVydmFsIGNhY2hlZFN0
YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKQogICAgIHJldHVybiBzeXN0ZW1TdGFydHVwVGlt
ZTsKIH0KIAotZG91YmxlIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQor
V2FsbFRpbWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCiB7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNl
MTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2lu
Y2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNLZXlVcEV2ZW50KE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTdkNDFjNzEwMzkuLmFhOTk4MGMzNDI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAg
LTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTE2MCw2ICsxNjEsMjEgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPE1vbm90b25pY1RpbWU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTW9ub3Rvbmlj
VGltZSYgdGltZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFdh
bGxUaW1lPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQor
eworICAgIGVuY29kZXIgPDwgdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7Cit9CisK
K2Jvb2wgQXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBX
YWxsVGltZSYgdGltZSkKK3sKKyAgICBkb3VibGUgdmFsdWU7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh2YWx1ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHRpbWUgPSBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFy
Z3VtZW50Q29kZXI8U2Vjb25kcz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZWNv
bmRzJiBzZWNvbmRzKQogewogICAgIGVuY29kZXIgPDwgc2Vjb25kcy52YWx1ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA1YjVmZDM5NzQx
My4uMDhjMzgzOTBiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90
b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6
OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4OS4u
NWEwODZmOTdiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTI4LDE3ICsyOCwx
NyBAQAogCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKKyNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdl
YkV2ZW50OjpXZWJFdmVudCgpCiAgICAgOiBtX3R5cGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE5v
VHlwZSkpCiAgICAgLCBtX21vZGlmaWVycygwKQotICAgICwgbV90aW1lc3RhbXAoMCkKIHsKIH0K
IAotV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCkKK1dlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IG1fdHlwZSh0eXBlKQogICAgICwg
bV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkV2ZW50LmgKaW5kZXggMjEwMTg2ZGMwZmQuLjJkNDU5ZjZhMTA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkV2ZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFNpemUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0xMDQsMTIgKzEwNSwxMiBA
QCBwdWJsaWM6CiAKICAgICBNb2RpZmllcnMgbW9kaWZpZXJzKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8TW9kaWZpZXJzPihtX21vZGlmaWVycyk7IH0KIAotICAgIGRvdWJsZSB0aW1lc3Rh
bXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQorICAgIFdhbGxUaW1lIHRpbWVzdGFt
cCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBXZWJF
dmVudCgpOwogCi0gICAgV2ViRXZlbnQoVHlwZSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KTsKKyAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAK
ICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2ViRXZlbnQmKTsKQEAgLTExNyw3ICsxMTgsNyBAQCBwcm90
ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVpbnQzMl90IG1fdHlwZTsgLy8gVHlwZQogICAgIHVpbnQz
Ml90IG1fbW9kaWZpZXJzOyAvLyBNb2RpZmllcnMKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7Cisg
ICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCiAvLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNz
IHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCkBAIC0xMzUsOSArMTM2LDkgQEAgcHVibGljOgogICAg
IFdlYk1vdXNlRXZlbnQoKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50
KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVs
dGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVu
dE51bWJlciA9IC0xLCBpbnQgbWVudVR5cGUgPSAwKTsKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUs
IEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBm
bG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVt
YmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwogI2Vsc2UKLSAgICBXZWJNb3VzZUV2ZW50KFR5
cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZ
LCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXAsIGRvdWJsZSBmb3JjZSA9IDAsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwKTsKKyAgICBX
ZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBl
ID0gTm9UYXApOwogI2VuZGlmCiAKICAgICBCdXR0b24gYnV0dG9uKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8QnV0dG9uPihtX2J1dHRvbik7IH0KQEAgLTE5NywxMSArMTk4LDExIEBAIHB1
YmxpYzoKIAogICAgIFdlYldoZWVsRXZlbnQoKSB7IH0KIAotICAgIFdlYldoZWVsRXZlbnQoVHlw
ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0
aW1lc3RhbXApOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0
aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBo
YXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3Jv
bGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApOwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
Z2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2Us
IEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVs
RXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNl
IG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbjsgfQpAQCAtMjUwLDEzICsyNTEsMTMgQEAgcHVibGljOgog
ICAgIH5XZWJLZXlib2FyZEV2ZW50KCk7CiAKICNpZiBVU0UoQVBQS0lUKQotICAgIFdlYktleWJv
YXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0
aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEsp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29s
IGlzS2V5cGFkLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJk
RXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIFdlYktl
eWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBT
dHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRp
dmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9v
bCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KTsKKyAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
Y29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlD
b2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wKTsKICNlbHNlCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlz
S2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOwor
ICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJp
bmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlmCiAKICAgICBjb25zdCBTdHJp
bmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KQEAgLTM4Miw3ICszODMsNyBAQCBw
cml2YXRlOgogY2xhc3MgV2ViVG91Y2hFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6
CiAgICAgV2ViVG91Y2hFdmVudCgpIHsgfQotICAgIFdlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5
cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgY29uc3QgVmVj
dG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzLCBXZWJDb3JlOjpJbnRQb2lu
dCBwb3NpdGlvbiwgYm9vbCBpc1BvdGVudGlhbFRhcCwgYm9vbCBpc0dlc3R1cmUsIGZsb2F0IGdl
c3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYlRvdWNoRXZlbnQoV2Vi
RXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
LCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNv
cmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVy
ZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAgICwgbV90b3VjaFBv
aW50cyh0b3VjaFBvaW50cykKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQpAQCAtNDcx
LDcgKzQ3Miw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2
ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVu
dChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApOworICAgIFdlYlRvdWNoRXZlbnQoVHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogCiAgICAgY29u
c3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV90b3VjaFBvaW50czsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJk
RXZlbnQuY3BwCmluZGV4IGViNDc3MWZkYTUzLi4wY2YyNzE5OTYyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9h
cmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1XZWJLZXli
b2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2Vi
S2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29k
ZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Rl
eHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC02Miw3
ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0oR1RLKQog
Ci1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBT
dHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRp
dmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmlu
Zz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBW
ZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMs
IHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh0
ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlmIFBM
QVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitX
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQo
dHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1f
dW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5
Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2Fy
ZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlm
aWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAKaW5kZXggOGRhOGQzZmU4MzMuLjBmNzdmYWUzZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJNb3VzZUV2ZW50LmNwcApAQCAtNDcsOSArNDcsOSBAQCBXZWJNb3VzZUV2ZW50OjpXZWJNb3Vz
ZUV2ZW50KCkKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNl
RXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRp
Y0NsaWNrVHlwZSwgaW50IGV2ZW50TnVtYmVyLCBpbnQgbWVudVR5cGUpCitXZWJNb3VzZUV2ZW50
OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwg
ZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tU
eXBlIHN5bnRoZXRpY0NsaWNrVHlwZSwgaW50IGV2ZW50TnVtYmVyLCBpbnQgbWVudVR5cGUpCiAj
ZWxzZQotV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0
b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tD
b3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNl
LCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQorV2ViTW91c2VFdmVudDo6
V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBw
b3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZs
b2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSBzeW50aGV0aWNDbGlja1R5cGUpCiAjZW5kaWYKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlm
aWVycywgdGltZXN0YW1wKQogICAgICwgbV9idXR0b24oYnV0dG9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJUb3VjaEV2ZW50LmNwcAppbmRleCBiOWFhY2JhZjZlNy4uN2FlYTBlNzNkOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1XZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50KFdlYkV2ZW50
OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYgdG91Y2hQb2ludHMs
IE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJUb3VjaEV2ZW50OjpX
ZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ+JiYgdG91Y2hQb2ludHMsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwg
bV90b3VjaFBvaW50cyhXVEZNb3ZlKHRvdWNoUG9pbnRzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViV2hlZWxFdmVudC5jcHAKaW5kZXggMTNmZTQ4ZGU5OWQuLjRlMTNlODk2NTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2
ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBj
b25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNv
bnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlm
aWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVl
bEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6
ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywg
dGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9z
aXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6Oldl
YldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IElu
dFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXpl
JiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQo
VHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVl
bFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0
aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3Np
dGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFU
Rk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0
IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhh
c2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUm
IHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0
eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQog
ICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQz
ODg1OWEuLmJjZWEzMjlkMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsv
V2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZl
bnRGYWN0b3J5LmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgaW50IGN1
CiAgICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBkZWx0YVogKi8sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3VycmVudENsaWNrQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
bW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGdka19l
dmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYldo
ZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2
ZW50KiBldmVudCkKQEAgLTIxMCw3ICsyMTAsNyBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIFdlYldoZQog
ICAgICAgICBtb21lbnR1bVBoYXNlLAogICAgICAgICBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBp
eGVsV2hlZWxFdmVudCwKICAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAg
ICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKIH0KIAogV2ViS2V5Ym9hcmRFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQq
IGV2ZW50LCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVz
dWx0cywgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcykKQEAgLTIyNyw3ICsyMjcsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQsCiAgICAgICAgIFdURk1vdmUoY29tbWFuZHMpLAogICAgICAgICBp
c0dka0tleUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXkua2V5dmFsKSwKICAgICAgICAgbW9kaWZp
ZXJzRm9yRXZlbnQoZXZlbnQpLAotICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsK
KyAgICAgICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVu
dCkpKTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0yNDksNyArMjQ5LDcgQEAg
V2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50LCBWZWN0b3IKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgfQogCi0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50
cyksIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7
CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVu
dF9nZXRfdGltZShldmVudCkpKTsKICNlbHNlCiAgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQoKTsK
ICNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbQppbmRleCA2OGUwZTZjYWZkZi4uN2ZjNzc3
ZTFmMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3Vj
aEV2ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3Vj
aEV2ZW50SU9TLm1tCkBAIC0xMjIsNyArMTIyLDcgQEAgTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0
aXZlV2ViVG91Y2hFdmVudChjb25zdCBfVUlXZWJUb3VjaEV2ZW50KiBldmVudCkKICAgICA6IFdl
YlRvdWNoRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvclVJV2ViVG91Y2hFdmVudFR5cGUo
ZXZlbnQtPnR5cGUpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAg
ICBldmVudC0+dGltZXN0YW1wLAorICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWVzdGFtcCksCiAgICAgICAgIGV4dHJhY3RXZWJUb3VjaFBvaW50KGV2ZW50KSwKICAg
ICAgICAgcG9zaXRpb25Gb3JDR1BvaW50KGV2ZW50LT5sb2NhdGlvbkluRG9jdW1lbnRDb29yZGlu
YXRlcyksCiAjaWYgZGVmaW5lZCBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9U
QVAgJiYgVUlfV0VCX1RPVUNIX0VWRU5UX0hBU19JU19QT1RFTlRJQUxfVEFQCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQppbmRleCA0ZTAyNTliZGFl
Ny4uOTBmYmMyOGE2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJ
T1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2
ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQg
V2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgog
ICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktp
dDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2Rl
LCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0
eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0
b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFj
Lm1tCmluZGV4IDNiNTVjZTgwOTJmLi4wYzQ1YmZmYjFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2ViR2VzdHVyZUV2ZW50Lmgi
CiAjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTYzLDcgKzYzLDcgQEAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50OjpO
YXRpdmVXZWJHZXN0dXJlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TVmlldyAqdmlldykKICAgICA6
IFdlYkdlc3R1cmVFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yTlNFdmVudChldmVudCks
CiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2ZW50LnRpbWVz
dGFtcCwKKyAgICAgICAgV2ViQ29yZTo6ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpLAog
ICAgICAgICBXZWJDb3JlOjpJbnRQb2ludChwb2ludEZvckV2ZW50KGV2ZW50LCB2aWV3KSksCiAg
ICAgICAgIGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVNYWduaWZ5ID8gZXZlbnQubWFnbmlmaWNh
dGlvbiA6IDAsCiAgICAgICAgIGV2ZW50LnR5cGUgPT0gTlNFdmVudFR5cGVSb3RhdGUgPyBldmVu
dC5yb3RhdGlvbiA6IDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9y
eS5tbQppbmRleCAwZGIzYmU4YzY0Ny4uOWQ4NTU5NGEzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQpAQCAtMzYwLDcgKzM2MCw3IEBAIFdlYk1vdXNl
RXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KE5TRXZlbnQgKmV2ZW50
LCBOU0V2ZW50ICpsYXN0CiAgICAgZmxvYXQgZGVsdGFaID0gW2V2ZW50IGRlbHRhWl07CiAgICAg
aW50IGNsaWNrQ291bnQgPSBjbGlja0NvdW50Rm9yRXZlbnQoZXZlbnQpOwogICAgIFdlYkV2ZW50
OjpNb2RpZmllcnMgbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRv
dWJsZSB0aW1lc3RhbXAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0
byB0aW1lc3RhbXAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgaW50IGV2
ZW50TnVtYmVyID0gW2V2ZW50IGV2ZW50TnVtYmVyXTsKICAgICBpbnQgbWVudVR5cGVGb3JFdmVu
dCA9IHR5cGVGb3JFdmVudChldmVudCk7CiAKQEAgLTQxOCw3ICs0MTgsNyBAQCBXZWJXaGVlbEV2
ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwg
TlNWaWV3ICp3aW5kbwogICAgIH0KIAogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJz
ICAgICAgICAgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0
YW1wICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVu
dCk7CisgICAgYXV0byB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZXZlbnRU
aW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwogICAgIAogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50
KFdlYkV2ZW50OjpXaGVlbCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQb3Np
dGlvbiksIEZsb2F0U2l6ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwg
d2hlZWxUaWNrc1kpLCBncmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBw
aGFzZSwgbW9tZW50dW1QaGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgc2Nyb2xsQ291
bnQsIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwog
fQpAQCAtNDM4LDcgKzQzOCw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJLZXlib2FyZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhCiAgICAgYm9vbCBp
c0tleXBhZCAgICAgICAgICAgICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZlbnQpOwogICAgIGJv
b2wgaXNTeXN0ZW1LZXkgICAgICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFs
d2F5cyBmYWxzZSBvbiB0aGUgTWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJz
ICAgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCAgICAg
ICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRp
bWVzdGFtcCAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQp
OwogCiAgICAgLy8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJuIC0tIHdlIGRvbid0IHdh
bnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIEVudGVyLgogICAgIGlm
ICh3aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVUVVJOKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKaW5kZXggYmM2OGJhNTI3YTUuLmI2ZjljNjhkYjAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBX
ZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1
cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJF
dmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAs
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdl
c3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVz
dGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVy
ZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dw
ZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50
RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTkuLjk0NzQxMzA2NjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtODEsNyArODEsNyBAQCBX
ZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYQogICAgICAgICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNp
bmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmllclN0cmluZywKICAgICAgICAgd3BlX2lucHV0
X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRf
c2luZ2xldG9uKCksIGV2ZW50KSwKICAgICAgICAgZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsCi0gICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgZXZlbnQtPnRp
bWUpOworICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQogCiBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2
ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKQEAgLTExOSw3ICsxMTksNyBAQCBXZWJNb3Vz
ZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54
LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsK
ICAgICByZXR1cm4gV2ViTW91c2VFdmVudCh0eXBlLCBidXR0b24sIHBvc2l0aW9uLCBwb3NpdGlv
biwKLSAgICAgICAgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgMCwgMCwgMCwgY2xpY2tDb3VudCwg
c3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhldmVudC0+dGltZSkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKQEAgLTE1NCw3ICsxNTQsNyBAQCBXZWJXaGVlbEV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQqCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50
LT55KTsKICAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIHJl
dHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9zaXRpb24sIHBvc2l0aW9uLAot
ICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdo
ZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBp
eGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQogCiBzdGF0aWMgV2ViS2l0OjpX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRTdGF0ZSBzdGF0ZUZvclRvdWNoUG9pbnQo
aW50IG1haW5FdmVudElkLCBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jhdyog
cG9pbnQpCkBAIC0yMDksNyArMjA5LDcgQEAgV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCoKICAgICAg
ICAgICAgICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdl
YkV2ZW50OjpNb2RpZmllcnMoMCksIGV2ZW50LT50aW1lKTsKKyAgICByZXR1cm4gV2ViVG91Y2hF
dmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgV2ViRXZlbnQ6Ok1vZGlmaWVycygwKSwg
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA1ZGYzZGZjM2U2ZS4u
MDdlZGFiZmI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC00NzgsMTcgKzQ3
OCwxNyBAQCB2b2lkIFdLQnVuZGxlUGFnZUZvcmNlUmVwYWludChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSkKIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bihXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgaW50IGJ1dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICB0b0ltcGwocGFnZSkt
PnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291
bnQsIG1vZGlmaWVycywgdGltZSk7CisgICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93
bihidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2lt
dWxhdGVNb3VzZVVwKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBv
c2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRvbiwgdG9J
bnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgdGltZSk7CisgICAgdG9J
bXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwg
Y2xpY2tDb3VudCwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VNb3Rpb24oV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLUG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdl
KS0+c2ltdWxhdGVNb3VzZU1vdGlvbih0b0ludFBvaW50KHBvc2l0aW9uKSwgdGltZSk7CisgICAg
dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwogfQogCiB1aW50NjRfdCBXS0J1bmRsZVBh
Z2VHZXRSZW5kZXJUcmVlU2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IGFmY2Zm
YTUxNzQ1Li44NmZlMzZiMWZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTc2LDcgKzE1NzYsNyBAQCBib29sIFBERlBs
dWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAg
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+dmlldygp
OwogICAgIEludFBvaW50IGNvbnRlbnRzUG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290
Vmlldyhwb2ludCk7Ci0gICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3du
LCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2lu
dCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIG1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOworICAgIFdl
Yk1vdXNlRXZlbnQgZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6Umln
aHRCdXR0b24sIGNvbnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRp
Y19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6
OkZvcmNlQXRDbGljayk7CiAgICAgcmV0dXJuIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCmluZGV4IGE2NDhmN2VhYmZlLi5lY2Q1NjdmY2MzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViRXZlbnQ+IFBsdWdpblZpZXc6OmNyZWF0ZVdlYkV2ZW50KE1vdXNl
RXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmIChldmVudC5tZXRhS2V5KCkpCiAgICAgICAgIG1v
ZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RW
aWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNj
cmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50
OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIDAsIDApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RW
aWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNj
cmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50
OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIFdhbGxUaW1lIHsgfSwgMCk7CiB9CiAKIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlRXZlbnQoRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwZWFiZTY1OTkwZC4uZmY4YmI5ODA0MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0x
MjgxLDcgKzEyODEsNyBAQCB2b2lkIFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVs
YXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBJbnRQb2ludCBkbwogICAgICAgICByZXR1cm47
CiAKICAgICBjb25zdCBpbnQgc2luZ2xlQ2xpY2sgPSAxOwotICAgIFJlZlB0cjxNb3VzZUV2ZW50
PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVu
UG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBv
aW50LnkoKSwKKyAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGlt
ZTo6bm93KCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBv
aW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKQEAgLTIxNDUsMTEgKzIxNDUs
MTEgQEAgV2ViQ29udGV4dE1lbnUqIFdlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93
KGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICBjb3JlUGFnZSgpLT5jb250ZXh0TWVudUNvbnRy
b2xsZXIoKS5jbGVhckNvbnRleHRNZW51KCk7CiAKICAgICAvLyBTaW11bGF0ZSBhIG1vdXNlIGNs
aWNrIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG1lbnUuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IG1vdXNlUHJlc3NFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGlt
ZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7
CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50
KG1vdXNlUHJlc3NFdmVudCk7CiAgICAgYm9vbCBoYW5kbGVkID0gY29yZVBhZ2UoKS0+dXNlcklu
cHV0QnJpZGdlKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudChtb3VzZVByZXNzRXZlbnQsIGNvcmVQ
YWdlKCktPm1haW5GcmFtZSgpKTsKICAgICBhdXRvKiBtZW51ID0gaGFuZGxlZCA/IGNvbnRleHRN
ZW51KCkgOiBudWxscHRyOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVhc2VFdmVu
dChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2Vk
LCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1v
dXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNvcmVQ
YWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KG1vdXNlUmVs
ZWFzZUV2ZW50KTsKIAogICAgIHJldHVybiBtZW51OwpAQCAtMzY3NCw3ICszNjc0LDcgQEAgdm9p
ZCBXZWJQYWdlOjpkcmFnRW5kZWQoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdl
YkNvcmU6OkludFBvaW50IGdsb2IKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKICAg
ICAvLyBGSVhNRTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJlLCBidXQgdGhleSBz
aG91bGQgYmUgcmVhbCBvbmVzIGluc3RlYWQuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50
KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpLCAwLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IGV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRp
b24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKICAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VFbmRlZEF0KGV2
ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRFbmREcmFnZ2luZygpKTsKQEAgLTQ2NzAsMTcgKzQ2NzAsMTcgQEAgdm9p
ZCBXZWJQYWdlOjpoYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChjb25zdCBTdHJpbmcmIHJl
c3VsdCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBi
dXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0
ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNs
aWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lKQogewog
ICAgIG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZURvd24sIHN0
YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0
aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2Rp
ZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VF
dmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAoaW50IGJ1
dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50
TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRl
TW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNr
Q291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lKQogewogICAg
IG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZVVwLCBzdGF0aWNf
Y2FzdDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwg
MCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJz
Pihtb2RpZmllcnMpLCB0aW1lLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6
Ok5vVGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRl
TW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIFdhbGxUaW1lIHRpbWUpCiB7
CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlTW92ZSwg
V2ViTW91c2VFdmVudDo6Tm9CdXR0b24sIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgMCwg
V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzKCksIHRpbWUsIDAsIFdlYk1vdXNlRXZlbnQ6Ok5vVGFw
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
NDMxNTRhNjE0YjkuLmJiMWY1MTI2ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oR1RLKQpAQCAtODA2LDkgKzgw
Nyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZS4KLSAg
ICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBp
bnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQg
c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tD
b3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVN
b3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgZG91YmxlIHRpbWUpOworICAgIHZvaWQgc2lt
dWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0Nv
dW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNl
VXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50
TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNv
cmU6OkludFBvaW50LCBXYWxsVGltZSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICB2b2lkIGNvbnRleHRNZW51U2hvd2luZygpIHsgbV9pc1Nob3dpbmdDb250ZXh0TWVudSA9IHRy
dWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggYmNkYjBiZjA2YTAuLmRiYWZhMTVmODdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTI5LDcg
KzUyOSw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJl
c3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAKICAgICBXS0JlZ2luT2JzZXJ2aW5n
Q29udGVudENoYW5nZXModHJ1ZSk7CiAKLSAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91
c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91
c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0b3BPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygp
OwpAQCAtNTgxLDExICs1ODEsMTEgQEAgdm9pZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0Ns
aWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZToKICAgICBib29s
IHRhcFdhc0hhbmRsZWQgPSBmYWxzZTsKICAgICBtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0g
cm91bmRlZEFkanVzdGVkUG9pbnQ7CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5l
dmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJv
dW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
Y3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUp
KTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVN
b3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCBy
b3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xv
c2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5l
dmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQo
cm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5
cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5k
bGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9p
bnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmICht
X2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIFdl
YlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2lu
dCYgY2xpZW50UG9zaXRpbwogICAgIC8vIFRvIGF1Z21lbnQgdGhlIHBsYXRmb3JtIGRyYWcgc2Vz
c2lvbiB3aXRoIGFkZGl0aW9uYWwgaXRlbXMsIGVuZCB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24g
YW5kIGJlZ2luIGEgbmV3IGRyYWcgc2Vzc2lvbiB3aXRoIHRoZSBuZXcgZHJhZyBpdGVtLgogICAg
IC8vIFRoaXMgcHJvY2VzcyBpcyBvcGFxdWUgdG8gdGhlIFVJIHByb2Nlc3MsIHdoaWNoIHN0aWxs
IG1haW50YWlucyB0aGUgb2xkIGRyYWcgaXRlbSBpbiBpdHMgZHJhZyBzZXNzaW9uLiBTaW1pbGFy
bHksIHRoaXMgcGVyc2lzdGVudCBkcmFnIHNlc3Npb24KICAgICAvLyBpcyBvcGFxdWUgdG8gdGhl
IHdlYiBwcm9jZXNzLCB3aGljaCBvbmx5IHNlZXMgdGhhdCB0aGUgY3VycmVudCBkcmFnIGhhcyBl
bmRlZCwgYW5kIHRoYXQgYSBuZXcgb25lIGlzIGJlZ2lubmluZy4KLSAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
Y3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChj
bGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIDAsIE5vVGFwKTsKICAgICBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0VuZGVkKCk7
CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRB
dChldmVudCwgRHJhZ09wZXJhdGlvbk5vbmUsIE1heUV4dGVuZERyYWdTZXNzaW9uOjpZZXMpOwog
CkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJQYWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92
ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIEludFBvaW50IGFk
anVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOwogICAgIEZyYW1lJiBtYWlu
ZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxl
cigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVk
UG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUu
ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2lu
dCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB7IH0sIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CiAg
ICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vo
b2xkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFj
ZWhvbGRlci5tbQppbmRleCA0OGFlOWY3OWNiOS4uYzkxNWZlNGQ4NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVy
Lm1tCkBAIC00OCw3ICs0OCw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViTlNWaWV3RXh0
cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViUERGRG9jdW1lbnRFeHRyYXMuaD4KICNp
bXBvcnQgPFdlYktpdExlZ2FjeS9XZWJWaWV3UHJpdmF0ZS5oPgotI2ltcG9ydCA8d3RmL0N1cnJl
bnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2ltcG9ydCA8d3RmL1Nv
ZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQ3OSw3ICs0NzksNyBA
QCBzdGF0aWMgY29uc3QgZmxvYXQgUEFHRV9IRUlHSFRfSU5TRVQgPSA0LjBmICogMi4wZjsKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ29uc3RydWN0IGFuIGV2ZW50IHRvIHNpbXVsYXRlIGEg
Y2xpY2suCi0gICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgMSwgMCwg
MCwgMCwgMCwKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
MCwgMSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAw
LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZl
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KaW5kZXggOTVm
ODRkZDI1YTguLjc2ODU0NDg0MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2
ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBM
LT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCkuc2Vjb25kc1NpbmNl
RXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBh
NDJjMC4uZjM0ZDY5NTlkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQpAQCAtOTY0LDcgKzk2NCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJj
ZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICByZXR1cm47CiAg
ICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkg
c2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dChJbnRQb2ludCh3aW5kb3dMb2MpLCBJbnRQb2ludChnbG9iYWxQb2ludCh3aW5kb3dMb2MsIFt2
aWV3LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10pKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywg
V2ViQ29yZTo6Tm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFw
KTsKICAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5k
ZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIH0KICNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KaW5kZXggZWM1N2M4OGE2Y2EuLjE4ZTM1YTViZDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCkBA
IC0xMDE4LDE0ICsxMDE4LDE0IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdlYkZyYW1l
ICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGNhc2UgTlNFdmVudFR5cGVLZXlEb3duOiB7
CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRGYWN0b3J5
OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CiAgICAgICAgIHBlLmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAgICAgICAg
ZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBldmVudCA9IEtl
eWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRvbiAhPSBu
b0J1dHRvbikgewotICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgW25zRXZlbnQgY2xp
Y2tDb3VudF0sIDAsIDAsIDAsIDAsCisgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3co
KSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321433</attachid>
            <date>2017-09-21 09:25:27 -0700</date>
            <delta_ts>2017-09-21 09:29:02 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>93812</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNl
YzAzNGRmZWMuLjQyMTA2YTY4ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgeyAwX3MgfTsKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNWNi
NDc4NDcxZDYuLjUyY2I5Yzg3NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04NiwyOSArODcsMjcgQEAgcHVibGljOgogCiAgICAgT3B0aW9uU2V0PE1vZGlm
aWVyPiBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyczsgfQogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRp
bWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVk
OgogICAgIFBsYXRmb3JtRXZlbnQoKQogICAgICAgICA6IG1fdHlwZShOb1R5cGUpCi0gICAgICAg
ICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1F
dmVudChUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV90aW1l
c3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9w
dGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZp
ZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewog
ICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCisg
ICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAgICA6
IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CkBA
IC0xMzAsNyArMTI5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdW5zaWduZWQgbV90eXBlOwogICAg
IE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1w
OworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApp
bmRleCA4N2JhNTc2MDhkZi4uOTdkMDNhZjkyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAg
IGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAg
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyLi5hNGU3ZDU4
OTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgK
QEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICAg
ICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGlj
Q2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAg
ICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IDZkNDU4YmVmNGI4Li4yOTU4ODIxMGM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3Np
dGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZ
LCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9y
bUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgMCkKKyAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCB7IH0pCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bikKICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAs
IG1fZGVsdGFYKGRlbHRhWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGQzNzllMjQ3NGQxLi4wYjJiMjgxODBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBA
IC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Q2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAot
ICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVs
dGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAt
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3Jv
bGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2Np
dHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAg
ICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0
YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAg
ICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZl
bG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKaW5kZXggYzJhYTlkYzAxZjcuLjQz
ZGYyMzAzZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
QW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxB
bmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1h
dG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxI
aXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5
LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5
WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4o
KS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpj
b21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3JvbGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICBy
ZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCks
IGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZs
b2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCks
IGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAog
Ym9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JH
dGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAg
ICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsKIAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1v
dmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZvcm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAt
PiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQu
dGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJl
c2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRp
bWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAo
ZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJm
OTgyMzc3MS4uNDhjODQwMzMyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNp
bXBvcnQgIldBS0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAi
V2luZG93c0tleWJvYXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2lt
cG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyAr
ODUsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAq
ZXZlbnQpCiAgICAgewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0g
ICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAg
PSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQo
ZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChl
dmVudCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQu
dHlwZSA9PSBXZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9y
bUV2ZW50OjpXaGVlbDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAg
ICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9u
ID0gcG9pbnRGb3JFdmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9i
YWxQb2ludEZvckV2ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAg
ICAgICAgbV90eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZl
bnQ6OktleVVwIDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJz
ID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJl
bnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAg
ICAgIG1fdGV4dCA9IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQg
PSBldmVudC5jaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00NzUsNyArNDc1LDcgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgbV90eXBlID0gdG91Y2hFdmVudFR5cGUoZXZlbnQpOwog
ICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAg
bV90aW1lc3RhbXAgPSBldmVudC50aW1lc3RhbXA7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9nZXN0
dXJlU2NhbGUgPSBldmVudC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9u
ID0gZXZlbnQuZ2VzdHVyZVJvdGF0aW9uOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAg
ICBQbGF0Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50
UG9pbnQgbG9jYXRpb24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBt
X3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRp
bWU6Om5vdygpOwogICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAg
ICBtX2dlc3R1cmVSb3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwLi5jNDBl
YzIxZjEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQgaW50
IHdpbmRvd3NLZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBrZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5n
IGNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBl
dmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBPUlQg
dm9pZCBnZXRXaGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQm
IGRlbHRhWSwgQk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFy
Rm9yRXZlbnQoTlNFdmVudCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNC4uNzk0MWNk
NmM0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkv
bWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2lt
cG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2
YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3Rl
bVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVu
dCogZXZlbnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVu
dCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUlu
dGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1l
SW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2Q0MWM3MTAzOS4uYWE5
OTgwYzM0MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNp
bmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+Cisj
aW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3Vt
ZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRp
bWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFs
dWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGlt
ZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDViNWZkMzk3NDEzLi4wOGMzODM5MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKIG5hbWVzcGFjZSBXVEYgewog
Y2xhc3MgTW9ub3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7CitjbGFzcyBXYWxsVGltZTsKIH0K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTYyLDYgKzE2MywxMSBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdURjo6TW9ub3RvbmljVGltZT4gewogICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV1RGOjpNb25vdG9uaWNUaW1lJik7CiB9OwogCit0ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6V2FsbFRpbWU+IHsKKyAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6V2FsbFRpbWUmKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFdURjo6V2FsbFRpbWUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V1RGOjpTZWNvbmRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXVEY6OlNlY29uZHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6U2Vjb25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDUw
N2JjMTY2Mjg5Li41YTA4NmY5N2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAt
MjgsMTcgKzI4LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rl
ci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oTm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJzKDApCi0gICAgLCBtX3RpbWVzdGFt
cCgwKQogewogfQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKHR5
cGUpCiAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgLCBtX3RpbWVzdGFtcCh0aW1l
c3RhbXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAyMTAxODZkYzBmZC4uMmQ0NTlmNmEx
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwx
MiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRp
bWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVk
OgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzEx
OCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBl
CiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3Rp
bWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3Zl
IHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBw
dWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdl
Yk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1Rh
cCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNl
RXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9h
dCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBp
bnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1v
dXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBm
bG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9U
YXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0
aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsx
OTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0
eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxF
dmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwg
Ym9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBo
YXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwg
TW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlv
bkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVu
dChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0
YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9t
ZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7Cisg
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQ
aGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBA
QCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0g
ICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUs
IGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwg
aW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5
SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBM
QVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29t
bWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAg
V2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5
cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1Mp
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRv
UmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50
KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBp
bnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBl
YXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlz
U3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAg
IGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcg
KzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50
IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
LCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNv
cmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVy
ZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91
Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBv
aW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJv
b2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikK
ICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
LCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRp
b24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBw
dWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBX
ZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8
V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7
CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMo
KSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTMuLjBjZjI3MTk5NjIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtMzcsNyArMzcsNyBA
QCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KCkKIAogI2lmIFVTRShBUFBLSVQp
CiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNL
ZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29s
IGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkK
ICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4
dCkKQEAgLTYyLDcgKzYyLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQTEFU
Rk9STShHVEspCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBW
ZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVu
dChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1Zp
cnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9k
aWZpZWRUZXh0KHRleHQpCkBAIC04Myw3ICs4Myw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYK
IAogI2VsaWYgUExBVEZPUk0oSU9TKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlz
U3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0
KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTEwNiw3ICsxMDYs
NyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbHNlCiAKLVdlYktleWJvYXJkRXZlbnQ6
OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQg
d2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWND
aGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2
ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAg
LCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJN
b3VzZUV2ZW50LmNwcAppbmRleCA4ZGE4ZDNmZTgzMy4uMGY3N2ZhZTNkMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIFdlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotV2ViTW91c2VFdmVu
dDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgs
IGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5
cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKK1dl
Yk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50
aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBt
ZW51VHlwZSkKICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwg
QnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYg
Z2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVos
IGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBk
b3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCitXZWJN
b3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3Qg
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0
IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhl
dGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICNlbmRpZgogICAgIDogV2ViRXZlbnQo
dHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX2J1dHRvbihidXR0b24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCmluZGV4IGI5YWFjYmFmNmU3Li43YWVhMGU3
M2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZl
bnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0
b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRv
dWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBs
YXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3Rh
bXApCiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZC4uNGUxM2U4OTY1
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsgICAgCiAK
LVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxh
cml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZl
bnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwg
bW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwg
bV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUwLDcgKzUwLDcgQEAgV2ViV2hl
ZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotV2ViV2hlZWxFdmVu
dDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25z
dCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRp
cmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9h
dFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlv
bkludmVydGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJv
b2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBt
X2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNjcsNyArNjcsNyBAQCBXZWJXaGVl
bEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludAogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsKIH0K
ICNlbGlmIFBMQVRGT1JNKEdUSykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBQaGFzZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2Us
IEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0
aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAg
ICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBv
c2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcApp
bmRleCA2OGQ2ZDM4ODU5YS4uYmNlYTMyOWQyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgV2ViTW91c2VFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2
ZW50LCBpbnQgY3UKICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbHRhWiAqLywKICAg
ICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2xpY2tDb3VudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsK
IH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQo
Y29uc3QgR2RrRXZlbnQqIGV2ZW50KQpAQCAtMjEwLDcgKzIxMCw3IEBAIFdlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVu
dCwgV2ViV2hlCiAgICAgICAgIG1vbWVudHVtUGhhc2UsCiAgICAgICAgIFdlYldoZWVsRXZlbnQ6
OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LAogICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVu
dCksCi0gICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29t
cG9zaXRpb25SZXN1bHRzLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKQpAQCAtMjI3LDcgKzIy
Nyw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwKICAgICAgICAgV1RGTW92ZShjb21tYW5kcyks
CiAgICAgICAgIGlzR2RrS2V5Q29kZUZyb21LZXlQYWQoZXZlbnQtPmtleS5rZXl2YWwpLAogICAg
ICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgIGdka19ldmVudF9nZXRfdGlt
ZShldmVudCkpOworICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTI0OSw3
ICsyNDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hF
dmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIFZlY3RvcgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3Zl
KHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBnZGtfZXZlbnRfZ2V0X3Rp
bWUoZXZlbnQpKTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNo
UG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogI2Vsc2UKICAgICByZXR1cm4gV2ViVG91
Y2hFdmVudCgpOwogI2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCmluZGV4IDY4ZTBlNmNh
ZmRmLi43ZmM3NzdlMWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3Vj
aEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50
KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3Vj
aEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4o
MCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQo
ZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1
bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNf
UE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rvcnku
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4
IDRlMDI1OWJkYWU3Li45MGZiYzI4YTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCkBAIC04NSw3ICs4NSw3IEBAIFdlYktpdDo6V2ViS2V5
Ym9hcmRFdmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoOjpX
ZWJFdmVudCAqCiAgICAgICAgIHVubW9kaWZpZWRUZXh0ID0gdGV4dDsKICAgICB9CiAKLSAgICBy
ZXR1cm4gV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50KHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0
LCBrZXksIGNvZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZl
VmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2RlLCBhdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0
ZW1LZXksIG1vZGlmaWVycywgdGltZXN0YW1wKTsKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJLZXli
b2FyZEV2ZW50KHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50
aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0No
YXJDb2RlLCBhdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWVzdGFtcCkpOwogfQogCiAjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdl
c3R1cmVFdmVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0
dXJlRXZlbnRNYWMubW0KaW5kZXggM2I1NWNlODA5MmYuLjBjNDViZmZiMWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0K
QEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJHZXN0
dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPHd0Zi9D
dXJyZW50VGltZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjMsNyArNjMsNyBAQCBOYXRpdmVXZWJHZXN0
dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp2
aWV3KQogICAgIDogV2ViR2VzdHVyZUV2ZW50KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JOU0V2
ZW50KGV2ZW50KSwKICAgICAgICAgc3RhdGljX2Nhc3Q8TW9kaWZpZXJzPigwKSwKLSAgICAgICAg
ZXZlbnQudGltZXN0YW1wLAorICAgICAgICBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChldmVudCksCiAgICAgICAgIFdlYkNvcmU6OkludFBvaW50KHBvaW50Rm9yRXZlbnQoZXZlbnQs
IHZpZXcpKSwKICAgICAgICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZU1hZ25pZnkgPyBldmVu
dC5tYWduaWZpY2F0aW9uIDogMCwKICAgICAgICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJv
dGF0ZSA/IGV2ZW50LnJvdGF0aW9uIDogMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
RXZlbnRGYWN0b3J5Lm1tCmluZGV4IDBkYjNiZThjNjQ3Li45ZDg1NTk0YTM2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcg
QEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNF
dmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVs
dGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsK
ICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51
VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBA
IFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRv
dWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdl
YldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50
KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdo
ZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
LCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRp
bWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEK
ICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVu
dCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0
ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGlt
ZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwor
ICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNl
MTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0g
d2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50
ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNS4u
YjZmOWM2OGRiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0
dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHZXN0dXJl
RXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYkdlc3R1cmVFdmVudCgp
IHsgfQotICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwg
ZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViR2VzdHVy
ZUV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2Fs
ZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQogICAgICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlm
aWVycywgdGltZXN0YW1wKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAg
ICwgbV9nZXN0dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCBlMGFjNmVmODVhOS4uOTQ3NDEzMDY2MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hCiAgICAgICAgIHNpbmdsZUNoYXJhY3Rl
clN0cmluZywgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAogICAgICAg
ICB3cGVfaW5wdXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlf
bWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpLAogICAgICAgICBldmVudC0+a2V5Q29kZSwg
MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQp
LCBldmVudC0+dGltZSk7CisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIFdlYk1vdXNlRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQpAQCAtMTE5LDcgKzExOSw3
IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVuCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24oZXZlbnQtPngsIGV2ZW50LT55KTsKICAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOwogICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRp
b24sIHBvc2l0aW9uLAotICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICAwLCAwLCAwLCBj
bGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVu
dCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQpAQCAtMTU0LDcgKzE1NCw3IEBAIFdl
YldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCoKICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVu
dC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rv
cik7CiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwg
cG9zaXRpb24sCi0gICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3Jv
bGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCks
IGV2ZW50LT50aW1lKTsKKyAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6
OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJz
PigwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIHN0YXRp
YyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9y
VG91Y2hQb2ludChpbnQgbWFpbkV2ZW50SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfcmF3KiBwb2ludCkKQEAgLTIwOSw3ICsyMDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2
ZW50KgogICAgICAgICAgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNo
UG9pbnRzKSwgV2ViRXZlbnQ6Ok1vZGlmaWVycygwKSwgZXZlbnQtPnRpbWUpOworICAgIHJldHVy
biBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9k
aWZpZXJzKDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDVk
ZjNkZmMzZTZlLi4wN2VkYWJmYjZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAg
LTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVuZGxl
UGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tD
b3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIHRv
SW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9u
KSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVs
YXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1v
ZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1
bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24s
IFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAo
YnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1l
KTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQo
cG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0gICAg
dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2ludChw
b3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90
IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
aW5kZXggYWZjZmZhNTE3NDUuLjg2ZmUzNmIxZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3IEBA
IGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50JiBw
b2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVGcmFt
ZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+Y29u
dGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50
OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBj
b250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJz
PigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
ayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3Vz
ZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwg
MCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpub3co
KSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1lbnVF
dmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmUuLmVjZDU2N2ZjYzNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODk3LDcg
Kzg5Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJFdmVudD4gUGx1Z2luVmlldzo6Y3JlYXRlV2Vi
RXZlbnQoTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkK
ICAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwogCi0gICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29u
dmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkp
KSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nh
c3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgMCwgMCk7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29u
dmVydFRvUm9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkp
KSwgZXZlbnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nh
c3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgV2FsbFRpbWUgeyB9LCAwKTsKIH0K
IAogdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBlYWJlNjU5OTBkLi5m
ZjhiYjk4MDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxp
bmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0gICAgUmVmUHRy
PE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIsIHNpbmdsZUNs
aWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCks
IGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0g
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBN
b25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50Lngo
KSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCks
CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0
NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBv
aW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8vIFNpbXVsYXRl
IGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdo
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNv
cmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3Vz
ZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBjb3JlUGFn
ZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NF
dmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVk
ID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
UmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7
CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2
NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQ
b3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUs
IGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlv
biwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRH
bG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6
Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJj
ZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3
MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0
IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3Vz
ZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0Nv
dW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBh
Z2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1v
dXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3Np
dGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNl
RXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNr
LCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91
c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291
bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNl
VXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24s
IHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50
OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2Vi
TW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90
aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgV2FsbFRp
bWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6
TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAw
LCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwgV2ViTW91c2VF
dmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCA0MzE1NGE2MTRiOS4uYmIxZjUxMjZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vj
b25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCkBA
IC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGluZyBw
dXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7
Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQs
IGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9p
ZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7Cisg
ICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwg
aW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNp
bXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291
bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VN
b3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRl
eHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBiY2RiMGJmMDZhMC4uZGJhZmExNWY4N2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC01MjksNyArNTI5LDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhO
b2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkYKIAogICAgIFdLQmVn
aW5PYnNlcnZpbmdDb250ZW50Q2hhbmdlcyh0cnVlKTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhh
bmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2lu
dCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1v
dmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29y
ZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOworICAgIG1haW5mcmFtZS5ldmVudEhh
bmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2lu
dCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1v
dmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKSk7CiAgICAgbWFpbmZyYW1lLmRvY3Vt
ZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIAogICAgIFdLU3RvcE9ic2VydmluZ0NvbnRl
bnRDaGFuZ2VzKCk7CkBAIC01ODEsMTEgKzU4MSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRl
U3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OgogICAgIGJvb2wgdGFwV2FzSGFuZGxlZCA9IGZhbHNlOwogICAgIG1fbGFzdEludGVyYWN0aW9u
TG9jYXRpb24gPSByb3VuZGVkQWRqdXN0ZWRQb2ludDsKIAotICAgIHRhcFdhc0hhbmRsZWQgfD0g
bWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1v
dXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRp
Y0NsaWNrVHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVz
dGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHRhcFdhc0hhbmRsZWQgfD0g
bWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3Jt
TW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExl
ZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRo
ZXRpY0NsaWNrVHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFu
ZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVk
QWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxs
VGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7
CiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjM3LDcgKzYzNyw3
IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNv
bnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvCiAgICAgLy8gVG8gYXVnbWVudCB0aGUgcGxhdGZv
cm0gZHJhZyBzZXNzaW9uIHdpdGggYWRkaXRpb25hbCBpdGVtcywgZW5kIHRoZSBjdXJyZW50IGRy
YWcgc2Vzc2lvbiBhbmQgYmVnaW4gYSBuZXcgZHJhZyBzZXNzaW9uIHdpdGggdGhlIG5ldyBkcmFn
IGl0ZW0uCiAgICAgLy8gVGhpcyBwcm9jZXNzIGlzIG9wYXF1ZSB0byB0aGUgVUkgcHJvY2Vzcywg
d2hpY2ggc3RpbGwgbWFpbnRhaW5zIHRoZSBvbGQgZHJhZyBpdGVtIGluIGl0cyBkcmFnIHNlc3Np
b24uIFNpbWlsYXJseSwgdGhpcyBwZXJzaXN0ZW50IGRyYWcgc2Vzc2lvbgogICAgIC8vIGlzIG9w
YXF1ZSB0byB0aGUgd2ViIHByb2Nlc3MsIHdoaWNoIG9ubHkgc2VlcyB0aGF0IHRoZSBjdXJyZW50
IGRyYWcgaGFzIGVuZGVkLCBhbmQgdGhhdCBhIG5ldyBvbmUgaXMgYmVnaW5uaW5nLgotICAgIFBs
YXRmb3JtTW91c2VFdmVudCBldmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExl
ZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IGV2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogICAgIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5k
cmFnRW5kZWQoKTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmRyYWdT
b3VyY2VFbmRlZEF0KGV2ZW50LCBEcmFnT3BlcmF0aW9uTm9uZSwgTWF5RXh0ZW5kRHJhZ1Nlc3Np
b246Olllcyk7CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc3BlY3Rvck5v
ZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiAgICAg
SW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbik7CiAgICAg
RnJhbWUmIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAKLSAgICBtYWluZnJhbWUu
ZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2lu
dCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBXZWJDb3JlOjpOb1RhcCkpOworICAg
IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChh
ZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHsgfSwgMCwgV2ViQ29yZTo6
Tm9UYXApKTsKICAgICBtYWluZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBE
RlZpZXdQbGFjZWhvbGRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2Vi
UERGVmlld1BsYWNlaG9sZGVyLm1tCmluZGV4IDQ4YWU5Zjc5Y2I5Li5jOTE1ZmU0ZDg2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vo
b2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3
UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9X
ZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJQREZEb2N1bWVudEV4
dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0
IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1w
b3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDc5
LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYg
KiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQgdG8g
c2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgp
LCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1Rp
bWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5t
bQppbmRleCA5NWY4NGRkMjVhOC4uNzY4NTQ0ODQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9ET00vRE9NRXZlbnQubW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0gKERPTVRpbWVTdGFtcCl0aW1l
U3RhbXAKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
cmV0dXJuIElNUEwtPnRpbWVTdGFtcCgpOworICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKS5z
ZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpOwogfQogCiAtIChCT09MKWRlZmF1bHRQ
cmV2ZW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmlu
ZGV4IDAwMTZjMGE0MmMwLi5mMzRkNjk1OWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05NjQsNyArOTY0LDcgQEAgc3RhdGljIGlubGluZSBX
ZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAg
IHJldHVybjsKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJl
LCBidXQgdGhleSBzaG91bGQgYmUgcmVhbCBvbmVzIGluc3RlYWQuCiAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IGV2ZW50KEludFBvaW50KHdpbmRvd0xvYyksIEludFBvaW50KGdsb2JhbFBvaW50KHdp
bmRvd0xvYywgW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2Vi
Q29yZTo6Tm9UYXApOwogICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRy
YWdTb3VyY2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBlYzU3Yzg4YTZjYS4u
MThlMzVhNWJkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBE
RlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFu
Z2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBOU0V2ZW50VHlw
ZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1F
dmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKICAgICAg
ICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24p
OwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAg
IGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAo
YnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBb
bnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25p
Y1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321435</attachid>
            <date>2017-09-21 09:29:02 -0700</date>
            <delta_ts>2017-09-21 09:36:51 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>154246_DOMHighResTimeStamp_wip.patch</filename>
            <type>text/plain</type>
            <size>94319</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmViMTBlODczNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACisKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhp
Z2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5j
ZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBw
ZXJmb3JtYW5jZS5ub3coKSAKK0ZBSUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIE5vdCBlbm91Z2ggYXJndW1lbnRzCitQQVNTIENvbnN0cnVj
dGVkIEZvY3VzRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNWFhMDE0Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNv
bHV0aW9uLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KKyd1c2Ugc3RyaWN0JzsKK2ZvciAobGV0IGV2ZW50VHlwZSBvZiBb
TW91c2VFdmVudCwgS2V5Ym9hcmRFdmVudCwgV2hlZWxFdmVudCwgR2FtZXBhZEV2ZW50LCBGb2N1
c0V2ZW50XSkgeworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBiZWZvcmUgPSBw
ZXJmb3JtYW5jZS5ub3coKTsKKyAgICAgICAgbGV0IGUgPSBuZXcgZXZlbnRUeXBlKCd0ZXN0Jyk7
CisgICAgICAgIGxldCBhZnRlciA9IHBlcmZvcm1hbmNlLm5vdygpOworICAgICAgICBhc3NlcnRf
Z3JlYXRlcl90aGFuX2VxdWFsKGUudGltZVN0YW1wLCBiZWZvcmUsICJFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YmVmb3JlIGl0cyBjcmVhdGlvbiIpOworICAgICAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGUu
dGltZVN0YW1wLCBhZnRlciwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBl
cmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24iKTsKKyAg
ICB9LCBgQ29uc3RydWN0ZWQgJHtldmVudFR5cGUucHJvdG90eXBlLmNvbnN0cnVjdG9yLm5hbWV9
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpYCk7Cit9Cis8L3NjcmlwdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWMuLmQyNTBkYjE5NGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
OTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAw
OTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNE
T01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhF
IC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTky
QzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMg
LyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM4LDYgKzk4Mzks
NyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290
TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkw
MEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVj
dGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0
aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1
RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyog
TG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjYyNDcsNiArMjYyNDksNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAv
KiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhj
ZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBs
ZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUlt
cGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3Njk4LDYgKzI3NzAxLDcgQEAKIAkJCQlCQzYwRDZF
OTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUlt
cGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIx
OTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xMWI2Nzg2MDA5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIERPTUhpZ2hSZXNU
aW1lU3RhbXAgPSBkb3VibGU7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMTM1Yzk0
NzkwMC4uM2NjNDU4MzVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTI1MjUsNyArMjUy
NSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKCkKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlR2xvYmFs
UG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1F
dmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAgYXV0byBtb3VzZUZvcmNlV2lsbEJlZ2lu
RXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdG1vdXNlZm9yY2V3
aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZl
bnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0
KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxLi5lNDYzZGNmNGFlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWMuLmM1ZDRkNDFkNjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1
ZGUgIkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
QEAgLTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQo
KSBjb25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRp
bmdzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRp
bWVTdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRF
dmVudFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0K
ICAgICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAg
LTE3MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVk
ID0gSXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFi
bGUsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApOwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0
JiwgSXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAt
MTk1LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJl
bnRUYXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsK
ICAgICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2Ny
ZWF0ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8
RXZlbnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2Yz
MWNjOGQ1Li44N2FlMWZiNDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCkBAIC0xOCw2ICsxOCw4IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIGRvdWJsZSBE
T01IaWdoUmVzVGltZVN0YW1wOworCiBbCiAgICAgQ29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUs
IG9wdGlvbmFsIEV2ZW50SW5pdCBldmVudEluaXREaWN0KSwKICAgICBDdXN0b21Ub0pTT2JqZWN0
LApAQCAtNDgsNyArNTAsNyBAQAogICAgIFtFbmFibGVkQXRSdW50aW1lPVNoYWRvd0RPTV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcG9zZWQ7CiAKICAgICBbVW5mb3JnZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVHJ1c3RlZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NVGltZVN0YW1wIHRpbWVTdGFtcDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgSW1wbGVtZW50ZWRBcz10aW1lU3RhbXBGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTUhpZ2hSZXNUaW1lU3RhbXAgdGltZVN0YW1wOwogCiAgICAgdm9pZCBpbml0RXZl
bnQoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIGJvb2xlYW4gYnViYmxlcyA9IGZhbHNlLCBvcHRp
b25hbCBib29sZWFuIGNhbmNlbGFibGUgPSBmYWxzZSk7IC8vIEhpc3RvcmljYWwuCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAppbmRleCAyYmQ5MzFmYzQ4MC4uNDgwNGMxZDA1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWYuLjNjNzg1YTdhNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZi4uNWYxYzAzYTQ1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIE1vdXNlRXZlbnQgOiBwdWJs
aWMgTW91c2VSZWxhdGVkRXZlbnQgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdl
WSwKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1v
bm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIGludCB3aGljaCgpIGNvbnN0IGZpbmFsOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CisgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAog
ICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0
IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCmluZGV4IGViYTlhN2E5MmFlLi42OTE1ZTljMzA3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNl
UmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVt
ZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTcz
MGEyMDhhLi5lMzVkMjkzYzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
UmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VSZWxh
dGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBv
aW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERl
bHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdmNzIu
LjQ1NDkzNjhiZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xp
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNpbXVsYXRlZE1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmlldywgUmVmUHRyPEV2
ZW50PiYmIHVuZGVybHlpbmdFdmVudCwgRWxlbWVudCYgdGFyZ2V0LCBTaW11bGF0ZWRDbGlja1Nv
dXJjZSBzb3VyY2UpCi0gICAgICAgIDogTW91c2VFdmVudChldmVudFR5cGUsIHRydWUsIHRydWUs
IHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGltZVN0YW1wKCkgOiBjdXJyZW50
VGltZSgpLCB2aWV3LCAwLCB7IH0sIHsgfSwKKyAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlw
ZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3Rh
bXAoKSA6IE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3LCAwLCB7IH0sIHsgfSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVG91
Y2hFdmVudC5jcHAKaW5kZXggZjVjZWM3Y2M0MGMuLjg3M2YyOTY0YmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5o
IgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNj
cmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1
ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVl
blkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
MCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWIuLmU4MTVhZjk3YWZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6OlVJRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZlbnQ6OlVJ
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1YmJsZUFy
ZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcpCiAgICAg
LCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNlZjNmYS4u
YmFhNzMxZmNmODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgVUlFdmVudCgpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqLCBp
bnQgZGV0YWlsKTsKLSAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93Kiwg
aW50IGRldGFpbCk7CisgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IFVJRXZlbnRJbml0JiwgSXNUcnVzdGVkKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCmluZGV4IGJmZWEzODdjMjEyLi4wYThlNDAzMTI0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAg
aW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAg
ICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3
LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1do
ZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyLi44MGRiMDVhMTU1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6ZXIsIElzVHJ1
cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
ZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLndo
ZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAwLCBldmVudC5n
bG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hp
bWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZl
bnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICwgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5YS4uZjFlY2I3
Y2Q2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTM3LDEyICszNywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFR5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCiAgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKLSAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCiAgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKIHsKIH0KIAotc3Rh
dGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKK3N0YXRpYyBj
b25zdCBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3MgfTsKIAogc3RhdGljIFN0cmluZyBz
dHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtNjMsNyAr
NjIsNyBAQCBpbnQgVHlwZUFoZWFkOjpoYW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwg
TWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
b3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Ci0gICAgRE9NVGltZVN0
YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CisgICAgU2Vj
b25kcyBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1lOwogICAgIG1f
bGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwogCiAgICAgVUNoYXIgYyA9IGV2ZW50
LT5jaGFyQ29kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKaW5kZXggNjEwYWM3ODI4OGIuLjA0
NmMwMDFlNTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5
cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1f
YnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5j
cHAKaW5kZXggZTM5OTZmZGVkNTAuLmU1Mjg3YzBjYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDExIEBACiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRvc2Nyb2xsIGlmIHBv
aW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50Lgotc3RhdGljIGNv
bnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0
aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgNTBtcyB0
byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9zY3JvbGxJbnRlcnZh
bCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250cm9sbGVyOjpBdXRv
c2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigqdGhpcywgJkF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAsIG1fYXV0b3Njcm9s
bFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5vQXV0b3Njcm9sbCkK
LSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7CiB9CiAKQEAgLTE0
MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVBdXRvc2Nyb2xs
UmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVuZGVyQm94PihyZW5k
ZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BUYXJn
ZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50VGltZSkK
K3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIGRyb3BU
YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRU
aW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAgc3RvcEF1dG9zY3Jv
bGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6
OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBtX2F1dG9zY3JvbGxS
ZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5cGUpIHsKICAgICBj
YXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdURjo6Y3VycmVudFRp
bWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5
KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxT
dGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1dG9zY3JvbGxSZW5k
ZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVyZW5jZVBvc2l0aW9u
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uOiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5kZXggM2NkOWRiZjMz
NzkuLjcxMzYwYmE0NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJv
bGxlci5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydEF1dG9zY3Jv
bGxGb3JTZWxlY3Rpb24oUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRp
bWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwogICAgIHZvaWQgdXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCk7Ci0gICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2Rl
KiB0YXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91YmxlIGV2ZW50
VGltZSk7CisgICAgdm9pZCB1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiB0YXJnZXROb2RlLCBjb25z
dCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2FsbFRpbWUgZXZlbnRUaW1lKTsKICNpZiBFTkFC
TEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9p
ZCBkaWRQYW5TY3JvbGxTdG9wKCk7CkBAIC03OSw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVu
ZGVyQm94KiBtX2F1dG9zY3JvbGxSZW5kZXJlcjsKICAgICBBdXRvc2Nyb2xsVHlwZSBtX2F1dG9z
Y3JvbGxUeXBlOwogICAgIEludFBvaW50IG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsUmVmZXJlbmNl
UG9zaXRpb247Ci0gICAgZG91YmxlIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwor
ICAgIFdhbGxUaW1lIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIEludFBvaW50IG1fcGFuU2Nyb2xsU3RhcnRQb3M7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRl
eCA4MDExYzQyZDYwMy4uMzIyYjQ5MjNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQuLjNmOGEyMDZiNTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNlRXZlbnQgY3JlYXRlTW91
c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICByZXR1cm4gUGxhdGZvcm1N
b3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdEYXRhLmdsb2JhbFBvc2l0
aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENs
aWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBEcmFnQ29udHJvbGxlcjo6
RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwLi5lZjA2OWM0N2U3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzID0gNTsKIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVz
aXMgPSAzOwogY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpcyA9IDM7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4x
NTsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMTUwX21zIH07
CiAjZW5kaWYKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yMTkwLDcgKzIx
OTAsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIGRyYQogCiAgICAgdmlldy0+ZGlzYWJsZUxheWVy
Rmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFjdGlvbigpOwogICAgIFJlZjxNb3Vz
ZUV2ZW50PiBtZSA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsCi0gICAgICAgIHRydWUs
IHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3
KCksCisgICAgICAgIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9u
b3RvbmljVGltZSgpLCBtX2ZyYW1lLmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAg
IDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KSwgZXZlbnQucG9zaXRpb24oKS54KCksIGV2ZW50LnBvc2l0aW9uKCkueSgpLAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGV2ZW50Lm1vdmVtZW50RGVsdGEoKS54KCksIGV2ZW50
Lm1vdmVtZW50RGVsdGEoKS55KCksCkBAIC0yOTM5LDcgKzI5MzksNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQogICAgIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgZXZlbnRUeXBlID0gUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkOwogI2VuZGlmCiAKLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdURjo6Y3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChwb3NpdGlvbiwgZ2xvYmFsUG9zaXRp
b24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogCiAgICAgcmV0dXJuIHNl
bmRDb250ZXh0TWVudUV2ZW50KHBsYXRmb3JtTW91c2VFdmVudCk7CiB9CkBAIC0zMDIxLDcgKzMw
MjEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgp
CiAgICAgYm9vbCBhbHRLZXk7CiAgICAgYm9vbCBtZXRhS2V5OwogICAgIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudCht
X2xhc3RLbm93bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwg
bV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRp
bWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbW91c2VNb3ZlZChmYWtlTW91c2VNb3ZlRXZlbnQp
OwogfQogI2VuZGlmIC8vICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCmluZGV4IDY2NjNjOGYyYTg5Li5hMGFhNTM1ZjVhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0
ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3
IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAg
IEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBt
X21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91
c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1w
OwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMy4uZjJl
MTRiY2Y3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCkBAIC02OSw3ICs2OSw3
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9CiAKLWRvdWJsZSBQZXJmb3Jt
YW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om5vdygp
IGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fdGlt
ZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24obm93KS5taWxsaXNlY29u
ZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9ybWFuY2U6OnJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4gU2Vjb25kcyhyZWR1Y2VkKTsK
IH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6bW9ub3RvbmljVGltZVRvSGln
aFJlc1RpbWVTdGFtcChNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkgY29uc3QKK3sKKyAgICBTZWNv
bmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47CisgICAgcmV0dXJuIHJlZHVj
ZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygpOworfQorCiBQZXJmb3JtYW5j
ZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkKIHsKICAgICBpZiAoIWlzPERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCmluZGV4IDlhNjBlYzBhYjJjLi5kMTQ4NmI4MzVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2UuaApAQCAtMzMsNiArMzMsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAu
aCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAj
aW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZjxQZXJmb3JtYW5jZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE1vbm90b25pY1RpbWUgdGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQZXJmb3JtYW5jZShjb250ZXh0LCB0aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2Uo
KTsKIAotICAgIGRvdWJsZSBub3coKSBjb25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5v
dygpIGNvbnN0OwogCiAgICAgUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAg
ICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRpbWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU2Vjb25kcyByZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAor
ICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbW9ub3RvbmljVGltZVRvSGlnaFJlc1RpbWVTdGFtcChN
b25vdG9uaWNUaW1lKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZD
b3VudGVkOjpyZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhh
bmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0K
aW5kZXggOGYwZmI0ZTJlYWIuLjlmOTc1OGJmMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNl
YzAzNGRmZWMuLjQyMTA2YTY4ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgeyAwX3MgfTsKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKaW5kZXggNWNi
NDc4NDcxZDYuLjUyY2I5Yzg3NDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC04NiwyOSArODcsMjcgQEAgcHVibGljOgogCiAgICAgT3B0aW9uU2V0PE1vZGlm
aWVyPiBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyczsgfQogCi0gICAgZG91
YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRp
bWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVk
OgogICAgIFBsYXRmb3JtRXZlbnQoKQogICAgICAgICA6IG1fdHlwZShOb1R5cGUpCi0gICAgICAg
ICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1F
dmVudChUeXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV90aW1l
c3RhbXAoMCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9w
dGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRm
b3JtRXZlbnQoVHlwZSB0eXBlLCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZp
ZXJzKG1vZGlmaWVycykKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewog
ICAgIH0KIAotICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCisg
ICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAgICA6
IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CkBA
IC0xMzAsNyArMTI5LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdW5zaWduZWQgbV90eXBlOwogICAg
IE9wdGlvblNldDxNb2RpZmllcj4gbV9tb2RpZmllcnM7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1w
OworICAgIFdhbGxUaW1lIG1fdGltZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApp
bmRleCA4N2JhNTc2MDhkZi4uOTdkMDNhZjkyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAg
IGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAg
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyLi5hNGU3ZDU4
OTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmgK
QEAgLTYxLDcgKzYxLDcgQEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICAg
ICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGlj
Q2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVu
dCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAg
ICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IDZkNDU4YmVmNGI4Li4yOTU4ODIxMGM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTcwLDcgKzcwLDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3Np
dGlvbiwgSW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZ
LCBmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJv
b2wgYWx0S2V5LCBib29sIG1ldGFLZXkpCi0gICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9y
bUV2ZW50OjpXaGVlbCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgMCkKKyAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCB7IH0pCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bikKICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAs
IG1fZGVsdGFYKGRlbHRhWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGQzNzllMjQ3NGQxLi4wYjJiMjgxODBjNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBA
IC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Q2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAot
ICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVs
dGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAt
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9t
ZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3Jv
bGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2Np
dHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAg
ICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0
YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAg
ICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZl
bG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTQuLmE1
ZTY4NTNhZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50
SGFuZGxlckdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRI
YW5kbGVyR0xpYi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1jb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVs
YXkgeyAwX3MgfTsKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNv
bnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKaW5kZXggYzJhYTlkYzAxZjcuLjQzZGYyMzAz
ZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3Rr
Ojpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5
WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdp
bigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRp
bWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGlt
ZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRl
VmVsb2NpdHkoKQogCiAgICAgbV9zY3JvbGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4g
RmxvYXRQb2ludChhY2N1bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3Vt
RGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9p
bnQoYWNjdW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3Vt
RGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBT
Y3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tp
bmV0aWNBbmltYXRpb24tPnN0b3AoKTsKIAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxN
YXRjaGluZyhbJmV2ZW50XSAoUGxhdGZvcm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29s
IHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0
YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7
CisgICAgICAgIHJldHVybiAoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFt
cCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQu
aXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3
MS4uNDhjODQwMzMyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQg
IldBS0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93
c0tleWJvYXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8
d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBA
QCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQp
CiAgICAgewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAg
IG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxs
VGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQp
OwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7
CkBAIC0xMDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9
PSBXZWJFdmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50
OjpXaGVlbDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9p
bnRGb3JFdmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2lu
dEZvckV2ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAg
bV90eXBlID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6Oktl
eVVwIDogUGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9k
aWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1l
KCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1f
dGV4dCA9IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVu
dC5jaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00NzUsNyArNDc1LDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgbV90eXBlID0gdG91Y2hFdmVudFR5cGUoZXZlbnQpOwogICAgICAg
ICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1l
c3RhbXAgPSBldmVudC50aW1lc3RhbXA7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9nZXN0dXJlU2Nh
bGUgPSBldmVudC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZl
bnQuZ2VzdHVyZVJvdGF0aW9uOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGF0
Zm9ybVRvdWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50UG9pbnQg
bG9jYXRpb24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBtX3RpbWVz
dGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5v
dygpOwogICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAgICBtX2dl
c3R1cmVSb3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwLi5jNDBlYzIxZjEy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQgaW50IHdpbmRv
d3NLZXlDb2RlRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBrZXlGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVG
b3JLZXlFdmVudChOU0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2ZW50VGltZVN0
YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBn
ZXRXaGVlbEV2ZW50RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRh
WSwgQk9PTCYgY29udGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZl
bnQoTlNFdmVudCAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNC4uNzk0MWNkNmM0ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05T
RXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8
d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2Fj
aGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0
dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZl
bnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsK
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFs
U2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2
YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlN2Q0MWM3MTAzOS4uYWE5OTgwYzM0
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFy
Z3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25v
dG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29k
ZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRp
bWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsK
K30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZv
aWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZk
Mzk3NDEzLi4wOGMzODM5MGI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTQzLDYgKzQzLDcgQEAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3Mg
TW9ub3RvbmljVGltZTsKIGNsYXNzIFNlY29uZHM7CitjbGFzcyBXYWxsVGltZTsKIH0KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMTYyLDYgKzE2MywxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdURjo6TW9ub3RvbmljVGltZT4gewogICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgV1RGOjpNb25vdG9uaWNUaW1lJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdURjo6V2FsbFRpbWU+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFdURjo6V2FsbFRpbWUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdURjo6V2FsbFRpbWUmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V1RGOjpTZWNvbmRzPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6OlNlY29uZHMmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdURjo6U2Vjb25kcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDUwN2JjMTY2
Mjg5Li41YTA4NmY5N2I4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAtMjgsMTcg
KzI4LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgor
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDx1aW50MzJf
dD4oTm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJzKDApCi0gICAgLCBtX3RpbWVzdGFtcCgwKQog
ewogfQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKHR5cGUpCiAg
ICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAyMTAxODZkYzBmZC4uMmQ0NTlmNmExMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1
LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGlt
ZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAg
IFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBA
IHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAg
dWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFt
cDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6
CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNl
RXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9h
dCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50
IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZl
bnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEg
QEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVu
dChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0
YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBk
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBi
b29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lz
ZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2Vi
V2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwg
UGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJs
aWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNT
eXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMs
IGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAg
V2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50
IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0
LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
LCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0
aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJv
b2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0
IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3
IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1
YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVu
dDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxv
YXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVu
dChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywg
V2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNH
ZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Rv
dWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBA
IC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3Vj
aEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAg
ICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25z
dCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5
Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTMuLjBjZjI3MTk5NjIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApAQCAtMzcsNyArMzcsNyBAQCBXZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KCkKIAogI2lmIFVTRShBUFBLSVQpCiAKLVdl
YktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiBjb21tYW5kcywgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAp
CitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAs
IG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAg
LTYyLDcgKzYyLDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQTEFURk9STShH
VEspCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50
IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8
U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxL
ZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlm
aWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRU
ZXh0KHRleHQpCkBAIC04Myw3ICs4Myw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJk
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2Vs
aWYgUExBVEZPUk0oSU9TKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtl
eUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFs
S2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBh
ZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJF
dmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAg
ICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKQEAgLTEwNiw3ICsxMDYsNyBAQCBX
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbHNlCiAKLVdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2Vi
S2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29k
ZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5
cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3Vu
bW9kaWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2
ZW50LmNwcAppbmRleCA4ZGE4ZDNmZTgzMy4uMGY3N2ZhZTNkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00Nyw5ICs0Nyw5IEBAIFdlYk1vdXNlRXZlbnQ6Oldl
Yk1vdXNlRXZlbnQoKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotV2ViTW91c2VFdmVudDo6V2Vi
TW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3Np
dGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0
IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3lu
dGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKK1dlYk1vdXNl
RXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWND
bGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlw
ZSkKICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9u
IGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBj
bGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUg
Zm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCitXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRh
WCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xp
Y2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKICNlbmRpZgogICAgIDogV2ViRXZlbnQodHlwZSwg
bW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX2J1dHRvbihidXR0b24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCmluZGV4IGI5YWFjYmFmNmU3Li43YWVhMGU3M2Q5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2Vi
RXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBv
aW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAg
ICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZC4uNGUxM2U4OTY1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsgICAgCiAKLVdlYldo
ZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0
YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6Oldl
YldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IElu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxv
YXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9i
YWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTUwLDcgKzUwLDcgQEAgV2ViV2hlZWxFdmVu
dDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9h
dFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlv
bkludmVydGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJv
b2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUm
IHdoZWVsVGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFz
UHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2Jh
bFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpAQCAtNjcsNyArNjcsNyBAQCBXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludAogICAgIEFTU0VSVChpc1doZWVsRXZlbnRUeXBlKHR5cGUpKTsKIH0KICNlbGlm
IFBMQVRGT1JNKEdUSykKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
Y29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFz
ZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1f
cG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCA2
OGQ2ZDM4ODU5YS4uYmNlYTMyOWQyMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9X
ZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBp
bnQgY3UKICAgICAgICAgICAgICAgICAgICAgICAgICAwIC8qIGRlbHRhWiAqLywKICAgICAgICAg
ICAgICAgICAgICAgICAgICBjdXJyZW50Q2xpY2tDb3VudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
Z2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKGdka19ldmVudF9nZXRfdGltZShldmVudCkpKTsKIH0KIAog
V2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3Qg
R2RrRXZlbnQqIGV2ZW50KQpAQCAtMjEwLDcgKzIxMCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2Vi
V2hlCiAgICAgICAgIG1vbWVudHVtUGhhc2UsCiAgICAgICAgIFdlYldoZWVsRXZlbnQ6OlNjcm9s
bEJ5UGl4ZWxXaGVlbEV2ZW50LAogICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0g
ICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJLZXlib2Fy
ZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtF
dmVudCogZXZlbnQsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29tcG9zaXRp
b25SZXN1bHRzLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKQpAQCAtMjI3LDcgKzIyNyw3IEBA
IFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50
KGNvbnN0IEdka0V2ZW50KiBldmVudCwKICAgICAgICAgV1RGTW92ZShjb21tYW5kcyksCiAgICAg
ICAgIGlzR2RrS2V5Q29kZUZyb21LZXlQYWQoZXZlbnQtPmtleS5rZXl2YWwpLAogICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVu
dCkpOworICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1l
KGV2ZW50KSkpOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTI0OSw3ICsyNDks
NyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQsIFZlY3RvcgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNo
UG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpKTsKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRz
KSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2Rr
X2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogI2Vsc2UKICAgICByZXR1cm4gV2ViVG91Y2hFdmVu
dCgpOwogI2VuZGlmIC8vIEdUS19BUElfVkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCmluZGV4IDY4ZTBlNmNhZmRmLi43
ZmM3NzdlMWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdl
YlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdl
YlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50
OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50KQogICAg
IDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50
VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCksCi0g
ICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQp
LAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVudENv
b3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNfUE9URU5U
SUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1
OWJkYWU3Li45MGZiYzI4YTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2Vi
SU9TRXZlbnRGYWN0b3J5Lm1tCkBAIC04NSw3ICs4NSw3IEBAIFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudCBXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoOjpXZWJFdmVu
dCAqCiAgICAgICAgIHVubW9kaWZpZWRUZXh0ID0gdGV4dDsKICAgICB9CiAKLSAgICByZXR1cm4g
V2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50KHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXks
IGNvZGUsIGtleUlkZW50aWZpZXIsIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVh
bEtleUNvZGUsIG1hY0NoYXJDb2RlLCBhdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0ZW1LZXks
IG1vZGlmaWVycywgdGltZXN0YW1wKTsKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJLZXlib2FyZEV2
ZW50KHR5cGUsIHRleHQsIHVubW9kaWZpZWRUZXh0LCBrZXksIGNvZGUsIGtleUlkZW50aWZpZXIs
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgbmF0aXZlVmlydHVhbEtleUNvZGUsIG1hY0NoYXJDb2Rl
LCBhdXRvUmVwZWF0LCBpc0tleXBhZCwgaXNTeXN0ZW1LZXksIG1vZGlmaWVycywgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKHRpbWVzdGFtcCkpOwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVF
dmVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZl
bnRNYWMubW0KaW5kZXggM2I1NWNlODA5MmYuLjBjNDViZmZiMWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTMx
LDcgKzMxLDcgQEAKICNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZl
bnQuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50
VGltZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjMsNyArNjMsNyBAQCBOYXRpdmVXZWJHZXN0dXJlRXZl
bnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp2aWV3KQog
ICAgIDogV2ViR2VzdHVyZUV2ZW50KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JOU0V2ZW50KGV2
ZW50KSwKICAgICAgICAgc3RhdGljX2Nhc3Q8TW9kaWZpZXJzPigwKSwKLSAgICAgICAgZXZlbnQu
dGltZXN0YW1wLAorICAgICAgICBXZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVu
dCksCiAgICAgICAgIFdlYkNvcmU6OkludFBvaW50KHBvaW50Rm9yRXZlbnQoZXZlbnQsIHZpZXcp
KSwKICAgICAgICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZU1hZ25pZnkgPyBldmVudC5tYWdu
aWZpY2F0aW9uIDogMCwKICAgICAgICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJvdGF0ZSA/
IGV2ZW50LnJvdGF0aW9uIDogMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRG
YWN0b3J5Lm1tCmluZGV4IDBkYjNiZThjNjQ3Li45ZDg1NTk0YTM2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2Vi
TW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAq
ZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsK
ICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAgICAgV2Vi
RXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0g
ICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAg
ICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBp
bnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51VHlwZUZv
ckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldo
ZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2
ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2Rp
ZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0
aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcw
KGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgICAgPSBl
dmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVs
RXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2Jh
bFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlj
a3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3Jv
bGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBi
b29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAg
ICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkg
aXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2Rp
ZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1w
ICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1
dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChl
dmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9u
J3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAg
ICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNS4uYjZmOWM2
OGRiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHZXN0dXJlRXZlbnQg
OiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYkdlc3R1cmVFdmVudCgpIHsgfQot
ICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgZmxvYXQg
Z2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViR2VzdHVyZUV2ZW50
KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxv
YXQgZ2VzdHVyZVJvdGF0aW9uKQogICAgICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywg
dGltZXN0YW1wKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICwgbV9n
ZXN0dXJlU2NhbGUoZ2VzdHVyZVNjYWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2Vi
RXZlbnRGYWN0b3J5LmNwcAppbmRleCBlMGFjNmVmODVhOS4uOTQ3NDEzMDY2MzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC04MSw3ICs4MSw3
IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hCiAgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmlu
Zywgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAogICAgICAgICB3cGVf
aW5wdXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVy
X2dldF9zaW5nbGV0b24oKSwgZXZlbnQpLAogICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwKLSAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVu
dC0+dGltZSk7CisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQpAQCAtMTE5LDcgKzExOSw3IEBAIFdl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVuCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZl
bnQtPngsIGV2ZW50LT55KTsKICAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0
b3IpOwogICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRpb24sIHBv
c2l0aW9uLAotICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVu
dDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZl
bnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQpAQCAtMTU0LDcgKzE1NCw3IEBAIFdlYldoZWVs
RXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5w
dXRfYXhpc19ldmVudCoKICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwg
ZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAg
ICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRp
b24sCi0gICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBp
eGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50
LT50aW1lKTsKKyAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9s
bEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwg
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIHN0YXRpYyBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQ
b2ludChpbnQgbWFpbkV2ZW50SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
cmF3KiBwb2ludCkKQEAgLTIwOSw3ICsyMDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50Kgog
ICAgICAgICAgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRz
KSwgV2ViRXZlbnQ6Ok1vZGlmaWVycygwKSwgZXZlbnQtPnRpbWUpOworICAgIHJldHVybiBXZWJU
b3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJz
KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDVkZjNkZmMz
ZTZlLi4wN2VkYWJmYjZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwx
NyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChw
YWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xp
Y2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVy
cywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBh
Z2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9p
bnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9u
LCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAg
ICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRp
b24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1l
KSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsK
KyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlv
biksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVu
ZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXgg
YWZjZmZhNTE3NDUuLjg2ZmUzNmIxZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3IEBAIGJvb2wg
UERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkK
IHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVGcmFtZSgpLT52
aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNU
b1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50OjpNb3Vz
ZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBjb250ZW50
c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwg
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7Cisg
ICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50
OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwg
c3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpub3coKSwgV2Vi
Q29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1lbnVFdmVudChl
dmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmUuLmVjZDU2N2ZjYzNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODk3LDcgKzg5Nyw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJFdmVudD4gUGx1Z2luVmlldzo6Y3JlYXRlV2ViRXZlbnQo
TW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkKICAgICAg
ICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OwogCi0gICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29udmVydFRv
Um9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkpKSwgZXZl
bnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2Vi
RXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgMCwgMCk7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8V2ViTW91c2VFdmVudD4odHlwZSwgYnV0dG9uLCBtX3BsdWdpbi0+Y29udmVydFRv
Um9vdFZpZXcoSW50UG9pbnQoZXZlbnQub2Zmc2V0WCgpLCBldmVudC5vZmZzZXRZKCkpKSwgZXZl
bnQuc2NyZWVuTG9jYXRpb24oKSwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2Vi
RXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgV2FsbFRpbWUgeyB9LCAwKTsKIH0KIAogdm9p
ZCBQbHVnaW5WaWV3OjpoYW5kbGVFdmVudChFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBlYWJlNjU5OTBkLi5mZjhiYjk4
MDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRo
U2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0gICAgUmVmUHRyPE1vdXNl
RXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBz
Y3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3Vt
ZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2Ny
ZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCiAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0NSwxMSAr
MjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5X
aW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51
Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8vIFNpbXVsYXRlIGEgbW91
c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJl
bnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBs
YXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5v
VGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBjb3JlUGFnZSgpLT51
c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NFdmVudCwg
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVkID8gY29u
dGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUmVsZWFz
ZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVs
ZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxU
aW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAg
Y29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91
c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2NzQsNyBA
QCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlv
biwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJu
OwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0
aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQ
b3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXAp
OwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVk
QXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3MCwxNyBA
QCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24o
aW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNp
bXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBp
bnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUp
CiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93
biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwg
cG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6
Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJN
b3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChp
bnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdL
RXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2lt
dWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQg
Y2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7
CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0
YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0
aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2Rp
ZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VF
dmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdl
YkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2lt
dWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgV2FsbFRpbWUgdGlt
ZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VN
b3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAw
LCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwgV2ViTW91c2VFdmVudDo6
Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA0MzE1NGE2MTRiOS4uYmIxZjUxMjZkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5o
PgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCkBAIC04MDYs
OSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3Nl
LgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9p
bnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAg
dm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11
bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7CisgICAgdm9p
ZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNs
aWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRl
TW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdL
RXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24o
V2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51
ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCBiY2RiMGJmMDZhMC4uZGJhZmExNWY4N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01
MjksNyArNTI5LDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhOb2RlKiBu
b2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkYKIAogICAgIFdLQmVnaW5PYnNl
cnZpbmdDb250ZW50Q2hhbmdlcyh0cnVlKTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIo
KS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91
bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOworICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIo
KS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91
bmRlZEFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpG
b3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKSk7CiAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCkt
PnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIAogICAgIFdLU3RvcE9ic2VydmluZ0NvbnRlbnRDaGFu
Z2VzKCk7CkBAIC01ODEsMTEgKzU4MSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhl
dGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOgogICAg
IGJvb2wgdGFwV2FzSGFuZGxlZCA9IGZhbHNlOwogICAgIG1fbGFzdEludGVyYWN0aW9uTG9jYXRp
b24gPSByb3VuZGVkQWRqdXN0ZWRQb2ludDsKIAotICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZy
YW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZl
bnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNr
VHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhh
bmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9p
bnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCks
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CiAgICAgaWYgKG1f
aXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZy
YW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VF
dmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0Ns
aWNrVHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigp
LmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0
ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNjM3LDcgKzYzNyw3IEBAIHZv
aWQgV2ViUGFnZTo6cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IElu
dFBvaW50JiBjbGllbnRQb3NpdGlvCiAgICAgLy8gVG8gYXVnbWVudCB0aGUgcGxhdGZvcm0gZHJh
ZyBzZXNzaW9uIHdpdGggYWRkaXRpb25hbCBpdGVtcywgZW5kIHRoZSBjdXJyZW50IGRyYWcgc2Vz
c2lvbiBhbmQgYmVnaW4gYSBuZXcgZHJhZyBzZXNzaW9uIHdpdGggdGhlIG5ldyBkcmFnIGl0ZW0u
CiAgICAgLy8gVGhpcyBwcm9jZXNzIGlzIG9wYXF1ZSB0byB0aGUgVUkgcHJvY2Vzcywgd2hpY2gg
c3RpbGwgbWFpbnRhaW5zIHRoZSBvbGQgZHJhZyBpdGVtIGluIGl0cyBkcmFnIHNlc3Npb24uIFNp
bWlsYXJseSwgdGhpcyBwZXJzaXN0ZW50IGRyYWcgc2Vzc2lvbgogICAgIC8vIGlzIG9wYXF1ZSB0
byB0aGUgd2ViIHByb2Nlc3MsIHdoaWNoIG9ubHkgc2VlcyB0aGF0IHRoZSBjdXJyZW50IGRyYWcg
aGFzIGVuZGVkLCBhbmQgdGhhdCBhIG5ldyBvbmUgaXMgYmVnaW5uaW5nLgotICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBldmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2
ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1l
Ojpub3coKSwgMCwgTm9UYXApOwogICAgIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW5k
ZWQoKTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmRyYWdTb3VyY2VF
bmRlZEF0KGV2ZW50LCBEcmFnT3BlcmF0aW9uTm9uZSwgTWF5RXh0ZW5kRHJhZ1Nlc3Npb246Olll
cyk7CiAKQEAgLTgwMyw3ICs4MDMsNyBAQCB2b2lkIFdlYlBhZ2U6Omluc3BlY3Rvck5vZGVTZWFy
Y2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiAgICAgSW50UG9p
bnQgYWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbik7CiAgICAgRnJhbWUm
IG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CiAKLSAgICBtYWluZnJhbWUuZXZlbnRI
YW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2ludCwgYWRq
dXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCAwLCBXZWJDb3JlOjpOb1RhcCkpOworICAgIG1haW5m
cmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChhZGp1c3Rl
ZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHsgfSwgMCwgV2ViQ29yZTo6Tm9UYXAp
KTsKICAgICBtYWluZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQ
bGFjZWhvbGRlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmll
d1BsYWNlaG9sZGVyLm1tCmluZGV4IDQ4YWU5Zjc5Y2I5Li5jOTE1ZmU0ZDg2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vo
b2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJOU1Zp
ZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJQREZEb2N1bWVudEV4dHJhcy5o
PgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDx3dGYv
Q3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDc5LDcgKzQ3
OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYgKiAyLjBm
OwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQgdG8gc2ltdWxh
dGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCAx
LCAwLCAwLCAwLCAwLAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5v
dygpLCAwLCAxLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAg
IDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01FdmVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQppbmRl
eCA5NWY4NGRkMjVhOC4uNzY4NTQ0ODQwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RPTS9ET01FdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRXZlbnQubW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0gKERPTVRpbWVTdGFtcCl0aW1lU3RhbXAK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJu
IElNUEwtPnRpbWVTdGFtcCgpOworICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpOwogfQogCiAtIChCT09MKWRlZmF1bHRQcmV2ZW50
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDAw
MTZjMGE0MmMwLi5mMzRkNjk1OWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCkBAIC05NjQsNyArOTY0LDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRh
U291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIHJldHVy
bjsKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJlLCBidXQg
dGhleSBzaG91bGQgYmUgcmVhbCBvbmVzIGluc3RlYWQuCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IGV2ZW50KEludFBvaW50KHdpbmRvd0xvYyksIEludFBvaW50KGdsb2JhbFBvaW50KHdpbmRvd0xv
YywgW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRC
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6
Tm9UYXApOwogICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3Vy
Y2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBlYzU3Yzg4YTZjYS4uMThlMzVh
NWJkMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERG
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcu
bW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2Vi
RnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURv
d246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZh
Y3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKICAgICAgICAgcGUu
ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAg
ICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGV2ZW50
ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9u
ICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVu
dCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6
Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321437</attachid>
            <date>2017-09-21 09:36:53 -0700</date>
            <delta_ts>2017-09-21 09:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921093652.patch</filename>
            <type>text/plain</type>
            <size>111267</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE2Y2Y1NmUwZGNjYzY2
OGRjN2E5ZWE1ZWMwMTcyMTJmOWM0ODZjZC4uYTFhZTdhOTRkOWE3YzU5MmJlYmYxYWY2ZjUzMmFk
ZjY0NGM0ZTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU3BlbGxpbmcg
YW5kIGdyYW1tYXIgZG90cyBzaG91bGQgbm90IG92ZXJsYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWRkMGM5N2Qx
ZGNkZWM1ZTA4ZGEwMDJlMjJhOTdiYTBlYmYxY2RlNS4uZWZjZjJjYWY5MzYxM2VlMjBlMTIzZGMz
NTI1YTllMDdmNzgyN2Q3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxNy0wOS0yMSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29s
dXRpb24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MzMzMzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBXYWxsVGltZSAvIE1vbm90b25pY1RpbWUgaW5zdGVhZCBvZiBkb3VibGUgdHlwZSBmb3Ig
Y2xhcml0eS4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxXYWxsVGltZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50OjpXZWJFdmVudCk6CisgICAgICAgICogU2hhcmVk
L1dlYkV2ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50Ojp0aW1lc3RhbXAgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50KToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVu
dCk6CisgICAgICAgICogU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hl
ZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZl
bnQpOgorICAgICAgICAqIFNoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKyAgICAg
ICAgKiBTaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW06CisgICAgICAgIChXZWJL
aXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAq
IFNoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViSU9TRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL05h
dGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViR2Vz
dHVyZUV2ZW50OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9tYWMv
V2ViRXZlbnRGYWN0b3J5Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViR2VzdHVyZUV2
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkdlc3R1cmVFdmVudDo6V2ViR2VzdHVyZUV2ZW50
KToKKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAg
ICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZVVwKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VN
b3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNob3dDb250ZXh0TWVudUF0UG9pbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luVmlldzo6Y3JlYXRlV2ViRXZlbnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bmF2aWdh
dGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRyYWdFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3du
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRoZXRp
Y0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGlj
ayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JE
cmFnU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omluc3BlY3Rvck5vZGVTZWFy
Y2hNb3ZlZFRvUG9zaXRpb24pOgorCiAyMDE3LTA5LTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMjIxOTQpIFtXUEVd
IExpYnJhcnkgYW5kIGV4ZWN1dGFibGUgb3V0cHV0IG5hbWVzIGJyb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDZjNDE5YjBkMDgyNWMyZjRlYTAzZWRkNWE1MmVlN2Y4MjZkMzBl
ZGYuLjFiZmJhMmMzMGVhYWVhNjg4MTNjYWQ2NDA5ZDAwMzk2OTFiZWEyM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wOS0yMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRpb24gdGlt
ZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMzMzA0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBXYWxs
VGltZSAvIE1vbm90b25pY1RpbWUgaW5zdGVhZCBvZiBkb3VibGUgdHlwZSBmb3IgY2xhcml0eS4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tOgorICAgICAgICAo
LVtXZWJQREZWaWV3UGxhY2Vob2xkZXIgc2ltdWxhdGVDbGlja09uTGlua1RvVVJMOl0pOgorCiAy
MDE3LTA4LTA5ICBZb3NoaWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5j
b20+CiAKICAgICAgICAgW1BBTF0gTW92ZSBzcGkvY29jb2EgYW5kIHNwaS9jZyBkaXJlY3Rvcmll
cyBpbnRvIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGU4YTljZDkxZDE1MWQ0
MDRjNzk5MzgxMzNkNGYwMjNmYTZiZDdjZDkuLjk0NmVkZjM2ODZiNDZjODRkMzAyZjg5OTViODFm
MTk1ZjFlM2E2NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBA
QAorMjAxNy0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM0MzMzMzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBXYWxsVGltZSAvIE1vbm90b25pY1RpbWUgaW5zdGVhZCBvZiBk
b3VibGUgdHlwZSBmb3IgY2xhcml0eS4KKworICAgICAgICAqIERPTS9ET01FdmVudC5tbToKKyAg
ICAgICAgKC1bRE9NRXZlbnQgdGltZVN0YW1wXSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RyYWdTb3VyY2VFbmRlZEF0Om9wZXJhdGlvbjpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXcubW06CisgICAgICAgICgtW1dlYlBERlZp
ZXcgUERGVmlld1dpbGxDbGlja09uTGluazp3aXRoVVJMOl0pOgorCiAyMDE3LTA5LTIwICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogV2ViVmlldyBpbmRpY2F0aW9uIGhpZ2hsaWdodHMgc3RpY2tzIGFyb3VuZCBmb3IgV2ViS2l0
TGVnYWN5IHZpZXdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNjNiMjQ2ZTdkZWNkMWNlNmM5NzJmODY5MjNiOThhNjhlNzQwNTNj
Zi4uNGRhNDQ2ODU5M2FhMTliZTYyY2FlZDdkZjkzOTY1ZjNkMWQ4ZjcwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk1Nyw2
ICsxOTU3LDcgQEAKIAkJNDYwQkI2MTYxRDBBMUJGMDAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQkI2
MTQxRDBBMUJFQzAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MENCRjM1MUQ0QkNEMEUwMDkyRTg4
RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzMxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2lu
ZG93UHJvcGVydGllcy5jcHAgKi87IH07CiAJCTQ2MENCRjM2MUQ0QkNEMEUwMDkyRTg4RSAvKiBK
U0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2MENCRjM0MUQ0QkNDRkUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3Bl
cnRpZXMuaCAqLzsgfTsKKwkJNDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNU
aW1lU3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2RTAxNkFEMUY3MkQ2MUUwMDI4MkIyQyAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzNDU5MkMxQUMy
MjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBv
d2VyT2JzZXJ2ZXJNYWMuY3BwICovOyB9OwogCQk0NjNFQjYyMjFCODc4OUUwMDA5NkVENTEgLyog
VGFnQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjNFQjYyMDFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi87
IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYyMTFCODc4OUNC
MDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovOyB9OwpAQCAtOTgzOCw2ICs5ODM5LDcgQEAK
IAkJNDZERkY0OTcxREMyNjAxMzAwQjgwQjQ4IC8qIFNoYWRvd1Jvb3RNb2RlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290TW9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2REZGNDk5MURDMjYxRjkwMEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2hhZG93Um9vdE1vZGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGRjQ5QTFEQzI2MUY5MDBCODBC
NDggLyogSlNTaGFkb3dSb290TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1NoYWRvd1Jvb3RNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTAx
NkFEMUY3MkQ2MUUwMDI4MkIyQyAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhpZ2hSZXNUaW1lU3RhbXAuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQkVBMDExQjdENEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25U
cmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlvblRy
YXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRDFFNUZCOUMy
MDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRkFGMEYxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bv
d2VyTW9kZU5vdGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTI2MjQ3LDYgKzI2MjQ5LDcgQEAKIAkJCQlCQzYwRDZFODBEMjhEODM0MDBCOTkxOEYgLyogRE9N
RXhjZXB0aW9uLmggKi8sCiAJCQkJQkM2MEQ2RUIwRDI4RDk5OTAwQjk5MThGIC8qIERPTUV4Y2Vw
dGlvbi5pZGwgKi8sCiAJCQkJQkM5QTYxNDExNDY4NTlEOTAwNjA1N0ZEIC8qIERPTUV4Y2VwdGlv
bnMuaW4gKi8sCisJCQkJNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1l
U3RhbXAuaCAqLywKIAkJCQlBODE4NUYzNjA5NzY1NzY1MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50
YXRpb24uY3BwICovLAogCQkJCUE4MTg1RjMzMDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5oICovLAogCQkJCTkzRUVDMUU5MDlDMjg3NzcwMEM1MTVEMSAvKiBET01JbXBsZW1l
bnRhdGlvbi5pZGwgKi8sCkBAIC0yNzY5OCw2ICsyNzcwMSw3IEBACiAJCQkJQkM2MEQ2RTkwRDI4
RDgzNDAwQjk5MThGIC8qIERPTUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM5OTQ3
MEMxRjUwQjYzRTAwRTlEODZCIC8qIERPTUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNCMDk3NjU3NjYwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8q
IERPTUpJVENoZWNrRE9NLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzE1MEVBNzFEQTcyMTkzMDAx
OTQwMTIgLyogRE9NSklUSGVscGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTIwMiw4ICsyOTIw
Niw4IEBACiAJCQkJOTMyQUQ3MDYxN0VGQTJDNDAwMzhGOEZGIC8qIE1haW5GcmFtZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0FFNkM5M0MxQkUwQzYwMTAwRTE5RTAzIC8qIE1haW5UaHJlYWRTaGFy
ZWRUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQzYwREI1NUNEQzAwMURCNzk0IC8q
IE1hbmlmZXN0UGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzMwOURGODA5OUU2NDkyMDA1
NkU1ODEgLyogbWFya3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTE4NjY0NTFGNzJFNUI0MDBB
MENBQjYgLyogTWFya2VyU3VicmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzMzA5REY4MDk5
RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjhDMzE0MTI2
OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDBDNjBFM0YxM0Q3NkQ3RTAwOTJBMjc1IC8qIE1hcmt1cFRva2VuaXplcklubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZBQkU3MkY1MTA1OUMxRUIwMEQ4ODhDQyAvKiBNYXRoTUxBbm5vdGF0
aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzI3Niw4ICszMzI4MCw4IEBACiAJCQkJ
N0FFNkM5M0IxQkUwQzYwMTAwRTE5RTAzIC8qIE1haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3QUU2QzkzODFCRTBDNUM4MDBFMTlFMDMgLyogTWFpblRocmVhZFNo
YXJlZFRpbWVyQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RjZCQzUwREI1NUNEQzAwMURC
Nzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzMzA5REY3MDk5
RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UxODY2NDQx
RjcyRTVCNDAwQTBDQUI2IC8qIE1hcmtlclN1YnJhbmdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ4ODhDQyAvKiBNYXRoTUxBbm5vdGF0
aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNDEwNTlDMUVCMDBEOTk5
REQgLyogTWF0aE1MRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdlZmU1
Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGltZVN0
YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5MDBl
ZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1Njc0
N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1LDcg
QEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlmICgh
ZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBw
bGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQ
b3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07
CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRsZXIo
KS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCks
IEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVu
dCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdpbGxi
ZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVudCwg
MCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQodGhp
cyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5ZS4u
ZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQu
Y3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJF
dmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5jbHVk
ZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFdmVu
dDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1c3Rl
ZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1Rv
RE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25p
Y1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5j
ZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2FuY2Vs
YWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1fY3Jl
YXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAg
ICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6RXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29s
IGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVB
cmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkKICAg
ICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxlQXJn
KQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3RlZCh0
cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAodGlt
ZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0LDcg
KzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25z
dCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShpbml0
aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21wb3Nl
ZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAs
IG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkp
KQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC0y
MTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCogdW5k
ZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50Owog
fQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNlKiBw
ZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3JtYW5j
ZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQzNDUx
YzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRP
TVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNsdWRl
ICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0
Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBA
IC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2VkKCkg
Y29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9j
cmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5kaW5n
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0aW1l
U3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0RXZl
bnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9CiAg
ICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBAIC0x
NzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3RlZCA9
IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1w
KTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5pdCYs
IElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAgLTE5
NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJyZW50
VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07CiAg
ICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9jcmVh
dGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRyPEV2
ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNmMzFj
YzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRhM2Uy
Mjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDggQEAK
ICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91YmxlIERP
TUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwg
b3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmplY3Qs
CkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0gcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRy
aWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRFdmVu
dChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlv
bmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRkMThm
MGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0NGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5
Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6
S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93
KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2
ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAo
KSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQor
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25p
Y1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRL
ZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5
RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYg
RU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAK
aW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVhN2E0
NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50
LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20uaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50
OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmllCiAg
ICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92
ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0gIWlz
TW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LAor
ICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2Fu
Y2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZp
ZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmds
b2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24o
KS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnRE
ZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcgQEAg
UmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQuZm9y
Y2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4g
TW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBp
bnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZ
LAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGlt
ZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2Ny
ZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAg
ICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3IEBA
IE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0
aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxv
Y2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5kaWYK
QEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3VzZUV2
ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0
IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0aW9u
LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXks
IHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBl
LCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZpZXcs
IGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgdmll
dywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMwMDgy
YmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5YTdi
M2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNl
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3ICsz
Myw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1
YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cq
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBzY3Jl
ZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpA
QCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAK
IHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93
KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
CiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29u
c3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAg
ICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5NjI5
Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRl
ZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9v
bCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01v
dXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1v
dmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVk
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgw
YTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYwNTkz
ZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9N
b3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNl
UmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91Ymxl
IHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25p
Y1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJ
bnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwK
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1l
bnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNiNGQ3
ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJlMDE3
ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0
ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcApA
QCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBSZWZQ
dHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENs
aWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwg
dHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1
cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQoZXZl
bnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRp
bWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5OWE0
MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hF
dmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBU
b3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJn
ZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwg
Ym9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVs
YXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBv
aW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1
ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgs
IHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZ
KSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50
UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRhODBk
OWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2FiNmFm
ODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2ZW50
OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFy
ZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBk
b3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5C
dWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3QXJn
KQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTczZDcz
ZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIzMTUz
ZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBA
IHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdp
bmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01X
aW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUxYWQ1
MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEyYmEz
MGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3Rh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00
OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhL
ZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNh
bmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50
V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywK
ICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQog
ICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0
YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2UyNzhi
NTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVudDo6
V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxp
emVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2ZW50
TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmlldywg
MCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91c2VF
dmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1w
KCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0
aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAg
ICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVh
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3ZDg0
OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4NzVm
YWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhl
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcsMTIg
KzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlw
ZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRhU291
cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQog
ewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAw
Oworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBzdGF0
aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZl
bnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAtMTsK
IAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsKLSAg
ICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGlt
ZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRp
bWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBVQ2hh
ciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2MTBh
Yzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3YmUx
ZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5
cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNp
bmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRh
U291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNU
aW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJp
bmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
QXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1ZDg3
ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICszNywx
MSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQgYXV0
b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxlbWVu
dC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGljIGNv
bnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhlIGF1
dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Nyb2xs
IGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhdXRv
c2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xsQ29u
dHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGltZXIo
KnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAgICAg
LCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlwZShO
b0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgwKQog
ewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6dXBk
YXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlzPFJl
bmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBudWxs
cHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChO
b2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRvdWJs
ZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIFdh
bGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAgICAg
IHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9zY3Jv
bGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1lID0g
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3JvbGxU
eXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlmIChX
VEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+IGF1
dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0FuZERy
b3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAgbV9h
dXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZl
cmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZvclNl
bGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oCmlu
ZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0NGRk
Yzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1
dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkludFBv
aW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHN0
b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7
CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0ZURy
YWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9u
LCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRh
cmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRp
bWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3Rh
cnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAgcHJp
dmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9zY3Jv
bGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9zY3Jv
bGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRp
bWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3JvbGxT
dGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZiZjcu
LjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAK
ICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRv
d0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGlj
CiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sg
aW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1N
b3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24s
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50
SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhh
bmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2
ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4YTIw
NmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAg
cmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBkcmFn
RGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXks
IGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJlbnRU
aW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0KIAog
RHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQmIGNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDliMDFk
MWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3NzRl
MjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzUs
NyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3QgaW50
IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJlc2lz
ID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRl
eHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFn
RGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQp
CiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAgICB2
aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9u
KCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlw
ZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9jdW1l
bnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1w
KCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVs
dFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmds
b2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24o
KS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnRE
ZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkzOSw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAg
UGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQo
cG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ss
IE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0
aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7
CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsK
IH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3Zl
RXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7CiAg
ICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtl
eSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFr
ZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3Vz
ZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
c2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwgTm9U
YXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5
LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVkKGZh
a2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMzYmVm
NjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJiZjQ4
Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBE
cmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdE
ZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxE
YXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYK
IApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25N
b3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlv
bjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMu
Ci0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1f
bW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRl
eCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1YjMy
YjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJveWVk
KCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwog
fQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0YW1w
IFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rvbmlj
VGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNvbHV0
aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBlcmZv
cm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0dXJu
IFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6
Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3RhbXAp
IGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3JpZ2lu
OworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29uZHMo
KTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlvbigp
CiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRiOWNm
ZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAi
RE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01Niw3
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4pKTsg
fQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAgIERP
TUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmlnYXRp
b24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBAIC04
Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4ZjhmM2Iw
Mzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3
LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50
KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVu
dFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0
UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRG
cmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwog
Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3Rl
ZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9z
aXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0
aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3Zl
RXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVl
c3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2Fs
bG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJv
dGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29u
dGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3Vz
ZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93
aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFu
ZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZjZGYy
NC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91
YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMgRXZl
bnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgxZDg1
ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJsaWM6
CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1f
bW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90
aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAgIDog
bV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAK
ICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUo
dHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQbGF0
Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2Rp
Zmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5
cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGltZXN0
YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5
cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtl
eSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxsVGlt
ZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1lc3Rh
bXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVyczsK
LSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMwZDk2
NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBA
IC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRf
Q09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAg
ICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBP
cHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAg
Y29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBi
b29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9u
U2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAg
IDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAg
ICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmll
ZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNl
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmlu
ZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5MjRj
MGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBG
b3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1vdXNl
RXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCwg
ZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1w
LCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCiAg
ICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9u
KQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRi
ODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkwYzE2
ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxhdGZv
cm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3aGVl
bFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wg
c2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAgICAg
ICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3RybEtl
eSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1F
dmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkKICAg
ICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb24o
Z2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3OWUy
NDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1NDli
YWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9s
bENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVu
dHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNl
ID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1T
Y3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9
IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsK
KyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNl
Y29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1w
OwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVz
cykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURl
bHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAg
ICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0
YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5z
ZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAg
ICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3Rh
bXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxF
dmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVs
RXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVz
dGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
OwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRs
ZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xp
Yi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4uYTVl
Njg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0OSw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29u
c3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29u
ZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBF
dmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZl
bnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVu
dEd0ay5jcHAKaW5kZXggM2IwZTU5MDZmY2Q1MDJjZjljNWQ3ZGNhYTllYzdhMmQ5YWMyM2M4ZS4u
NGU2ZDc5MjUyMGM0ODQ3MTc3OGM5OTMzZWE2MjU0OTIxNDcwYWY3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKQEAg
LTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlIDxnZGsvZ2Rr
Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQz
LDcgKzQzLDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2RrRXZl
bnRTY3JvbGwqIGV2ZW50KQogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAKICAg
ICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKLSAgICBtX3RpbWVzdGFtcCA9IGN1cnJl
bnRUaW1lKCk7CisgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICBpZiAo
ZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01BU0spCiAgICAgICAgIG1fbW9kaWZpZXJzIHw9IE1v
ZGlmaWVyOjpTaGlmdEtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxBbmltYXRvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Ny
b2xsQW5pbWF0b3JHdGsuY3BwCmluZGV4IGMyYWE5ZGMwMWY3NjdlZWE5OGUzMTNhODY0YTZhMjc4
MmJhOGYwNGIuLjQzZGYyMzAzZmQ4NzExMGQwMDE4OTk3NWM5OWExZmViYzQ0M2IyNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcApA
QCAtMTEyLDggKzExMiw4IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3JHdGs6OmNvbXB1dGVW
ZWxvY2l0eSgpCiAgICAgaWYgKG1fc2Nyb2xsSGlzdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICBkb3VibGUgZmlyc3QgPSBtX3Njcm9sbEhpc3RvcnlbMF0udGltZXN0
YW1wKCk7Ci0gICAgZG91YmxlIGxhc3QgPSBtX3Njcm9sbEhpc3RvcnkucmJlZ2luKCktPnRpbWVz
dGFtcCgpOworICAgIGF1dG8gZmlyc3QgPSBtX3Njcm9sbEhpc3RvcnlbMF0udGltZXN0YW1wKCk7
CisgICAgYXV0byBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsK
IAogICAgIGlmIChsYXN0ID09IGZpcnN0KQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTI0LDcg
KzEyNCw3IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3JHdGs6OmNvbXB1dGVWZWxvY2l0eSgp
CiAKICAgICBtX3Njcm9sbEhpc3RvcnkuY2xlYXIoKTsKIAotICAgIHJldHVybiBGbG9hdFBvaW50
KGFjY3VtRGVsdGEueCgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSwgYWNjdW1EZWx0YS55KCkg
KiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURl
bHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCkudmFsdWUoKSwgYWNjdW1EZWx0YS55KCkg
KiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCkpOwogfQogCiBib29sIFNjcm9sbEFuaW1h
dG9yR3RrOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQp
CkBAIC0xMzIsNyArMTMyLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogICAgIG1fa2luZXRpY0FuaW1h
dGlvbi0+c3RvcCgpOwogCiAgICAgbV9zY3JvbGxIaXN0b3J5LnJlbW92ZUFsbE1hdGNoaW5nKFsm
ZXZlbnRdIChQbGF0Zm9ybVdoZWVsRXZlbnQmIG90aGVyRXZlbnQpIC0+IGJvb2wgewotICAgICAg
ICByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhldmVudC50aW1lc3RhbXAoKSAtIG90
aGVyRXZlbnQudGltZXN0YW1wKCkpID4gc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZDsKKyAgICAgICAg
cmV0dXJuIChldmVudC50aW1lc3RhbXAoKSAtIG90aGVyRXZlbnQudGltZXN0YW1wKCkpID4gc2Ny
b2xsQ2FwdHVyZVRocmVzaG9sZDsKICAgICB9KTsKIAogICAgIGlmIChldmVudC5pc0VuZE9mTm9u
TW9tZW50dW1TY3JvbGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCmluZGV4IDA2MmY5ODIzNzcxYmRmYTM2MDI5
ZTI1Njg5ZjNkOGYxNjM5MjMxNDYuLjQ4Yzg0MDMzMmI4OWJmYTkyNjEwMTc2MGI3ZmIwODFjMjEw
ZDU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZv
cm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIldBS0FwcEtp
dFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tleWJvYXJk
Q29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxU
aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAgICAgewog
ICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1fdGltZXN0
YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93
KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAgICAg
ICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0xMDYs
NyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBXZWJFdmVu
dFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsK
LSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRGb3JFdmVu
dChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZvckV2ZW50
KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV90eXBlID0g
KGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDogUGxh
dGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJzRm9y
RXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAg
ICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fdGV4dCA9IGV2
ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVudC5jaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00NzUsNyArNDc1LDcgQEAgcHVibGljOgogICAgIHsK
ICAgICAgICAgbV90eXBlID0gdG91Y2hFdmVudFR5cGUoZXZlbnQpOwogICAgICAgICBtX21vZGlm
aWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBl
dmVudC50aW1lc3RhbXA7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSBldmVu
dC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQuZ2VzdHVy
ZVJvdGF0aW9uOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRvdWNo
RXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50UG9pbnQgbG9jYXRpb24p
CiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1
cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAg
ICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAgICBtX2dlc3R1cmVSb3Rh
dGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwZjRjMTg2N2I5NmU1OTQ5MjE5NTlj
NGY2YzAyNmYuLmM0MGVjMjFmMTJhMTc4ZGY4OGU5YmYyOTA0YTBkN2ZkNzc5NWI5MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIFdFQkNPUkVfRVhQT1JUIGludCB3aW5kb3dzS2V5Q29k
ZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5SWRlbnRp
ZmllckZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5Rm9y
S2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb2RlRm9yS2V5RXZl
bnQoTlNFdmVudCAqKTsKLVdFQkNPUkVfRVhQT1JUIGRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNl
MTk3MChOU0V2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgZXZlbnRUaW1lU3RhbXBT
aW5jZTE5NzAoTlNFdmVudCAqKTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0V2hlZWxF
dmVudERlbHRhcyhOU0V2ZW50ICosIGZsb2F0JiBkZWx0YVgsIGZsb2F0JiBkZWx0YVksIEJPT0wm
IGNvbnRpbnVvdXMpOwogV0VCQ09SRV9FWFBPUlQgVUludDgga2V5Q2hhckZvckV2ZW50KE5TRXZl
bnQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0KaW5kZXggMmIxODIyNGY4MzQ5ZmZiYjZlM2MxOGE4ZDE1NDE1NDVk
OWMyYWI2Mi4uNzk0MWNkNmM0ZGQyODI4YzZkNmY3MzljMGIyNTJhNDc5OGM1Njk5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNFdmVudFNQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDx3dGYvQVND
SUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtNjE3LDkgKzYxOCw5IEBAIHN0YXRpYyBDRlRpbWVJbnRlcnZhbCBjYWNoZWRTdGFy
dHVwVGltZUludGVydmFsU2luY2UxOTcwKCkKICAgICByZXR1cm4gc3lzdGVtU3RhcnR1cFRpbWU7
CiB9CiAKLWRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKK1dh
bGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5
NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNl
MTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sIGlz
S2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5ZDE5MzY0MmIxMjlhMjI4ZDll
ZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5YTJkZjk1YTRmMjhjMTkxZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3Rm
L1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3VtZW50
Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9uaWNU
aW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8V2Fs
bFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCit7
CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30KKwor
Ym9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdh
bGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJn
dW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29u
ZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3NDEz
NGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRmZTE0
MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90
b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6
OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4OWVk
NWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5N2I4Mzk0YThjODg0ZmY2MGZmNzk1
N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC0yOCwxNyArMjgs
MTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0PHVpbnQzMl90PihO
b1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0YW1wKDApCiB7CiB9
CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAs
IG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkYzBmNjYyMDU0MmJhZGFhYzJhNjNk
YzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNlZTY1ZjViMmJlMzk3OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEy
IEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdl
YkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWlu
dDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsK
KyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xh
c3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2
ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnRO
dW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAg
IFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5
cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAg
cHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhh
c2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6
CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJv
b2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9h
cmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZl
VmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBA
IHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQg
Z2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00
NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2Vi
RXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2
ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBj
b25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9h
cmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFkMmFkMmYxNzRjNDQ3MmI1MjZhMjZm
Yy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2ZTFjZWU3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2ViS2V5
Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2Rl
LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQor
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFy
Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBh
ZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBt
X3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC02
Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0oR1RL
KQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0
cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4
dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlm
IFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtl
eUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAp
CitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtl
eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZl
bnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAs
IG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXli
b2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVu
bW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBi
b29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1v
ZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVu
dC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIzODI3OWYxOWRhYTA1ZjM4OS4uMGY3
N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VFdmVudDo6V2Vi
TW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2ZW50OjpXZWJN
b3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQg
ZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50
aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQorV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBl
KQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBm
b3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTdkMDdhZDljOTdmMzNmNTMw
MDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3NzcxMzdkNDI3MjNiMDcxZWRkZWExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2Vi
RXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBv
aW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAg
ICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1
MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNjNzNjYzhmMjNhNTI0NTlmN2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1XZWJX
aGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlm
aWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xv
YmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVsRXZl
bnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6Oldl
YldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IElu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxv
YXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBi
b29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXpl
JiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9i
YWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxFdmVu
dDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAjZWxp
ZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhh
c2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9h
dFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBt
X3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rvcnku
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXgg
NjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFkZDVkYi4uYmNlYTMyOWQyMjgzY2E5
ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3Rr
L1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQog
CiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcgQEAgV2ViV2hlZWxFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBX
ZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6U2Ny
b2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwK
LSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYktleWJv
YXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdk
a0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3Np
dGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI3LDcg
QEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwKICAg
ICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAgICAg
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2
ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3Rp
bWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjQ5LDcgKzI0
OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50
KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9nZXRfdGltZShl
dmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2lu
dHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhn
ZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KaW5kZXggNjhlMGU2Y2FmZGY1
ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3ZTFmMjBmODI4OWExOTQ1ZjM4YmVm
Y2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2
ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2
ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3VjaEV2
ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50KQog
ICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3VjaEV2
ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCks
Ci0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZl
bnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVu
dENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNfUE9U
RU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDRl
MDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4NWUuLjkwZmJjMjhhNjc4Mzg1NTYw
YzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2Vi
RXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9h
cmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlm
aWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFy
Q29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0
dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVy
ZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2EyYTk4NjIwM2UwMTgyYjY1NjUxOWEy
MzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZkYzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpA
QCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdlc3R1
cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1
cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZp
ZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5TRXZl
bnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBl
dmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcw
KGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVudCwg
dmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50
Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUm90
YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJF
dmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2MzI5ODVmZTNlYTIyMTViNDhjNmFm
YzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYxM2UxZDYxM2ViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcg
QEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNF
dmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVs
dGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsK
ICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51
VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBA
IFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRv
dWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdl
YldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50
KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdo
ZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
LCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRp
bWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEK
ICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVu
dCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0
ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGlt
ZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwor
ICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNl
MTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0g
d2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50
ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNWVj
ODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4ZGIwM2E1YTVmYmI2OTViMmJjMWNj
MzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2Vz
dHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VzdHVy
ZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZlbnQo
KSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24s
IGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdlc3R1
cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2Nh
bGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAg
ICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
d3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTk0YTcyYjIyZWVkZTA3MDY4
OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTgx
LDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktl
eWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCiAgICAg
ICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tl
eV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAgICAgICAgIGV2ZW50LT5rZXlDb2Rl
LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVu
dCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xMTksNyArMTE5
LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3Np
dGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VT
Y2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3Np
dGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7CisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2
ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTU0LDcgQEAg
V2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2
ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFj
dG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9u
LCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNj
cm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigw
KSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogc3Rh
dGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVG
b3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3IEBAIFdlYlRvdWNoRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRl
cykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7CisgICAgcmV0
dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpN
b2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXgg
NWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0YzBiZi4uMDdlZGFiZmI2ZmM3ZmZj
YWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xp
Y2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAg
IHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0
aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNp
bXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQs
IG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBX
S0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0
b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNl
VXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9p
bnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0g
ICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24p
LCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2lu
dChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2
NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdmYWNlZDU0OGRlY2FhMS4uODZmZTM2
YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTc2LDcgKzE1NzYs
NyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludChjb25zdCBJbnRQb2lu
dCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB3ZWJGcmFtZSgpLT5jb3Jl
RnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNvbnRlbnRzUG9pbnQgPSBmcmFtZVZpZXct
PmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAgV2ViTW91c2VFdmVudCBldmVudChXZWJF
dmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2lu
dCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlm
aWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwgV2Vi
TW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAs
IDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAgICAgcmV0dXJuIGhhbmRsZUNvbnRleHRN
ZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2VhYmZlYmVlZDBhNmU3NWU4NmM2MmUwYjRh
MmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4ZjZlNjg0NTM1ODEyM2YyOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC04
OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50PiBQbHVnaW5WaWV3OjpjcmVh
dGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoZXZlbnQubWV0YUtl
eSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CiAKLSAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1Z2lu
LT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNl
dFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCAwLCAwKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1Z2lu
LT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNl
dFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCBXYWxsVGltZSB7IH0sIDAp
OwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50JiBldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGVhYmU2NTk5
MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4uZmY4YmI5ODA0MDUwMWMxOTIwMDQwM2Nl
NGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVU
b1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRv
CiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0gICAg
UmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIsIHNp
bmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2lu
dC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2
ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0
cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBv
aW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2lu
dC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpA
QCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1l
bnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCkt
PmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8vIFNp
bXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9U
YXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50
LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ss
IFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5k
bGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBj
b3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNl
UHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUgPSBo
YW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50
VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpO
b1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxl
YXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0
LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBj
bGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlz
IGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQ
b3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsK
KyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRq
dXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgV2Vi
Q29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJh
Z1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwx
NyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0
KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxh
dGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lk
IFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZl
bnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24p
LCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdl
Yk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVs
YXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNs
aWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQg
V2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6
Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9z
aXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3Vz
ZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQg
V2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwg
V2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VF
dmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0
aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwgV2Vi
TW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3ZDcyNzQ5YjQxMWJkNTk3MjliYjdiYmI3
Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFhZTQ0ZGQ3NDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBACiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0o
R1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgLy8gRm9yIHRl
c3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdl
YkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91Ymxl
IHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6Oklu
dFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwot
ICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgZG91YmxlIHRp
bWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAg
dm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0
ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBXYWxsVGltZSk7CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRNZW51U2hvd2luZygpIHsgbV9pc1Nob3dp
bmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYmNkYjBiZjA2YTBjYTljMzlmZjVmM2M1
YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3N2E3YTc1ZmFkZGYzODVkZjQyNDM4OGJl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRp
Y0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RgogCiAg
ICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKHRydWUpOwogCi0gICAgbWFpbmZyYW1l
LmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1
c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1l
LmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1
c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICBtYWluZnJh
bWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgV0tTdG9wT2JzZXJ2
aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSArNTgxLDExIEBAIHZvaWQgV2ViUGFnZTo6
Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0
IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVkID0gZmFsc2U7CiAgICAgbV9sYXN0SW50
ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3RlZFBvaW50OwogCi0gICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywg
c3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3Vu
ZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUp
KTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQo
UGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUu
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50
KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlj
a1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02Mzcs
NyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nl
c3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8KICAgICAvLyBUbyBhdWdtZW50IHRo
ZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRpdGlvbmFsIGl0ZW1zLCBlbmQgdGhlIGN1
cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBkcmFnIHNlc3Npb24gd2l0aCB0aGUg
bmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nlc3MgaXMgb3BhcXVlIHRvIHRoZSBVSSBw
cm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhlIG9sZCBkcmFnIGl0ZW0gaW4gaXRzIGRy
YWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNpc3RlbnQgZHJhZyBzZXNzaW9uCiAgICAg
Ly8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hpY2ggb25seSBzZWVzIHRoYXQgdGhl
IGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEgbmV3IG9uZSBpcyBiZWdpbm5pbmcu
Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3Np
dGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdPcGVyYXRpb25Ob25lLCBNYXlFeHRlbmRE
cmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViUGFnZTo6aW5z
cGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9u
KTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKIAotICAgIG1h
aW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChhZGp1
c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIDAsIFdlYkNvcmU6Ok5vVGFw
KSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3Vz
ZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeyB9LCAwLCBX
ZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlm
TmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZp
ZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2Vi
Vmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggNDhhZTlmNzljYjkyNDQwNTI0YTdm
ZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4NjdlMjI3MTNjZmQ0NTFlMzJkODM3OWY5ODNj
MWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZW
aWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9X
ZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJQREZE
b2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlZpZXdQcml2YXRlLmg+
Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4K
IApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNF
VCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4g
ZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91
c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJy
ZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBN
b3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1v
bm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWViYmE0MjJkM2JkYzgwZDE0ZmEzMDhmMjFh
Li43Njg1NDQ4NDBmMmFhNjIwOTlhNzM2MTk3NzQ1MDUzNTUxN2I0YWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01UaW1l
U3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+dGlt
ZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9P
TClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1Li5m
MzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0
aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmll
ciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xv
YmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlv
bik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVj
NTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0ZjlhMDQw
NTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wg
aXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2Fz
ZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBl
ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2
ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50
VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZl
bnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRy
dWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwg
MCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMGY5NWMzMjgzYjhiNmJlMzIwNTk2
NjFjMWEyNDhmOGFmNzY3M2IxNi4uYzliZDI2Y2JkOGEyMzQyNTYzN2VmZGY5MmZkMDhkNTA5MDQy
YjlmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ug
aGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbXBvcnQgdGVzdCBjb3ZlcmFnZSBmcm9tIFdQVC4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorCiAy
MDE3LTA5LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVmlk
ZW8gZXJyb3JzIHNob3VsZCBiZSBpbnN0YW5jZXMgb2YgRXJyb3IKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGln
aC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWIxMGU4NzM1YWIyNDA0ZDBm
YWI3ZGYzNzRhNTJjNmUzNmZjMzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1o
aWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitQQVNTIENvbnN0
cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5k
IGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENv
bnN0cnVjdGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRp
b24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQ
QVNTIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29s
dXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkg
CitGQUlMIENvbnN0cnVjdGVkIEdhbWVwYWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2gg
cmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5u
b3coKSBOb3QgZW5vdWdoIGFyZ3VtZW50cworUEFTUyBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRp
bWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUg
b3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1w
LWhpZ2gtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNWFhMDE0Y2ZiNzlkMmUwNWRjMGFjOGUxYjVlNzZkMTczMjlmNjAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24uaHRtbApAQCAt
MCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKworPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgorJ3VzZSBzdHJpY3QnOworZm9yIChsZXQgZXZlbnRUeXBlIG9mIFtNb3VzZUV2ZW50LCBLZXli
b2FyZEV2ZW50LCBXaGVlbEV2ZW50LCBHYW1lcGFkRXZlbnQsIEZvY3VzRXZlbnRdKSB7CisgICAg
dGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IGJlZm9yZSA9IHBlcmZvcm1hbmNlLm5vdygp
OworICAgICAgICBsZXQgZSA9IG5ldyBldmVudFR5cGUoJ3Rlc3QnKTsKKyAgICAgICAgbGV0IGFm
dGVyID0gcGVyZm9ybWFuY2Uubm93KCk7CisgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1
YWwoZS50aW1lU3RhbXAsIGJlZm9yZSwgIkV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgZ3JlYXRl
ciB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBiZWZvcmUgaXRzIGNyZWF0
aW9uIik7CisgICAgICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoZS50aW1lU3RhbXAsIGFmdGVy
LCAiRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkg
dGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiIpOworICAgIH0sIGBDb25zdHJ1Y3Rl
ZCAke2V2ZW50VHlwZS5wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZX0gdGltZXN0YW1wIHNob3Vs
ZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVy
Zm9ybWFuY2Uubm93KClgKTsKK30KKzwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321440</attachid>
            <date>2017-09-21 09:44:49 -0700</date>
            <delta_ts>2017-09-21 11:53:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921094448.patch</filename>
            <type>text/plain</type>
            <size>111001</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVs
RXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxF
dmVudEd0ay5jcHAKaW5kZXggM2IwZTU5MDZmY2Q1MDJjZjljNWQ3ZGNhYTllYzdhMmQ5YWMyM2M4
ZS4uNGU2ZDc5MjUyMGM0ODQ3MTc3OGM5OTMzZWE2MjU0OTIxNDcwYWY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0ay5jcHAK
QEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKICNpbmNsdWRlIDxnZGsv
Z2RrLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQzLDcgKzQzLDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoR2Rr
RXZlbnRTY3JvbGwqIGV2ZW50KQogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBkZWx0YSA9IDE7CiAK
ICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVlbDsKLSAgICBtX3RpbWVzdGFtcCA9IGN1
cnJlbnRUaW1lKCk7CisgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICBp
ZiAoZXZlbnQtPnN0YXRlICYgR0RLX1NISUZUX01BU0spCiAgICAgICAgIG1fbW9kaWZpZXJzIHw9
IE1vZGlmaWVyOjpTaGlmdEtleTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsQW5pbWF0b3JHdGsuY3BwCmluZGV4IGMyYWE5ZGMwMWY3NjdlZWE5OGUzMTNhODY0YTZh
Mjc4MmJhOGYwNGIuLjQzZGYyMzAzZmQ4NzExMGQwMDE4OTk3NWM5OWExZmViYzQ0M2IyNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNw
cApAQCAtMTEyLDggKzExMiw4IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3JHdGs6OmNvbXB1
dGVWZWxvY2l0eSgpCiAgICAgaWYgKG1fc2Nyb2xsSGlzdG9yeS5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICBkb3VibGUgZmlyc3QgPSBtX3Njcm9sbEhpc3RvcnlbMF0udGlt
ZXN0YW1wKCk7Ci0gICAgZG91YmxlIGxhc3QgPSBtX3Njcm9sbEhpc3RvcnkucmJlZ2luKCktPnRp
bWVzdGFtcCgpOworICAgIGF1dG8gZmlyc3QgPSBtX3Njcm9sbEhpc3RvcnlbMF0udGltZXN0YW1w
KCk7CisgICAgYXV0byBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAo
KTsKIAogICAgIGlmIChsYXN0ID09IGZpcnN0KQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTI0
LDcgKzEyNCw3IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3JHdGs6OmNvbXB1dGVWZWxvY2l0
eSgpCiAKICAgICBtX3Njcm9sbEhpc3RvcnkuY2xlYXIoKTsKIAotICAgIHJldHVybiBGbG9hdFBv
aW50KGFjY3VtRGVsdGEueCgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSwgYWNjdW1EZWx0YS55
KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpKTsKKyAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1
bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCkudmFsdWUoKSwgYWNjdW1EZWx0YS55
KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCkpOwogfQogCiBib29sIFNjcm9sbEFu
aW1hdG9yR3RrOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQpCkBAIC0xMzIsNyArMTMyLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogICAgIG1fa2luZXRpY0Fu
aW1hdGlvbi0+c3RvcCgpOwogCiAgICAgbV9zY3JvbGxIaXN0b3J5LnJlbW92ZUFsbE1hdGNoaW5n
KFsmZXZlbnRdIChQbGF0Zm9ybVdoZWVsRXZlbnQmIG90aGVyRXZlbnQpIC0+IGJvb2wgewotICAg
ICAgICByZXR1cm4gU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhldmVudC50aW1lc3RhbXAoKSAt
IG90aGVyRXZlbnQudGltZXN0YW1wKCkpID4gc2Nyb2xsQ2FwdHVyZVRocmVzaG9sZDsKKyAgICAg
ICAgcmV0dXJuIChldmVudC50aW1lc3RhbXAoKSAtIG90aGVyRXZlbnQudGltZXN0YW1wKCkpID4g
c2Nyb2xsQ2FwdHVyZVRocmVzaG9sZDsKICAgICB9KTsKIAogICAgIGlmIChldmVudC5pc0VuZE9m
Tm9uTW9tZW50dW1TY3JvbGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCmluZGV4IDA2MmY5ODIzNzcxYmRmYTM2
MDI5ZTI1Njg5ZjNkOGYxNjM5MjMxNDYuLjQ4Yzg0MDMzMmI4OWJmYTkyNjEwMTc2MGI3ZmIwODFj
MjEwZDU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1FdmVudEZhY3RvcnlJT1MubW0KQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBvcnQgIldBS0Fw
cEtpdFN0dWJzLmgiCiAjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL1dh
bGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODUsNyArODUsNyBAQCBwdWJs
aWM6CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50QnVpbGRlcihXZWJFdmVudCAqZXZlbnQpCiAgICAg
ewogICAgICAgICBtX3R5cGUgPSBtb3VzZUV2ZW50VHlwZShldmVudCk7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6
bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAg
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0x
MDYsNyArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoZXZlbnQudHlwZSA9PSBXZWJF
dmVudFNjcm9sbFdoZWVsKTsKIAogICAgICAgICBtX3R5cGUgPSBQbGF0Zm9ybUV2ZW50OjpXaGVl
bDsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVz
dGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRGb3JF
dmVudChldmVudCk7CiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZvckV2
ZW50KGV2ZW50KTsKQEAgLTM2OSw3ICszNjksNyBAQCBwdWJsaWM6CiAKICAgICAgICAgbV90eXBl
ID0gKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRLZXlVcCA/IFBsYXRmb3JtRXZlbnQ6OktleVVwIDog
UGxhdGZvcm1FdmVudDo6S2V5RG93bik7CiAgICAgICAgIG1fbW9kaWZpZXJzID0gbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7Cisg
ICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fdGV4dCA9
IGV2ZW50LmNoYXJhY3RlcnM7CiAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBldmVudC5jaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM7CkBAIC00NzUsNyArNDc1LDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgbV90eXBlID0gdG91Y2hFdmVudFR5cGUoZXZlbnQpOwogICAgICAgICBtX21v
ZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAg
PSBldmVudC50aW1lc3RhbXA7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCk7CiAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSBl
dmVudC5nZXN0dXJlU2NhbGU7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9uID0gZXZlbnQuZ2Vz
dHVyZVJvdGF0aW9uOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybVRv
dWNoRXZlbnRCdWlsZGVyKFBsYXRmb3JtRXZlbnQ6OlR5cGUgdHlwZSwgSW50UG9pbnQgbG9jYXRp
b24pCiAgICAgewogICAgICAgICBtX3R5cGUgPSB0eXBlOwotICAgICAgICBtX3RpbWVzdGFtcCA9
IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwog
ICAgICAgICAKICAgICAgICAgbV9nZXN0dXJlU2NhbGUgPSAxOwogICAgICAgICBtX2dlc3R1cmVS
b3RhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5oCmluZGV4IGQyMGEyZDhlZTkwZjRjMTg2N2I5NmU1OTQ5MjE5
NTljNGY2YzAyNmYuLmM0MGVjMjFmMTJhMTc4ZGY4OGU5YmYyOTA0YTBkN2ZkNzc5NWI5MjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5oCkBAIC00OCw3ICs0OCw3IEBAIFdFQkNPUkVfRVhQT1JUIGludCB3aW5kb3dzS2V5
Q29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5SWRl
bnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcga2V5
Rm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb2RlRm9yS2V5
RXZlbnQoTlNFdmVudCAqKTsKLVdFQkNPUkVfRVhQT1JUIGRvdWJsZSBldmVudFRpbWVTdGFtcFNp
bmNlMTk3MChOU0V2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKICAgICAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0V2hl
ZWxFdmVudERlbHRhcyhOU0V2ZW50ICosIGZsb2F0JiBkZWx0YVgsIGZsb2F0JiBkZWx0YVksIEJP
T0wmIGNvbnRpbnVvdXMpOwogV0VCQ09SRV9FWFBPUlQgVUludDgga2V5Q2hhckZvckV2ZW50KE5T
RXZlbnQgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMmIxODIyNGY4MzQ5ZmZiYjZlM2MxOGE4ZDE1NDE1
NDVkOWMyYWI2Mi4uNzk0MWNkNmM0ZGQyODI4YzZkNmY3MzljMGIyNTJhNDc5OGM1Njk5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNFdmVu
dFNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDx3dGYv
QVNDSUlDVHlwZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjE3LDkgKzYxOCw5IEBAIHN0YXRpYyBDRlRpbWVJbnRlcnZhbCBjYWNoZWRT
dGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkKICAgICByZXR1cm4gc3lzdGVtU3RhcnR1cFRp
bWU7CiB9CiAKLWRvdWJsZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkK
K1dhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5j
ZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNp
bmNlMTk3MCgpICsgW2V2ZW50IHRpbWVzdGFtcF0pKTsKIH0KIAogc3RhdGljIGlubGluZSBib29s
IGlzS2V5VXBFdmVudChOU0V2ZW50ICpldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5ZDE5MzY0MmIxMjlhMjI4
ZDllZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5YTJkZjk1YTRmMjhjMTkxZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8
d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9u
aWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8
V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUp
Cit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30K
KworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
QXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNl
Y29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3
NDEzNGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRm
ZTE0MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1v
bm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVu
dENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
VEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4
OWVkNWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5N2I4Mzk0YThjODg0ZmY2MGZm
Nzk1N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC0yOCwxNyAr
MjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0PHVpbnQzMl90
PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0YW1wKDApCiB7
CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUodHlwZSkKICAg
ICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkYzBmNjYyMDU0MmJhZGFhYzJh
NjNkYzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNlZTY1ZjViMmJlMzk3OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1
LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRp
bWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGlt
ZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAg
IFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBA
IHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAg
dWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFt
cDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMg
Y2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6
CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNl
RXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9h
dCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50
IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZl
bnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEg
QEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVu
dChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0
YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGds
b2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBk
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBi
b29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVy
dGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lz
ZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2Vi
V2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwg
UGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJs
aWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1
dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNT
eXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMs
IGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAg
V2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50
IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0
LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
LCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0
aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJv
b2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0
IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFj
Q2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0
IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3
IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1
YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVu
dDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6Oklu
dFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxv
YXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVu
dChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywg
V2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNH
ZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Rv
dWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBA
IC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMg
V2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3Vj
aEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAg
ICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25z
dCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5
Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFkMmFkMmYxNzRjNDQ3MmI1MjZh
MjZmYy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2ZTFjZWU3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1X
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFk
LCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0
cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBr
ZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQg
d2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWND
aGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBA
IC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0o
R1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBj
b25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGlu
dCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9y
PFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVk
VGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2Fy
ZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNl
bGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlw
YWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1h
Y0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2Vi
RXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAg
ICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAg
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJL
ZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcm
IHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0
eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91
bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VF
dmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIzODI3OWYxOWRhYTA1ZjM4OS4u
MGY3N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VFdmVudDo6
V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2ZW50OjpX
ZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxv
YXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBz
eW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQorV2ViTW91
c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBk
ZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRp
Y0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVU
eXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0
b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50
IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dlYk1vdXNl
RXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWND
bGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTdkMDdhZDljOTdmMzNm
NTMwMDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3NzcxMzdkNDI3MjNiMDcxZWRkZWEx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQo
V2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3Vj
aFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNo
RXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRm
b3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRp
bWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXAp
CiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZDk4ZGM5ZjZlYWFiZjZm
ODQ1MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNjNzNjYzhmMjNhNTI0NTlmN2Vm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1X
ZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYg
ZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50
OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0
IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1v
ZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1f
Z2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVs
RXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6
OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNl
LCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9n
bG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAj
ZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlw
ZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywg
UGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6
V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBG
bG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBH
cmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5k
ZXggNjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFkZDVkYi4uYmNlYTMyOWQyMjgz
Y2E5ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50
IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZl
bnQsIGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwog
fQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcgQEAgV2ViV2hlZWxFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50
LCBXZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6
U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50
KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYktl
eWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0
IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21w
b3NpdGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI3
LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwK
ICAgICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAg
ICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1l
KGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0
X3RpbWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjQ5LDcg
KzI0OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2
ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUo
dG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9nZXRfdGlt
ZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQ
b2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3Vj
aEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KaW5kZXggNjhlMGU2Y2Fm
ZGY1ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3ZTFmMjBmODI4OWExOTQ1ZjM4
YmVmY2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3Vj
aEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50
KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3Vj
aEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4o
MCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQo
ZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1
bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNf
UE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3Rvcnku
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4
IDRlMDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4NWUuLjkwZmJjMjhhNjc4Mzg1
NTYwYzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
aW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktl
eWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6
V2ViRXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAg
cmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4
dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lz
dGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5
Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVu
dGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWND
aGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2EyYTk4NjIwM2UwMTgyYjY1NjUx
OWEyMzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZkYzQ5ZDhjYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5t
bQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdl
c3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3Rm
L0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdl
c3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcg
KnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5T
RXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAg
ICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2Ux
OTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVu
dCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2
ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBl
Um90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2MzI5ODVmZTNlYTIyMTViNDhj
NmFmYzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYxM2UxZDYxM2ViOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYw
LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
TlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQg
ZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7
CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChl
dmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2
ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBt
ZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3
IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5T
RXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlm
aWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAg
IGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1w
U2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJu
IFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBv
aW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXpl
KHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMs
IHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wg
aGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChl
dmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBT
eXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlm
aWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUg
dGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQp
OworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNp
bmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4g
LS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3Ig
RW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1Mjdh
NWVjODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4ZGIwM2E1YTVmYmI2OTViMmJj
MWNjMzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
R2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVF
dmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2Vz
dHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZl
bnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdl
c3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJl
U2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAg
ICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTk0YTcyYjIyZWVkZTA3
MDY4OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAg
LTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgc2luZ2xlQ2hh
cmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCiAg
ICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0
X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAgICAgICAgIGV2ZW50LT5rZXlD
b2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBtb2RpZmllcnNGb3JFdmVudChl
dmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xMTksNyAr
MTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQb2ludCBw
b3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZp
Y2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBw
b3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7CisgICAgICAgIDAsIDAs
IDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlz
X2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTU0LDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
KGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxl
RmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0
aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6
OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJz
PigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxF
dmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2Rp
ZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAog
c3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3Rh
dGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90
b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3IEBAIFdlYlRvdWNoRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGlu
YXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUo
dG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7CisgICAg
cmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50
OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5k
ZXggNWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0YzBiZi4uMDdlZGFiZmI2ZmM3
ZmZjYWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5j
cHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdL
QnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3du
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQg
Y2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewot
ICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBv
c2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSkt
PnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291
bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9p
ZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBi
dXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1v
dXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJz
LCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50
UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlv
bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7
Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRp
b24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQ
b2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVp
bnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdl
UmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4ubW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdmYWNlZDU0OGRlY2FhMS4uODZm
ZTM2YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTc2LDcgKzE1
NzYsNyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludChjb25zdCBJbnRQ
b2ludCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB3ZWJGcmFtZSgpLT5j
b3JlRnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNvbnRlbnRzUG9pbnQgPSBmcmFtZVZp
ZXctPmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAgV2ViTW91c2VFdmVudCBldmVudChX
ZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQ
b2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwg
V2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQs
IDAsIDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGlt
ZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAgICAgcmV0dXJuIGhhbmRsZUNvbnRl
eHRNZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2VhYmZlYmVlZDBhNmU3NWU4NmM2MmUw
YjRhMmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4ZjZlNjg0NTM1ODEyM2YyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBA
IC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50PiBQbHVnaW5WaWV3Ojpj
cmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoZXZlbnQubWV0
YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CiAKLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1
Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9m
ZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCAwLCAwKTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1
Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9m
ZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCBXYWxsVGltZSB7IH0s
IDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50JiBldmVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGVhYmU2
NTk5MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4uZmY4YmI5ODA0MDUwMWMxOTIwMDQw
M2NlNGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdh
dGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50
IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0g
ICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIs
IHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQ
b2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3Vz
ZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVl
LCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVl
blBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQ
b2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRp
ZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4
dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdl
KCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8v
IFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRC
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBv
aW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xp
Y2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5o
YW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQg
PSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1v
dXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUg
PSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3Jt
RXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJy
ZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1
dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3Jl
OjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0z
Njc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2lu
dCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykK
ICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBr
ZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9i
YWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFw
KTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwg
YWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwg
V2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCku
ZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3
MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVz
dWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2lt
dWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGlu
dCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2
b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNl
RXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0
b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNp
bXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50
IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3Zv
aWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZl
bnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwg
cG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJN
b3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0
ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3Zv
aWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
biwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91
c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBv
c2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwg
V2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3ZDcyNzQ5YjQxMWJkNTk3MjliYjdi
YmI3Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFhZTQ0ZGQ3NDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBACiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZP
Uk0oR1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgLy8gRm9y
IHRlc3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24s
IFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91
YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6
OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUp
OwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgZG91Ymxl
IHRpbWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7Cisg
ICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGlu
dCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11
bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBXYWxsVGltZSk7CiAKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRNZW51U2hvd2luZygpIHsgbV9pc1No
b3dpbmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYmNkYjBiZjA2YTBjYTljMzlmZjVm
M2M1YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3N2E3YTc1ZmFkZGYzODVkZjQyNDM4
OGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRo
ZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6Rgog
CiAgICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKHRydWUpOwogCi0gICAgbWFpbmZy
YW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGlt
ZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZy
YW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICBtYWlu
ZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgV0tTdG9wT2Jz
ZXJ2aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSArNTgxLDExIEBAIHZvaWQgV2ViUGFn
ZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNv
bnN0IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVkID0gZmFsc2U7CiAgICAgbV9sYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3RlZFBvaW50OwogCi0gICAgdGFwV2Fz
SGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50
KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVk
UG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUu
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChy
b3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5
cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFwV2Fz
SGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0
ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJh
bWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2
ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWND
bGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02
MzcsNyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJh
Z1Nlc3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8KICAgICAvLyBUbyBhdWdtZW50
IHRoZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRpdGlvbmFsIGl0ZW1zLCBlbmQgdGhl
IGN1cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBkcmFnIHNlc3Npb24gd2l0aCB0
aGUgbmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nlc3MgaXMgb3BhcXVlIHRvIHRoZSBV
SSBwcm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhlIG9sZCBkcmFnIGl0ZW0gaW4gaXRz
IGRyYWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNpc3RlbnQgZHJhZyBzZXNzaW9uCiAg
ICAgLy8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hpY2ggb25seSBzZWVzIHRoYXQg
dGhlIGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEgbmV3IG9uZSBpcyBiZWdpbm5p
bmcuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQ
b3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbV9wYWdlLT5kcmFnQ29u
dHJvbGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdPcGVyYXRpb25Ob25lLCBNYXlFeHRl
bmREcmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3Np
dGlvbikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0
aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKIAotICAg
IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChh
ZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIDAsIFdlYkNvcmU6Ok5v
VGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1N
b3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeyB9LCAw
LCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
V2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggNDhhZTlmNzljYjkyNDQwNTI0
YTdmZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4NjdlMjI3MTNjZmQ0NTFlMzJkODM3OWY5
ODNjMWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQ
REZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmll
dy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPFdl
YktpdExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJQ
REZEb2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlZpZXdQcml2YXRl
Lmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3Iu
aD4KIApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9J
TlNFVCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3Qg
YW4gZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0g
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBj
dXJyZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQg
PSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUs
IE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWViYmE0MjJkM2JkYzgwZDE0ZmEzMDhm
MjFhLi43Njg1NDQ4NDBmMmFhNjIwOTlhNzM2MTk3NzQ1MDUzNTUxN2I0YWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01U
aW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+
dGltZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAo
Qk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1
Li5mMzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBz
dGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2Rp
ZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQo
Z2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJh
dGlvbik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4
IGVjNTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0Zjlh
MDQwNTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJP
T0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAg
Y2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50
IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChu
c0V2ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZl
bnQ6OlJhd0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShw
ZSwgMCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRy
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91
c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJy
ZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAg
ZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUs
IHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwg
MCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjU3MjczY2ZjMDA3ZTEyODA4
MzYyYWQyNGMwMjBiMjY1ZjBmYWQ3OC4uZmE5MTQ0Mjc3NzdiYjYzMDgwMjI1YTc2MTZiNzkwMjdh
NzVmYjA0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFy
ZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZl
bnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6CisKIDIwMTctMDktMjAg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZnJlc2ggV1BU
IHRlc3RzIHVwIHRvIGY2NWFmNDExZDYzZWMxM2VlOGZlMjA4YjRlZmZkNzMwYTRhOGI3ZmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDdlNzViODBhY2ZiNzk2MWM2Zjc2YjI2MDM4NzQ4N2ZiNjYwZjJl
MGEuLmVkNTk0OGM3MDRmZDZhODkzZjY3NmRlNzc5ZDI0ZDc4MGY2ODkwOGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTc2LDcgKzE3Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ctMDEyLmh0bWwgWyBJbWFnZU9ubHlGCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAx
NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92
ZXJmbG93LTAyMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi5o
dG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Eb2N1bWVudC1jb25zdHJ1Y3Rvci1zdmcuc3ZnIFsgVGltZW91dCBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3VyaXR5L2RhbmdsaW5nLW1hcmt1cC1taXRpZ2F0
aW9uLnRlbnRhdGl2ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHItdGltZS90aW1lT3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50
cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1l
c3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBmNDdmYTNkNmY1NjdlNGU5
OGIxMjgwMTI4MjVkNjJkMTg4NmNlZTNmLi42ZWIxMGU4NzM1YWIyNDA0ZDBmYWI3ZGYzNzRhNTJj
NmUzNmZjMzRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0
CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIENvbnN0cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0YW1w
IHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4g
YXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0
YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2Vu
IGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gNTIzLjgwMDAwMDAwMDAwMDEgYnV0IGdvdCAxNTA1NzcwMTUyNTY2Ci1GQUlMIENvbnN0cnVj
dGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5k
IGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xl
c3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9y
bWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTI0LjQgYnV0IGdvdCAxNTA1NzcwMTUyNTY2
Ci1GQUlMIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJl
c29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93
KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNz
IHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlv
biBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTI0LjUwMDAwMDAwMDAw
MDEgYnV0IGdvdCAxNTA1NzcwMTUyNTY2CitQQVNTIENvbnN0cnVjdGVkIE1vdXNlRXZlbnQgdGlt
ZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBv
cmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVjdGVkIEtleWJvYXJkRXZl
bnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUg
dGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVjdGVkIFdoZWVs
RXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNh
bWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCiBGQUlMIENvbnN0cnVjdGVkIEdh
bWVwYWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0
aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cwotRkFJTCBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGln
aCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNl
Lm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUg
bGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3Jl
YXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC42IGJ1dCBn
b3QgMTUwNTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBz
aG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFz
IHBlcmZvcm1hbmNlLm5vdygpIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321458</attachid>
            <date>2017-09-21 11:53:51 -0700</date>
            <delta_ts>2017-09-21 12:17:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921115350.patch</filename>
            <type>text/plain</type>
            <size>115957</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNl
RXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VF
dmVudEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4OTkxZTQyZjVkNTNhMzFhZDZlNTc4
ZC4uZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRkZDBhOWE4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAK
QEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gS2VlcCB0aGlzIGluIHN5
bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29uc3RydWN0b3JzCiBQbGF0Zm9ybU1v
dXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1dHRvbiogZXZlbnQpCiB7Ci0g
ICAgbV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50
KChpbnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJ
bnRQb2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZlbnQtPnlfcm9vdCk7CiAgICAgbV9i
dXR0b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAgUGxhdGZvcm1Nb3VzZUV2ZW50OjpQ
bGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogCiBQbGF0Zm9ybU1vdXNl
RXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1vdGlvbiogbW90aW9uKQogewotICAg
IG1fdGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50
KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9
IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQpbW90aW9uLT55X3Jvb3QpOwogICAg
IG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4IDNiMGU1OTA2ZmNkNTAyY2Y5YzVk
N2RjYWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0NzE3NzhjOTkzM2VhNjI1NDkyMTQ3
MGFmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdo
ZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFy
LmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxh
dGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICBzdGF0aWMgY29uc3Qg
ZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0g
ICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRp
bWU6Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQogICAg
ICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcAppbmRleCBjMmFhOWRjMDFm
NzY3ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2RmMjMwM2ZkODcxMTBkMDAxODk5NzVj
OTlhMWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2Nyb2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9s
bEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3Rvcnku
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9z
Y3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxI
aXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxI
aXN0b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5y
YmVnaW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAg
cmV0dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9y
R3RrOjpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3JvbGxIaXN0b3J5LmNsZWFyKCk7CiAK
LSAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBm
aXJzdCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSk7CisgICAgcmV0
dXJuIEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZh
bHVlKCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpKTsK
IH0KIAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgU2Nyb2xsQW5p
bWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCkKICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsKIAogICAgIG1fc2Nyb2xsSGlzdG9y
eS5yZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZvcm1XaGVlbEV2ZW50JiBvdGhlckV2
ZW50KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
ZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1
cmVUaHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2
ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CiAgICAgfSk7CiAKICAg
ICBpZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xsKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRl
eCAwNjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYzOTIzMTQ2Li40OGM4NDAzMzJiODli
ZmE5MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3
IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNp
bXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2Vi
RXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZl
bnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGlt
ZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZv
ckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9y
RXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0g
UGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUo
KTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9w
b3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9u
ID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGlj
OgogCiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0
Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21v
ZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAg
PSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsK
IAogICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZp
ZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDc1LDcgKzQ3
NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2
ZW50KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0g
ICAgICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApOwogCiAgICAgICAg
IG1fZ2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxlOwogICAgICAgICBtX2dlc3R1cmVS
b3RhdGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJs
aWM6CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5
cGUsIEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdHlwZTsKLSAg
ICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9
IFdhbGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gMTsK
ICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAppbmRleCBkMjBhMmQ4ZWU5
MGY0YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBlYzIxZjEyYTE3OGRmODhlOWJmMjkw
NGEwZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBXRUJDT1JFX0VY
UE9SVCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7Ci1XRUJDT1JFX0VYUE9SVCBkb3Vi
bGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIFdh
bGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CiAgICAgCiBXRUJDT1JF
X0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFY
LCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4
IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJiMTgyMjRmODM0
OWZmYmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFjZDZjNGRkMjgyOGM2ZDZmNzM5YzBi
MjUyYTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
bGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQ
SS5oPgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZU
aW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0
dXJuIHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5
NzAoTlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2
ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFy
dHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0
YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAppbmRleCA2NTU1YWVmMDk4ZmRi
MGQwMzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMzYjg4NTEyN2UyNmMwYzllYzVlZTdh
MjdjNzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdp
bi5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9y
bUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQQVJBTSBrZXlEYXRhLCBUeXBlIHR5
cGUsIGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0
ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9M
KSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRf
TUFTS19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRm
b3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFTS19TSE9S
VCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlT
dGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fdGV4dCgodHlw
ZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6
IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50
OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwg
bV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5nKCkg
OiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCmluZGV4IDAw
MGZkM2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3NmQuLmVhMjQ3YzllNmM1OGY0MmZl
ZjRkZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIHN0
YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2ZW50VHlwZShVSU5UIG1lc3NhZ2Up
CiB9CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGRpZEFjdGl2
YXRlV2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVzc2FnZVRvRXZlbnRUeXBlKG1lc3Nh
Z2UpLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUo
VktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJ
R0hfQklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KG1l
c3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1L
X0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0
S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6bm93KCkp
CiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAs
IG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQog
ICAgICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hl
ZWxFdmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUwNWVlYjdlZDY3MmJlOTNmZTM4NzVj
NTEyOC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4NmM4YTg2YjA4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcApAQCAtNzMsNyArNzMs
NyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMoKQogfQogCiBQbGF0Zm9ybVdoZWVs
RXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAgIDogUGxhdGZvcm1FdmVudChQbGF0
Zm9ybUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDo6R2V0VGlja0Nv
dW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWws
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpH
ZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2
aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEud2lkdGgoKTsKQEAgLTk1LDcgKzk1
LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBj
b25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBs
YXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0s
IGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0
ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYg
SElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQorICAgIDogUGxh
dGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJh
bSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9S
VCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6
ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fcG9zaXRp
b24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9nbG9iYWxQb3NpdGlv
bihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2RpcmVjdGlv
bkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5ZDE5MzY0MmIxMjlhMjI4ZDll
ZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5YTJkZjk1YTRmMjhjMTkxZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
TW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3Rm
L1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3VtZW50
Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9uaWNU
aW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8V2Fs
bFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCit7
CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30KKwor
Ym9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdh
bGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJn
dW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29u
ZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3NDEz
NGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRmZTE0
MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90
b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29k
ZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6
OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4OWVk
NWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5N2I4Mzk0YThjODg0ZmY2MGZmNzk1
N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC0yOCwxNyArMjgs
MTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0PHVpbnQzMl90PihO
b1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0YW1wKDApCiB7CiB9
CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMg
bW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAs
IG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkYzBmNjYyMDU0MmJhZGFhYzJhNjNk
YzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNlZTY1ZjViMmJlMzk3OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEy
IEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVz
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0
YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdl
YkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWlu
dDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsK
KyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xh
c3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2
ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnRO
dW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAg
IFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVs
dGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5
cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAg
cHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChU
eXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVk
RnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNj
cm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFz
ZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hl
ZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhh
c2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6
CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlm
aWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUs
IGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJv
b2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9h
cmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2Vi
S2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBi
b29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5n
JiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlz
QXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNv
bnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZl
VmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBA
IHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1Ymxp
YzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBv
aW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQg
Z2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChX
ZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2Vi
Q29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0
dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNo
UG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00
NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2Vi
RXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2
ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBj
b25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9h
cmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFkMmFkMmYxNzRjNDQ3MmI1MjZhMjZm
Yy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2ZTFjZWU3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2ViS2V5
Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2Rl
LCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQor
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFy
Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBh
ZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBt
X3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC02
Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0oR1RL
KQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0
cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91
YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4
dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlm
IFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtl
eUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAp
CitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtl
eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZl
bnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAs
IG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXli
b2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVu
bW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBi
b29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
dW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1v
ZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVu
dC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIzODI3OWYxOWRhYTA1ZjM4OS4uMGY3
N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VFdmVudDo6V2Vi
TW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2ZW50OjpXZWJN
b3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQg
ZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50
aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQorV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0
YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0Ns
aWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBl
KQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBm
b3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTdkMDdhZDljOTdmMzNmNTMw
MDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3NzcxMzdkNDI3MjNiMDcxZWRkZWExZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2Vi
RXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBv
aW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAg
ICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1
MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNjNzNjYzhmMjNhNTI0NTlmN2VmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1XZWJX
aGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0
aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHks
IE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBt
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlm
aWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xv
YmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVsRXZl
bnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6Oldl
YldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IElu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxv
YXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBi
b29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXpl
JiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZp
ZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9i
YWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxFdmVu
dDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29u
c3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAjZWxp
ZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhh
c2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2Vi
V2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50
UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9h
dFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBt
X3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rvcnku
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXgg
NjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFkZDVkYi4uYmNlYTMyOWQyMjgzY2E5
ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3Rr
L1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQs
IGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAogICAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBX
YWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQog
CiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25z
dCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcgQEAgV2ViV2hlZWxFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBX
ZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6U2Ny
b2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwK
LSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYktleWJv
YXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdk
a0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3Np
dGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI3LDcg
QEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZl
bnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwKICAg
ICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAgICAg
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2
ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3Rp
bWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjQ5LDcgKzI0
OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50
KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9nZXRfdGltZShl
dmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2lu
dHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhn
ZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KaW5kZXggNjhlMGU2Y2FmZGY1
ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3ZTFmMjBmODI4OWExOTQ1ZjM4YmVm
Y2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2
ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2
ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3VjaEV2
ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50KQog
ICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3VjaEV2
ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCks
Ci0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZl
bnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVu
dENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNfUE9U
RU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDRl
MDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4NWUuLjkwZmJjMjhhNjc4Mzg1NTYw
YzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktleWJv
YXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2Vi
RXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9h
cmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlm
aWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFy
Q29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0
dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVy
ZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2EyYTk4NjIwM2UwMTgyYjY1NjUxOWEy
MzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZkYzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpA
QCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdlc3R1
cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1
cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZp
ZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5TRXZl
bnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBl
dmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcw
KGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVudCwg
dmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50
Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUm90
YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJF
dmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2MzI5ODVmZTNlYTIyMTViNDhjNmFm
YzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYxM2UxZDYxM2ViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcg
QEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNF
dmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVs
dGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVu
dCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsK
ICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51
VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBA
IFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRv
dWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2lu
Y2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAg
ICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdl
YldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50
KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdo
ZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
LCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRp
bWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEK
ICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVu
dCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0
ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVy
cyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGlt
ZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwor
ICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNl
MTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0g
d2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50
ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNWVj
ODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4ZGIwM2E1YTVmYmI2OTViMmJjMWNj
MzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2Vz
dHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VzdHVy
ZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZlbnQo
KSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24s
IGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdlc3R1
cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGlt
ZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2Nh
bGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAg
ICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
d3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTk0YTcyYjIyZWVkZTA3MDY4
OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTgx
LDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktl
eWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCiAgICAg
ICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tl
eV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAgICAgICAgIGV2ZW50LT5rZXlDb2Rl
LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVu
dCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVudCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xMTksNyArMTE5
LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3Np
dGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VT
Y2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3Np
dGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7CisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2
ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTU0LDcgQEAg
V2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2
ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFj
dG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9u
LCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNj
cm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigw
KSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogc3Rh
dGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVG
b3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3IEBAIFdlYlRvdWNoRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRl
cykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91
Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7CisgICAgcmV0
dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpN
b2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXgg
NWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0YzBiZi4uMDdlZGFiZmI2ZmM3ZmZj
YWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xp
Y2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAg
IHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0
aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNp
bXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQs
IG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBX
S0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0
b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNl
VXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9p
bnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0g
ICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24p
LCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2lu
dChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2
NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdmYWNlZDU0OGRlY2FhMS4uODZmZTM2
YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTc2LDcgKzE1NzYs
NyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludChjb25zdCBJbnRQb2lu
dCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB3ZWJGcmFtZSgpLT5jb3Jl
RnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNvbnRlbnRzUG9pbnQgPSBmcmFtZVZpZXct
PmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAgV2ViTW91c2VFdmVudCBldmVudChXZWJF
dmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2lu
dCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlm
aWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0
Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQoV2ViRXZlbnQ6Ok1vdXNlRG93biwgV2Vi
TW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRzUG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAs
IDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6
bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAgICAgcmV0dXJuIGhhbmRsZUNvbnRleHRN
ZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2VhYmZlYmVlZDBhNmU3NWU4NmM2MmUwYjRh
MmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4ZjZlNjg0NTM1ODEyM2YyOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC04
OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50PiBQbHVnaW5WaWV3OjpjcmVh
dGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoZXZlbnQubWV0YUtl
eSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CiAKLSAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1Z2lu
LT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNl
dFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCAwLCAwKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBlLCBidXR0b24sIG1fcGx1Z2lu
LT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNl
dFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCBXYWxsVGltZSB7IH0sIDAp
OwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50JiBldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMGVhYmU2NTk5
MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4uZmY4YmI5ODA0MDUwMWMxOTIwMDQwM2Nl
NGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVU
b1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRv
CiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5nbGVDbGljayA9IDE7Ci0gICAg
UmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIG51bGxwdHIsIHNp
bmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50LnkoKSwgZG9jdW1lbnRQb2lu
dC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2
ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0
cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBv
aW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2lu
dC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpA
QCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSogV2ViUGFnZTo6Y29udGV4dE1l
bnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50KQogICAgIGNvcmVQYWdlKCkt
PmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1lbnUoKTsKIAogICAgIC8vIFNp
bXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbWVudS4KLSAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9U
YXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50
LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ss
IFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5k
bGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBj
b3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KG1vdXNl
UHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwogICAgIGF1dG8qIG1lbnUgPSBo
YW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50
VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpO
b1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxl
YXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0
LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQb2ludCBj
bGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlz
IGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQ
b3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsK
KyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRq
dXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3Zl
ZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgV2Vi
Q29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJh
Z1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiAKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwx
NyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0
KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxh
dGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCit2b2lk
IFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZl
bnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24p
LCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdl
Yk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVs
YXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNs
aWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQg
V2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6
Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9z
aXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJNb3Vz
ZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQg
V2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwg
V2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VF
dmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0
aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnMoKSwgdGltZSwgMCwgV2Vi
TW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3ZDcyNzQ5YjQxMWJkNTk3MjliYjdiYmI3
Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFhZTQ0ZGQ3NDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02Niw2ICs2Niw3IEBACiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0o
R1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgLy8gRm9yIHRl
c3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24sIFdl
YkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91Ymxl
IHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6Oklu
dFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwot
ICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJbnRQb2ludCwgZG91YmxlIHRp
bWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAg
dm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0
ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBXYWxsVGltZSk7CiAKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRNZW51U2hvd2luZygpIHsgbV9pc1Nob3dp
bmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYmNkYjBiZjA2YTBjYTljMzlmZjVmM2M1
YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3N2E3YTc1ZmFkZGYzODVkZjQyNDM4OGJl
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRp
Y0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RgogCiAg
ICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKHRydWUpOwogCi0gICAgbWFpbmZyYW1l
LmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1
c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1l
LmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1
c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKICAgICBtYWluZnJh
bWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgV0tTdG9wT2JzZXJ2
aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSArNTgxLDExIEBAIHZvaWQgV2ViUGFnZTo6
Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0
IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVkID0gZmFsc2U7CiAgICAgbV9sYXN0SW50
ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3RlZFBvaW50OwogCi0gICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywg
c3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3Vu
ZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUp
KTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQo
UGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGlj
aywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUu
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50
KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlj
a1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC02Mzcs
NyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nl
c3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8KICAgICAvLyBUbyBhdWdtZW50IHRo
ZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRpdGlvbmFsIGl0ZW1zLCBlbmQgdGhlIGN1
cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBkcmFnIHNlc3Npb24gd2l0aCB0aGUg
bmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nlc3MgaXMgb3BhcXVlIHRvIHRoZSBVSSBw
cm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhlIG9sZCBkcmFnIGl0ZW0gaW4gaXRzIGRy
YWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNpc3RlbnQgZHJhZyBzZXNzaW9uCiAgICAg
Ly8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hpY2ggb25seSBzZWVzIHRoYXQgdGhl
IGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEgbmV3IG9uZSBpcyBiZWdpbm5pbmcu
Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNsaWVudFBvc2l0aW9uLCBnbG9iYWxQb3Np
dGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdPcGVyYXRpb25Ob25lLCBNYXlFeHRlbmRE
cmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgwMyw3IEBAIHZvaWQgV2ViUGFnZTo6aW5z
cGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlv
bikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9u
KTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKIAotICAgIG1h
aW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRmb3JtTW91c2VFdmVudChhZGp1
c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIDAsIFdlYkNvcmU6Ok5vVGFw
KSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3Vz
ZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgeyB9LCAwLCBX
ZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlm
TmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZp
ZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2Vi
Vmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggNDhhZTlmNzljYjkyNDQwNTI0YTdm
ZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4NjdlMjI3MTNjZmQ0NTFlMzJkODM3OWY5ODNj
MWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZW
aWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9X
ZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJQREZE
b2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlZpZXdQcml2YXRlLmg+
Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4K
IApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNF
VCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4g
ZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91
c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJy
ZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBN
b3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1v
bm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAwLAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWViYmE0MjJkM2JkYzgwZDE0ZmEzMDhmMjFh
Li43Njg1NDQ4NDBmMmFhNjIwOTlhNzM2MTk3NzQ1MDUzNTUxN2I0YWYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5Nyw3IEBACiAtIChET01UaW1l
U3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAgICByZXR1cm4gSU1QTC0+dGlt
ZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9P
TClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1Li5m
MzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0
aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmll
ciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xv
YmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlv
bik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVj
NTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0ZjlhMDQw
NTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wg
aXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2Fz
ZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBl
ID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2
ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6
OlJhd0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwg
MCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50
VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZl
bnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRy
dWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwg
MCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjU3MjczY2ZjMDA3ZTEyODA4MzYy
YWQyNGMwMjBiMjY1ZjBmYWQ3OC4uZmE5MTQ0Mjc3NzdiYjYzMDgwMjI1YTc2MTZiNzkwMjdhNzVm
YjA0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ug
aGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBw
YXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQt
dGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6CisKIDIwMTctMDktMjAgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZnJlc2ggV1BUIHRl
c3RzIHVwIHRvIGY2NWFmNDExZDYzZWMxM2VlOGZlMjA4YjRlZmZkNzMwYTRhOGI3ZmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDdlNzViODBhY2ZiNzk2MWM2Zjc2YjI2MDM4NzQ4N2ZiNjYwZjJlMGEu
LmVkNTk0OGM3MDRmZDZhODkzZjY3NmRlNzc5ZDI0ZDc4MGY2ODkwOGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTc2LDcgKzE3Niw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ctMDEyLmh0bWwgWyBJbWFnZU9ubHlGCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxNS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJm
bG93LTAyMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi5odG1s
IFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1jb25zdHJ1Y3Rvci1zdmcuc3ZnIFsgVGltZW91dCBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3VyaXR5L2RhbmdsaW5nLW1hcmt1cC1taXRpZ2F0aW9u
LnRlbnRhdGl2ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHItdGltZS90aW1lT3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3Rh
bXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBmNDdmYTNkNmY1NjdlNGU5OGIx
MjgwMTI4MjVkNjJkMTg4NmNlZTNmLi42ZWIxMGU4NzM1YWIyNDA0ZDBmYWI3ZGYzNzRhNTJjNmUz
NmZjMzRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBA
IC0xLDcgKzEsNyBAQAogCi1GQUlMIENvbnN0cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0YW1wIHNo
b3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMg
cGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1w
IHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFm
dGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
NTIzLjgwMDAwMDAwMDAwMDEgYnV0IGdvdCAxNTA1NzcwMTUyNTY2Ci1GQUlMIENvbnN0cnVjdGVk
IEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3Nf
dGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFu
Y2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51
bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTI0LjQgYnV0IGdvdCAxNTA1NzcwMTUyNTY2Ci1G
QUlMIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29s
dXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkg
YXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRo
YW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBl
eHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTI0LjUwMDAwMDAwMDAwMDEg
YnV0IGdvdCAxNTA1NzcwMTUyNTY2CitQQVNTIENvbnN0cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0
YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmln
aW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVjdGVkIEtleWJvYXJkRXZlbnQg
dGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGlt
ZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVjdGVkIFdoZWVsRXZl
bnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUg
dGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCiBGQUlMIENvbnN0cnVjdGVkIEdhbWVw
YWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUg
c2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBOb3QgZW5vdWdoIGFyZ3VtZW50
cwotRkFJTCBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCBy
ZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5v
dygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVz
cyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRp
b24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC42IGJ1dCBnb3Qg
MTUwNTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91
bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBl
cmZvcm1hbmNlLm5vdygpIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321462</attachid>
            <date>2017-09-21 12:17:13 -0700</date>
            <delta_ts>2017-09-21 12:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921121712.patch</filename>
            <type>text/plain</type>
            <size>117004</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggZDliOTVhOTdkZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYz
ZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0YjlmZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudEd0ay5jcHAKQEAgLTEyNTksNyArMTI1OSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBl
CiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNv
bnN0cnVjdG9ycwogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
R2RrRXZlbnRLZXkqIGV2ZW50LCBjb25zdCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9u
UmVzdWx0cykKLSAgICA6IFBsYXRmb3JtRXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZl
bnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChldmVudCksIGN1cnJlbnRUaW1lKCkpCisgICAg
OiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJz
Rm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3RleHQoY29t
cG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5ndGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0
cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleXZhbCkpCiAg
ICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAgICAsIG1fa2V5KGtleVZhbHVlRm9yR2Rr
S2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4
OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4uZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRk
ZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29u
c3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVu
dEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAg
IG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZl
bnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAg
UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2
ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1v
dGlvbiogbW90aW9uKQogewotICAgIG1fdGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1f
dGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAg
ICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQp
bW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4
IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2RjYWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0
NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBs
YXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVu
dCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAg
IG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAm
IEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3Rr
LmNwcAppbmRleCBjMmFhOWRjMDFmNzY3ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2Rm
MjMwM2ZkODcxMTBkMDAxODk5NzVjOTlhMWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIs
OCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAg
IGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRv
dWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBh
dXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFz
dCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFz
dCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9h
dFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3Jv
bGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngo
KSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAw
MCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEz
Miw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsK
IAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZv
cm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVz
dGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQu
dGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJl
c2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xs
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYz
OTIzMTQ2Li40OGM4NDAzMzJiODliZmE5MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2lt
cG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3Jt
TW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBl
ID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAg
IG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3Np
dGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7
CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6
bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAg
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0z
NjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09
IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6Oktl
eURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
LSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJz
OwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9k
aWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlw
ZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmll
cnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1w
OworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50
aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxl
OwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAg
LTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwor
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAg
IG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBl
YzIxZjEyYTE3OGRmODhlOWJmMjkwNGEwZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgs
NyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChO
U0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVu
dChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZl
bnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7
Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZl
bnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNF
dmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsK
IFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCmluZGV4IDJiMTgyMjRmODM0OWZmYmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFj
ZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUyYTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNp
bXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5
ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZh
bFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUg
ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQg
dGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNf
Y2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVu
dCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNF
dmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNw
cAppbmRleCA2NTU1YWVmMDk4ZmRiMGQwMzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMz
Yjg4NTEyN2UyNmMwYzllYzVlZTdhMjdjNzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1F
dmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRl
KFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQs
IGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAx
KSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNo
YXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZl
bnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29k
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3Vz
ZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNl
RXZlbnRXaW4uY3BwCmluZGV4IDAwMGZkM2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3
NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRkZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2
ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtLCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVz
c2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2UpLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisg
ICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYg
TUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQo
aFduZCwgbFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JF
dmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUw
NWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEyOC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4
NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50
V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMo
KQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQs
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEu
d2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBN
S19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQo
KSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1Bh
cmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAu
MDAxKSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQog
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJh
bSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcx
MDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5
YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2
MSwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVw
b2NoKCkudmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgdGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNv
bmRzLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IDViNWZkMzk3NDEzNGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4
MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2Fs
bFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cAppbmRleCA1MDdiYzE2NjI4OWVkNWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5
N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAs
IG1fdGltZXN0YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQo
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZk
YzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNl
ZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTEwNCwxMiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmll
cnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsg
fQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9
CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0K
IAogcHJvdGVjdGVkOgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpA
QCAtMTE3LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90
eXBlOyAvLyBUeXBlCiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAg
IGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8v
IEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5
ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxz
ZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xp
Y2tUeXBlID0gTm9UYXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50
IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2Ug
PSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBi
dXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpA
QCAtMTk3LDExICsxOTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQog
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90
IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBi
b29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAg
V2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFz
ZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3
aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAs
MTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVT
RShBUFBLSVQpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQg
bmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxT
dHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRz
LCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQ
TEFURk9STShJT1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJL
ZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1
YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAj
ZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsg
fQpAQCAtMzgyLDcgKzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2Vi
VG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQ
b2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBi
b29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24p
CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3Rl
bnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1
cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAgICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9z
aXRpb24ocG9zaXRpb24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRv
dWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQo
KSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiYsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChU
eXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFk
MmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2
ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAg
LTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNp
ZiBVU0UoQVBQS0lUKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQo
dW5tb2RpZmllZFRleHQpCkBAIC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYK
IAogI2VsaWYgUExBVEZPUk0oR1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29s
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlz
S2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBX
ZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV91bm1vZGlmaWVkVGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBA
IC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50
aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9v
bCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4
dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIz
ODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkg
QEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMp
Ci1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQorV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRv
biBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQg
Y2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3Vi
bGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVu
dE51bWJlciwgaW50IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZl
bnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9u
KGJ1dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNi
YWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3Nzcx
MzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlw
ZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2lu
dHMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhk
ZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNj
NzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJX
aGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6
IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3
ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcg
KzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50
VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFk
ZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAs
NyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAg
LyogZGVsdGFaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAg
ICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7
CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpKSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJL
ZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9z
aXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFu
ZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBX
VEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+
a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAg
Z2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCks
IGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5
cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQog
ICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1Mu
bW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3
ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIs
NyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdl
YlRvdWNoRXZlbnQqIGV2ZW50KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZl
bnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAg
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0
cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZl
bnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9U
T1VDSF9FVkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFT
X0lTX1BPVEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9X
ZWJJT1NFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZl
bnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4
NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUs
NyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRl
eHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0
ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVh
dCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0K
IAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2Ey
YTk4NjIwM2UwMTgyYjY1NjUxOWEyMzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZk
YzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdl
Ykdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQu
aCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2lu
dC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2
Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAg
IHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2Rp
ZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQo
cG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZl
bnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50
eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2
MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYx
M2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5
Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9h
dCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291
bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBt
b2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0
YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnRO
dW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsK
IApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9y
RXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAg
ICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2lu
dChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwg
ZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5
LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAg
ID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAg
ICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEz
IGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVy
ZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJH
ZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQu
aAppbmRleCBiYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4
ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6
OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJv
dGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZl
Zjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBk
YzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EK
ICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlk
ZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9r
ZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAg
ICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsK
IH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0K
IAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
CkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJF
dmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlj
a3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hl
ZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGlu
YXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBl
dmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0
YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQ
YWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFn
ZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1Bv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0
dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsK
KyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChw
b3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50
LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xp
Y2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMs
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
U2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlv
biwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9u
KHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRl
TW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdm
YWNlZDU0OGRlY2FhMS4uODZmZTM2YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Lm1tCkBAIC0xNTc2LDcgKzE1NzYsNyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51
QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNvbnRl
bnRzUG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAgV2Vi
TW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdo
dEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQoV2Vi
RXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRzUG9p
bnQsIGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2Rp
ZmllcnM+KDApLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAgICAg
cmV0dXJuIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2VhYmZl
YmVlZDBhNmU3NWU4NmM2MmUwYjRhMmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4ZjZl
Njg0NTM1ODEyM2YyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2
ZW50PiBQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QK
ICAgICBpZiAoZXZlbnQubWV0YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6
Ok1ldGFLZXk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0
eXBlLCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5v
ZmZzZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAw
LCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmll
cnMpLCAwLCAwKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0
eXBlLCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5v
ZmZzZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAw
LCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmll
cnMpLCBXYWxsVGltZSB7IH0sIDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50
KEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMGVhYmU2NTk5MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4uZmY4
YmI5ODA0MDUwMWMxOTIwMDQwM2NlNGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZv
aWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3Ry
aW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBz
aW5nbGVDbGljayA9IDE7Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3Vz
ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJl
bnRUaW1lKCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBv
aW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0
cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwg
c2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBv
aW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAg
ICAgICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVu
dSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBv
aW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4
dE1lbnUoKTsKIAogICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhl
IGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBv
aW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVBy
ZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQ
cmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51
c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsK
ICAgICBib29sIGhhbmRsZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVD
b250ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkp
OwogICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0g
ICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmln
aHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNv
cmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9p
bnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJp
ZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAg
cmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRl
ZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xv
YgogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBh
cmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMg
aW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3Np
dGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCks
IDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0
ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9u
KW9wZXJhdGlvbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERy
YWdnaW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFs
dGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0
b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJN
b3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VF
dmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNr
Q291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwg
dGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQ
b2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24s
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3Vz
ZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6
OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50
LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUs
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdl
Yk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2Rp
ZmllcnMoKSwgdGltZSwgMCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3ZDcy
NzQ5YjQxMWJkNTk3MjliYjdiYmI3Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFhZTQ0
ZGQ3NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNT
SUJJTElUWSkgJiYgUExBVEZPUk0oR1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRlTW91
c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tF
dmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGlu
dCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlm
aWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3Jl
OjpJbnRQb2ludCwgZG91YmxlIHRpbWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50
IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZp
ZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2Vi
Q29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGlt
ZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBXYWxs
VGltZSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRNZW51
U2hvd2luZygpIHsgbV9pc1Nob3dpbmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYmNk
YjBiZjA2YTBjYTljMzlmZjVmM2M1YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3N2E3
YTc1ZmFkZGYzODVkZjQyNDM4OGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdl
YlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywg
Y29uc3QgV2ViQ29yZTo6RgogCiAgICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKHRy
dWUpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1N
b3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9C
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5v
VGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1N
b3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9C
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6
Tm9UYXApKTsKICAgICBtYWluZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwogCiAgICAgV0tTdG9wT2JzZXJ2aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSArNTgx
LDExIEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVz
cG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVkID0g
ZmFsc2U7CiAgICAgbV9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3RlZFBv
aW50OwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2lu
dCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdl
YkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBs
YXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9p
bnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNr
LCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBv
aW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCks
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2Fz
SGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0
ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC02MzcsNyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRk
aXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8K
ICAgICAvLyBUbyBhdWdtZW50IHRoZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRpdGlv
bmFsIGl0ZW1zLCBlbmQgdGhlIGN1cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBk
cmFnIHNlc3Npb24gd2l0aCB0aGUgbmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nlc3Mg
aXMgb3BhcXVlIHRvIHRoZSBVSSBwcm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhlIG9s
ZCBkcmFnIGl0ZW0gaW4gaXRzIGRyYWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNpc3Rl
bnQgZHJhZyBzZXNzaW9uCiAgICAgLy8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hp
Y2ggb25seSBzZWVzIHRoYXQgdGhlIGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEg
bmV3IG9uZSBpcyBiZWdpbm5pbmcuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNsaWVu
dFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAs
IE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiAg
ICAgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+bWFp
bkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdPcGVy
YXRpb25Ob25lLCBNYXlFeHRlbmREcmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgwMyw3
IEBAIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91
bmRlZEludFBvaW50KHBvc2l0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5t
YWluRnJhbWUoKTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBs
YXRmb3JtTW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IDAsIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1v
dXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQs
IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgeyB9LCAwLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1
bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXgg
NDhhZTlmNzljYjkyNDQwNTI0YTdmZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4NjdlMjI3
MTNjZmQ0NTFlMzJkODM3OWY5ODNjMWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4
LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQg
PFdlYktpdExlZ2FjeS9XZWJQREZEb2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVn
YWN5L1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBv
cnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNp
bXBvcnQgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBm
bG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQ
dHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2
ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJl
ZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNr
RXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAw
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWViYmE0
MjJkM2JkYzgwZDE0ZmEzMDhmMjFhLi43Njg1NDQ4NDBmMmFhNjIwOTlhNzM2MTk3NzQ1MDUzNTUx
N2I0YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3
ICs5Nyw3IEBACiAtIChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsK
KyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNl
Y29uZHMoKTsKIH0KIAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0
ZDFhYTVkYzdlZTFkYzc2MTQ1Li5mMzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRi
OWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAg
LTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2Uo
RG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBU
aGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFs
IG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2lu
ZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1X
aWRnZXQoKSB3aW5kb3ddKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZh
dGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChE
cmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9S
VCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAy
NWEuLjE4ZTM1YTViZDA0ZjlhMDQwNTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEw
MTgsMTQgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01S
YW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxh
dGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRm
b3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93
bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJv
YXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6
Y3JlYXRlKHBlLCBudWxscHRyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0g
ICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwg
MCwgMCwgMCwKKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVu
dCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAgICAgMCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXgg
NjU3MjczY2ZjMDA3ZTEyODA4MzYyYWQyNGMwMjBiMjY1ZjBmYWQ3OC4uZmE5MTQ0Mjc3NzdiYjYz
MDgwMjI1YTc2MTZiNzkwMjdhNzVmYjA0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQg
dGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IG5vdyB0
aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQ6CisKIDIwMTctMDktMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZnJlc2ggV1BUIHRlc3RzIHVwIHRvIGY2NWFmNDExZDYzZWMxM2VlOGZlMjA4YjRl
ZmZkNzMwYTRhOGI3ZmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdlNzViODBhY2ZiNzk2MWM2Zjc2
YjI2MDM4NzQ4N2ZiNjYwZjJlMGEuLmVkNTk0OGM3MDRmZDZhODkzZjY3NmRlNzc5ZDI0ZDc4MGY2
ODkwOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTc2LDcgKzE3Niw2IEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ctMDEyLmh0bWwg
WyBJbWFnZU9ubHlGCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkt
My90ZXh0LW92ZXJmbG93LTAxNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxNy5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAyMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1w
LWhpZ2gtcmVzb2x1dGlvbi5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jb25zdHJ1Y3Rvci1zdmcuc3ZnIFsgVGltZW91
dCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3VyaXR5L2Rhbmds
aW5nLW1hcmt1cC1taXRpZ2F0aW9uLnRlbnRhdGl2ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS90aW1lT3JpZ2luLmh0bWwgWyBG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRl
eCBmNDdmYTNkNmY1NjdlNGU5OGIxMjgwMTI4MjVkNjJkMTg4NmNlZTNmLi42ZWIxMGU4NzM1YWIy
NDA0ZDBmYWI3ZGYzNzRhNTJjNmUzNmZjMzRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhp
Z2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIENvbnN0cnVjdGVkIE1v
dXNlRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhl
IHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9l
cXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93
KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBs
ZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTIzLjgwMDAwMDAwMDAwMDEgYnV0IGdvdCAxNTA1NzcwMTUy
NTY2Ci1GQUlMIENvbnN0cnVjdGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBo
aWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFu
Y2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBi
ZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBj
cmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTI0LjQgYnV0
IGdvdCAxNTA1NzcwMTUyNTY2Ci1GQUlMIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1w
IHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4g
YXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0
YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2Vu
IGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gNTI0LjUwMDAwMDAwMDAwMDEgYnV0IGdvdCAxNTA1NzcwMTUyNTY2CitQQVNTIENvbnN0cnVj
dGVkIE1vdXNlRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0
cnVjdGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24g
YW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNT
IENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRp
b24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCiBG
QUlMIENvbnN0cnVjdGVkIEdhbWVwYWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVz
b2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3co
KSBOb3QgZW5vdWdoIGFyZ3VtZW50cwotRkFJTCBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVz
dGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3Jp
Z2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRp
bWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0
YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIDUyNC42IGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1Y3RlZCBGb2N1
c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBz
YW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321463</attachid>
            <date>2017-09-21 12:40:40 -0700</date>
            <delta_ts>2017-09-21 12:55:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921124039.patch</filename>
            <type>text/plain</type>
            <size>117827</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggZDliOTVhOTdkZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYz
ZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0YjlmZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudEd0ay5jcHAKQEAgLTEyNTksNyArMTI1OSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBl
CiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNv
bnN0cnVjdG9ycwogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
R2RrRXZlbnRLZXkqIGV2ZW50LCBjb25zdCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9u
UmVzdWx0cykKLSAgICA6IFBsYXRmb3JtRXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZl
bnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChldmVudCksIGN1cnJlbnRUaW1lKCkpCisgICAg
OiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJz
Rm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3RleHQoY29t
cG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5ndGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0
cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleXZhbCkpCiAg
ICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAgICAsIG1fa2V5KGtleVZhbHVlRm9yR2Rr
S2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4
OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4uZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRk
ZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29u
c3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVu
dEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAg
IG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZl
bnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAg
UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2
ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1v
dGlvbiogbW90aW9uKQogewotICAgIG1fdGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1f
dGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAg
ICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQp
bW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4
IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2RjYWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0
NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBs
YXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVu
dCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAg
IG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAm
IEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3Rr
LmNwcAppbmRleCBjMmFhOWRjMDFmNzY3ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2Rm
MjMwM2ZkODcxMTBkMDAxODk5NzVjOTlhMWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIs
OCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAg
IGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRv
dWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBh
dXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFz
dCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFz
dCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9h
dFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3Jv
bGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngo
KSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAw
MCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEz
Miw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsK
IAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZv
cm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVz
dGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQu
dGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJl
c2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xs
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYz
OTIzMTQ2Li40OGM4NDAzMzJiODliZmE5MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2lt
cG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3Jt
TW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBl
ID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAg
IG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3Np
dGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7
CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6
bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAg
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0z
NjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09
IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6Oktl
eURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
LSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJz
OwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9k
aWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlw
ZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmll
cnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1w
OworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50
aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxl
OwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAg
LTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwor
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAg
IG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBl
YzIxZjEyYTE3OGRmODhlOWJmMjkwNGEwZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgs
NyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChO
U0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVu
dChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZl
bnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7
Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZl
bnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNF
dmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsK
IFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCmluZGV4IDJiMTgyMjRmODM0OWZmYmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFj
ZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUyYTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNp
bXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5
ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZh
bFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUg
ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQg
dGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNf
Y2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVu
dCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNF
dmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNw
cAppbmRleCA2NTU1YWVmMDk4ZmRiMGQwMzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMz
Yjg4NTEyN2UyNmMwYzllYzVlZTdhMjdjNzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1F
dmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRl
KFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQs
IGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAx
KSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNo
YXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZl
bnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29k
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3Vz
ZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNl
RXZlbnRXaW4uY3BwCmluZGV4IDAwMGZkM2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3
NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRkZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2
ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtLCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVz
c2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2UpLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisg
ICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYg
TUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQo
aFduZCwgbFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JF
dmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUw
NWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEyOC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4
NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50
V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMo
KQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQs
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEu
d2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBN
S19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQo
KSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1Bh
cmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAu
MDAxKSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQog
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJh
bSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcx
MDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5
YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2
MSwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVw
b2NoKCkudmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgdGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNv
bmRzLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IDViNWZkMzk3NDEzNGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4
MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2Fs
bFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cAppbmRleCA1MDdiYzE2NjI4OWVkNWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5
N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAs
IG1fdGltZXN0YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQo
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZk
YzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNl
ZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTEwNCwxMiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmll
cnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsg
fQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9
CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0K
IAogcHJvdGVjdGVkOgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpA
QCAtMTE3LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90
eXBlOyAvLyBUeXBlCiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAg
IGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8v
IEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5
ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxz
ZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xp
Y2tUeXBlID0gTm9UYXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50
IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2Ug
PSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBi
dXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpA
QCAtMTk3LDExICsxOTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQog
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90
IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBi
b29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAg
V2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFz
ZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3
aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAs
MTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVT
RShBUFBLSVQpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQg
bmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxT
dHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRz
LCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQ
TEFURk9STShJT1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJL
ZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1
YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAj
ZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsg
fQpAQCAtMzgyLDcgKzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2Vi
VG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQ
b2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBi
b29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24p
CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3Rl
bnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1
cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAgICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9z
aXRpb24ocG9zaXRpb24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRv
dWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQo
KSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiYsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChU
eXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFk
MmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2
ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAg
LTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNp
ZiBVU0UoQVBQS0lUKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQo
dW5tb2RpZmllZFRleHQpCkBAIC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYK
IAogI2VsaWYgUExBVEZPUk0oR1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29s
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlz
S2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBX
ZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV91bm1vZGlmaWVkVGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBA
IC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50
aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9v
bCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4
dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIz
ODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkg
QEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMp
Ci1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQorV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRv
biBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQg
Y2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3Vi
bGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVu
dE51bWJlciwgaW50IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZl
bnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9u
KGJ1dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNi
YWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3Nzcx
MzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlw
ZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2lu
dHMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhk
ZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNj
NzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJX
aGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6
IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3
ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcg
KzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50
VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFk
ZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAs
NyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAg
LyogZGVsdGFaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAg
ICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7
CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpKSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJL
ZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9z
aXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFu
ZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBX
VEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+
a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAg
Z2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCks
IGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5
cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQog
ICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1Mu
bW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3
ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIs
NyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdl
YlRvdWNoRXZlbnQqIGV2ZW50KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZl
bnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAg
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0
cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZl
bnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9U
T1VDSF9FVkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFT
X0lTX1BPVEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9X
ZWJJT1NFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZl
bnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4
NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUs
NyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRl
eHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0
ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVh
dCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0K
IAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2Ey
YTk4NjIwM2UwMTgyYjY1NjUxOWEyMzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZk
YzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdl
Ykdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQu
aCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2lu
dC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2
Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAg
IHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2Rp
ZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQo
cG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZl
bnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50
eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2
MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYx
M2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5
Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9h
dCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291
bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBt
b2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0
YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnRO
dW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsK
IApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9y
RXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAg
ICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2lu
dChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwg
ZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5
LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAg
ID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAg
ICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEz
IGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVy
ZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJH
ZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQu
aAppbmRleCBiYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4
ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6
OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJv
dGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZl
Zjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBk
YzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EK
ICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlk
ZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9r
ZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAg
ICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsK
IH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0K
IAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
CkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJF
dmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlj
a3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hl
ZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGlu
YXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBl
dmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0
YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQ
YWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFn
ZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1Bv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0
dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsK
KyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChw
b3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50
LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xp
Y2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMs
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
U2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlv
biwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9u
KHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRl
TW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
dmVudC5jcHAKaW5kZXggMjYxOGZlNmMyZWY4NTY2ZWUyNzNjNmE3MzhmMDMxMDZjNjIyMjk5Yi4u
ZTdlZDdkODQ0YzZhZTY1NmNjYzdjOTM3MDE2YzczZGVlYzkzMmMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgZ3VpbnQz
MiB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKQog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VWRU5UKHNlbGYpLCAwKTsKICAgICBXZWJDb3JlOjpF
dmVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBndWludDMyIHJlc3VsdCA9IGl0
ZW0tPnRpbWVTdGFtcCgpOworICAgIGd1aW50MzIgcmVzdWx0ID0gaXRlbS0+dGltZVN0YW1wKCku
YXBwcm94aW1hdGVXYWxsVGltZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0Mjgz
MDdmYWNlZDU0OGRlY2FhMS4uODZmZTM2YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luLm1tCkBAIC0xNTc2LDcgKzE1NzYsNyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNv
bnRlbnRzUG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAg
V2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpS
aWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3Rh
dGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5n
VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQo
V2ViRXZlbnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRz
UG9pbnQsIGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAg
ICAgcmV0dXJuIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2Vh
YmZlYmVlZDBhNmU3NWU4NmM2MmUwYjRhMmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4
ZjZlNjg0NTM1ODEyM2YyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdl
YkV2ZW50PiBQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29u
c3QKICAgICBpZiAoZXZlbnQubWV0YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZl
bnQ6Ok1ldGFLZXk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50
Pih0eXBlLCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVu
dC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAw
LCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2Rp
ZmllcnMpLCAwLCAwKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50
Pih0eXBlLCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVu
dC5vZmZzZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAw
LCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2Rp
ZmllcnMpLCBXYWxsVGltZSB7IH0sIDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2
ZW50KEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggMGVhYmU2NTk5MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4u
ZmY4YmI5ODA0MDUwMWMxOTIwMDQwM2NlNGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBA
IHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3Qg
U3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGlu
dCBzaW5nbGVDbGljayA9IDE7Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBN
b3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1
cnJlbnRUaW1lKCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVl
blBvaW50LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJl
ZlB0cjxNb3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0
ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVu
dFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0
TWVudSogV2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQm
IHBvaW50KQogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29u
dGV4dE1lbnUoKTsKIAogICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUg
dGhlIGNvcnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50
KHBvaW50LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZv
cmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3Vz
ZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgp
LT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50
KTsKICAgICBib29sIGhhbmRsZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5k
bGVDb250ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCkpOwogICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7
Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwg
UmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQo
cG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwg
MSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0
QnJpZGdlKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAg
ICAgcmV0dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdF
bmRlZChXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQg
Z2xvYgogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVz
ZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9u
ZXMgaW5zdGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIDAsIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRq
dXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0
aW9uKW9wZXJhdGlvbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVu
ZERyYWdnaW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRs
ZUFsdGVybmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlm
CiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBi
dXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChX
ZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91
c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJz
KSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJ
bnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0
b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJN
b3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZl
bnQ6OkJ1dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0Nv
dW50LCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRp
bWUsIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAot
dm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJD
b3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50
KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpO
b0J1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpN
b2RpZmllcnMoKSwgdGltZSwgMCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3
ZDcyNzQ5YjQxMWJkNTk3MjliYjdiYmI3Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFh
ZTQ0ZGQ3NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Fs
bFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUND
RVNTSUJJTElUWSkgJiYgUExBVEZPUk0oR1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRl
TW91c2VEb3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwg
V0tFdmVudE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVw
KGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1v
ZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJD
b3JlOjpJbnRQb2ludCwgZG91YmxlIHRpbWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24o
aW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9k
aWZpZXJzLCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwg
V2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxs
VGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBX
YWxsVGltZSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRN
ZW51U2hvd2luZygpIHsgbV9pc1Nob3dpbmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
YmNkYjBiZjA2YTBjYTljMzlmZjVmM2M1YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3
N2E3YTc1ZmFkZGYzODVkZjQyNDM4OGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lk
IFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGlj
aywgY29uc3QgV2ViQ29yZTo6RgogCiAgICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2Vz
KHRydWUpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZv
cm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6
Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZv
cm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwg
Tm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29y
ZTo6Tm9UYXApKTsKICAgICBtYWluZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOwogCiAgICAgV0tTdG9wT2JzZXJ2aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSAr
NTgxLDExIEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2Rl
UmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVk
ID0gZmFsc2U7CiAgICAgbV9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3Rl
ZFBvaW50OwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCku
aGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1v
dXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCks
IFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2Fz
SGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50
KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVk
UG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCku
aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3Rl
ZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFw
V2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNl
RXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC02MzcsNyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0
QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0
aW8KICAgICAvLyBUbyBhdWdtZW50IHRoZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRp
dGlvbmFsIGl0ZW1zLCBlbmQgdGhlIGN1cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5l
dyBkcmFnIHNlc3Npb24gd2l0aCB0aGUgbmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nl
c3MgaXMgb3BhcXVlIHRvIHRoZSBVSSBwcm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhl
IG9sZCBkcmFnIGl0ZW0gaW4gaXRzIGRyYWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNp
c3RlbnQgZHJhZyBzZXNzaW9uCiAgICAgLy8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywg
d2hpY2ggb25seSBzZWVzIHRoYXQgdGhlIGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0
IGEgbmV3IG9uZSBpcyBiZWdpbm5pbmcuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNs
aWVudFBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6
TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCks
IDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24s
IGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7
CiAgICAgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdP
cGVyYXRpb25Ob25lLCBNYXlFeHRlbmREcmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgw
Myw3IEBAIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0g
cm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdl
LT5tYWluRnJhbWUoKTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVk
KFBsYXRmb3JtTW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIDAsIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigp
Lm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9p
bnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgeyB9LCAwLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5k
b2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5k
ZXggNDhhZTlmNzljYjkyNDQwNTI0YTdmZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4Njdl
MjI3MTNjZmQ0NTFlMzJkODM3OWY5ODNjMWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcg
KzQ4LDcgQEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBv
cnQgPFdlYktpdExlZ2FjeS9XZWJQREZEb2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0
TGVnYWN5L1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNp
bXBvcnQgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
ICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25z
dCBmbG9hdCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBS
ZWZQdHI8RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlj
a0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAg
IFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNs
aWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAw
LCAwLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWVi
YmE0MjJkM2JkYzgwZDE0ZmEzMDhmMjFhLi4zMjFhN2YwMTY4MWYyMWE0ODY2OWNkOTgzZWQ1NDU3
MTA4NGY3MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZl
bnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05
Nyw3ICs5Nyw3IEBACiAtIChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAo
KTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCkuYXBwcm94aW1hdGVXYWxsVGltZSgpLnNl
Y29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIC0gKEJPT0wpZGVmYXVsdFBy
ZXZlbnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5k
ZXggMDAxNmMwYTQyYzAzMGJiM2ViYzRmNGQxYWE1ZGM3ZWUxZGM3NjE0NS4uZjM0ZDY5NTlkNGNh
ZTE1MzdkNTI2MWM0MThmMDQ3ZDM4MjI0YjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05NjQsNyArOTY0LDcgQEAgc3RhdGljIGlubGluZSBX
ZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAg
IHJldHVybjsKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJl
LCBidXQgdGhleSBzaG91bGQgYmUgcmVhbCBvbmVzIGluc3RlYWQuCiAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IGV2ZW50KEludFBvaW50KHdpbmRvd0xvYyksIEludFBvaW50KGdsb2JhbFBvaW50KHdp
bmRvd0xvYywgW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSkpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2Vi
Q29yZTo6Tm9UYXApOwogICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRy
YWdTb3VyY2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBlYzU3Yzg4YTZjYWQx
YmQyYjRjOWMyMmE4Y2YwMTNhMDEwN2UwMjVhLi4xOGUzNWE1YmQwNGY5YTA0MDU3MTcxMWU3Nzc4
NDVmMjZjNmM5OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlBERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
REZWaWV3Lm1tCkBAIC0xMDE4LDE0ICsxMDE4LDE0IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJh
bmdlKFdlYkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGNhc2UgTlNFdmVudFR5
cGVLZXlEb3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3Jt
RXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CiAgICAg
ICAgIHBlLmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3du
KTsKLSAgICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAg
ICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgbnVsbHB0cik7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYg
KGJ1dHRvbiAhPSBub0J1dHRvbikgewotICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwg
W25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCisgICAgICAgIGV2ZW50ID0gTW91c2VF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY1NzI3M2NmYzAwN2UxMjgwODM2MmFkMjRjMDIwYjI2
NWYwZmFkNzguLmZhOTE0NDI3Nzc3YmI2MzA4MDIyNWE3NjE2Yjc5MDI3YTc1ZmIwNDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTIxICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1
dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQz
MzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmViYXNlbGluZSBXUFQgdGVzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1o
aWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorCiAyMDE3LTA5LTIwICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZyZXNoIFdQVCB0ZXN0cyB1cCB0byBm
NjVhZjQxMWQ2M2VjMTNlZThmZTIwOGI0ZWZmZDczMGE0YThiN2ZlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA3ZTc1YjgwYWNmYjc5NjFjNmY3NmIyNjAzODc0ODdmYjY2MGYyZTBhLi5lZDU5NDhjNzA0
ZmQ2YTg5M2Y2NzZkZTc3OWQyNGQ3ODBmNjg5MDhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3
Niw3ICsxNzYsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWkt
My90ZXh0LW92ZXJmbG93LTAxMi5odG1sIFsgSW1hZ2VPbmx5RgogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMTUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVp
LTMvdGV4dC1vdmVyZmxvdy0wMTcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMjEuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24uaHRtbCBbIEZhaWx1cmUg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29u
c3RydWN0b3Itc3ZnLnN2ZyBbIFRpbWVvdXQgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9zZWN1cml0eS9kYW5nbGluZy1tYXJrdXAtbWl0aWdhdGlvbi50ZW50YXRpdmUu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hy
LXRpbWUvdGltZU9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0
YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVz
b2x1dGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ3ZmEzZDZmNTY3ZTRlOThiMTI4MDEyODI1ZDYy
ZDE4ODZjZWUzZi4uNmViMTBlODczNWFiMjQwNGQwZmFiN2RmMzc0YTUyYzZlMzZmYzM0YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcg
QEAKIAotRkFJTCBDb25zdHJ1Y3RlZCBNb3VzZUV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGln
aCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNl
Lm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUg
bGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3Jl
YXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyMy44MDAwMDAw
MDAwMDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3RlZCBLZXlib2FyZEV2
ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1l
IHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6
IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRp
bWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDUyNC40IGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1
Y3RlZCBXaGVlbEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBo
YXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNz
X3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1h
bmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBu
dW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC41MDAwMDAwMDAwMDAxIGJ1dCBnb3QgMTUw
NTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1Y3RlZCBNb3VzZUV2ZW50IHRpbWVzdGFtcCBzaG91bGQg
YmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZv
cm1hbmNlLm5vdygpIAorUEFTUyBDb25zdHJ1Y3RlZCBLZXlib2FyZEV2ZW50IHRpbWVzdGFtcCBz
aG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFz
IHBlcmZvcm1hbmNlLm5vdygpIAorUEFTUyBDb25zdHJ1Y3RlZCBXaGVlbEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2lu
IGFzIHBlcmZvcm1hbmNlLm5vdygpIAogRkFJTCBDb25zdHJ1Y3RlZCBHYW1lcGFkRXZlbnQgdGlt
ZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBv
cmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgTm90IGVub3VnaCBhcmd1bWVudHMKLUZBSUwgQ29u
c3RydWN0ZWQgRm9jdXNFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBh
bmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRf
bGVzc190aGFuX2VxdWFsOiBFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGxlc3MgdGhhbiBwZXJm
b3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4gYWZ0ZXIgaXRzIGNyZWF0aW9uIGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1MjQuNiBidXQgZ290IDE1MDU3NzAxNTI1
NjYKK1BBU1MgQ29uc3RydWN0ZWQgRm9jdXNFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2gg
cmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5u
b3coKSAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321466</attachid>
            <date>2017-09-21 12:55:49 -0700</date>
            <delta_ts>2017-09-21 13:31:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921125548.patch</filename>
            <type>text/plain</type>
            <size>118609</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggZDliOTVhOTdkZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYz
ZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0YjlmZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudEd0ay5jcHAKQEAgLTEyNTksNyArMTI1OSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBl
CiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNv
bnN0cnVjdG9ycwogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
R2RrRXZlbnRLZXkqIGV2ZW50LCBjb25zdCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9u
UmVzdWx0cykKLSAgICA6IFBsYXRmb3JtRXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZl
bnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChldmVudCksIGN1cnJlbnRUaW1lKCkpCisgICAg
OiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJz
Rm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3RleHQoY29t
cG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5ndGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0
cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleXZhbCkpCiAg
ICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAgICAsIG1fa2V5KGtleVZhbHVlRm9yR2Rr
S2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4
OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4uZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRk
ZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29u
c3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVu
dEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAg
IG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZl
bnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAg
UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2
ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1v
dGlvbiogbW90aW9uKQogewotICAgIG1fdGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1f
dGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAg
ICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQp
bW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4
IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2RjYWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0
NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBs
YXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVu
dCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAg
IG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAm
IEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3Rr
LmNwcAppbmRleCBjMmFhOWRjMDFmNzY3ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2Rm
MjMwM2ZkODcxMTBkMDAxODk5NzVjOTlhMWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIs
OCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAg
IGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRv
dWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBh
dXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFz
dCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFz
dCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9h
dFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3Jv
bGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngo
KSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAw
MCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEz
Miw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsK
IAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZv
cm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVz
dGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQu
dGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJl
c2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xs
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYz
OTIzMTQ2Li40OGM4NDAzMzJiODliZmE5MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2lt
cG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3Jt
TW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBl
ID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAg
IG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3Np
dGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7
CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6
bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAg
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0z
NjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09
IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6Oktl
eURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
LSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJz
OwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9k
aWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlw
ZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmll
cnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1w
OworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50
aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxl
OwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAg
LTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwor
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAg
IG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBl
YzIxZjEyYTE3OGRmODhlOWJmMjkwNGEwZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgs
NyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChO
U0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVu
dChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZl
bnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7
Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZl
bnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNF
dmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsK
IFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCmluZGV4IDJiMTgyMjRmODM0OWZmYmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFj
ZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUyYTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNp
bXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5
ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZh
bFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUg
ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQg
dGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNf
Y2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVu
dCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNF
dmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNw
cAppbmRleCA2NTU1YWVmMDk4ZmRiMGQwMzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMz
Yjg4NTEyN2UyNmMwYzllYzVlZTdhMjdjNzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1F
dmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRl
KFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQs
IGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAx
KSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNo
YXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZl
bnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29k
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3Vz
ZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNl
RXZlbnRXaW4uY3BwCmluZGV4IDAwMGZkM2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3
NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRkZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2
ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtLCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVz
c2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2UpLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisg
ICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYg
TUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQo
aFduZCwgbFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JF
dmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUw
NWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEyOC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4
NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50
V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMo
KQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQs
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEu
d2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBN
S19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQo
KSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1Bh
cmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAu
MDAxKSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQog
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJh
bSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcx
MDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5
YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2
MSwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVw
b2NoKCkudmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgdGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNv
bmRzLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IDViNWZkMzk3NDEzNGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4
MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2Fs
bFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cAppbmRleCA1MDdiYzE2NjI4OWVkNWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5
N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAs
IG1fdGltZXN0YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQo
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZk
YzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNl
ZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTEwNCwxMiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmll
cnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsg
fQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9
CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0K
IAogcHJvdGVjdGVkOgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpA
QCAtMTE3LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90
eXBlOyAvLyBUeXBlCiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAg
IGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8v
IEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5
ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxz
ZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xp
Y2tUeXBlID0gTm9UYXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50
IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2Ug
PSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBi
dXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpA
QCAtMTk3LDExICsxOTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQog
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90
IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBi
b29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAg
V2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFz
ZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3
aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAs
MTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVT
RShBUFBLSVQpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQg
bmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxT
dHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRz
LCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQ
TEFURk9STShJT1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJL
ZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1
YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAj
ZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsg
fQpAQCAtMzgyLDcgKzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2Vi
VG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQ
b2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBi
b29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24p
CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3Rl
bnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1
cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAgICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9z
aXRpb24ocG9zaXRpb24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRv
dWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQo
KSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiYsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChU
eXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFk
MmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2
ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAg
LTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNp
ZiBVU0UoQVBQS0lUKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQo
dW5tb2RpZmllZFRleHQpCkBAIC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYK
IAogI2VsaWYgUExBVEZPUk0oR1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29s
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlz
S2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBX
ZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV91bm1vZGlmaWVkVGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBA
IC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50
aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9v
bCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4
dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIz
ODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkg
QEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMp
Ci1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQorV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRv
biBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQg
Y2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3Vi
bGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVu
dE51bWJlciwgaW50IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZl
bnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9u
KGJ1dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNi
YWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3Nzcx
MzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlw
ZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2lu
dHMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhk
ZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNj
NzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJX
aGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6
IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3
ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcg
KzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50
VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFk
ZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAs
NyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAg
LyogZGVsdGFaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAg
ICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7
CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpKSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJL
ZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9z
aXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFu
ZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBX
VEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+
a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAg
Z2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCks
IGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5
cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQog
ICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1Mu
bW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3
ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIs
NyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdl
YlRvdWNoRXZlbnQqIGV2ZW50KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZl
bnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAg
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0
cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZl
bnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9U
T1VDSF9FVkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFT
X0lTX1BPVEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9X
ZWJJT1NFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZl
bnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4
NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUs
NyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRl
eHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0
ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVh
dCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0K
IAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2Ey
YTk4NjIwM2UwMTgyYjY1NjUxOWEyMzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZk
YzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdl
Ykdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQu
aCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2lu
dC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2
Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAg
IHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2Rp
ZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQo
cG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZl
bnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50
eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2
MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYx
M2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5
Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9h
dCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291
bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBt
b2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0
YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnRO
dW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsK
IApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9y
RXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAg
ICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2lu
dChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwg
ZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5
LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAg
ID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAg
ICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEz
IGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVy
ZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJH
ZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQu
aAppbmRleCBiYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4
ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6
OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJv
dGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZl
Zjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBk
YzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EK
ICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlk
ZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9r
ZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAg
ICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsK
IH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0K
IAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
CkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJF
dmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlj
a3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hl
ZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGlu
YXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBl
dmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0
YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQ
YWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFn
ZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1Bv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0
dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsK
KyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChw
b3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50
LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xp
Y2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMs
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
U2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlv
biwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9u
KHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRl
TW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
dmVudC5jcHAKaW5kZXggMjYxOGZlNmMyZWY4NTY2ZWUyNzNjNmE3MzhmMDMxMDZjNjIyMjk5Yi4u
ZTdlZDdkODQ0YzZhZTY1NmNjYzdjOTM3MDE2YzczZGVlYzkzMmMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgZ3VpbnQz
MiB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKQog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VWRU5UKHNlbGYpLCAwKTsKICAgICBXZWJDb3JlOjpF
dmVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBndWludDMyIHJlc3VsdCA9IGl0
ZW0tPnRpbWVTdGFtcCgpOworICAgIGd1aW50MzIgcmVzdWx0ID0gaXRlbS0+dGltZVN0YW1wKCku
YXBwcm94aW1hdGVXYWxsVGltZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgx
MS5jcHAKaW5kZXggZGIyNDVjY2Q0ZmI2NzIyOWFjMTkyYTNlMWFkMGQ3MDkyZmE4NTNjMi4uOWE1
MTYzNGJkZTA2ZDg0Y2M5YTRiNWNkODMzYzM0ODRhNzhhODE5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDEx
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEv
TmV0c2NhcGVQbHVnaW5YMTEuY3BwCkBAIC0zMjEsOSArMzIxLDkgQEAgc3RhdGljIGlubGluZSB2
b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2ZW50JiBldmVudCkKICAgICBldmVudC54YW55LndpbmRv
dyA9IDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdWludDY0X3QgeFRpbWVTdGFtcChkb3VibGUgdGlt
ZXN0YW1wSW5TZWNvbmRzKQorc3RhdGljIGlubGluZSB1aW50NjRfdCB4VGltZVN0YW1wKFdhbGxU
aW1lIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4gdGltZXN0YW1wSW5TZWNvbmRzICogMTAwMDsK
KyAgICByZXR1cm4gdGltZXN0YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgeEtleU1vZGlmaWVycyhjb25zdCBXZWJFdmVu
dCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQppbmRleCBhZmNmZmE1MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWEx
Li44NmZlMzZiMWZmZDhhZDBjZWZlMjVhZDRkN2U4Y2E0NTE4YzZhODlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYs
NyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1l
KCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZy
YW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2
ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250
ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVu
dDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6
OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VE
b3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQ
b2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxl
Q29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmViZWVkMGE2ZTc1ZTg2
YzYyZTBiNGEyYzFjY2Q1My4uZWNkNTY3ZmNjM2M1ZGU1MmE1MGE4MjhmNmU2ODQ1MzU4MTIzZjI5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViRXZlbnQ+IFBsdWdpblZp
ZXc6OmNyZWF0ZVdlYkV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmIChldmVu
dC5tZXRhS2V5KCkpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKIAot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwg
bV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZl
bnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291
bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIDAsIDApOwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwg
bV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZl
bnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291
bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIFdhbGxUaW1l
IHsgfSwgMCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRXZlbnQoRXZlbnQmIGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAw
ZWFiZTY1OTkwZDkxN2UxZDkxZDkxZTJiOWU0ZmIzMGQ4NDJiMTVhLi5mZjhiYjk4MDQwNTAxYzE5
MjAwNDAzY2U0ZjQ5YjM1OTgyMjRiN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBXZWJQYWdlOjpu
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50
UG9pbnQgZG8KICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0g
MTsKLSAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVs
bHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1
bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+
IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQs
IHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywg
c2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1
bWVudFBvaW50LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAog
I2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1LDExIEBAIFdlYkNvbnRleHRNZW51KiBXZWJQYWdlOjpj
b250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgY29y
ZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVudSgpOwogCiAg
ICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51
LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJD
b3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUHJlc3NFdmVudChwb2lu
dCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRn
ZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZVByZXNzRXZlbnQpOwogICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRleHRNZW51RXZl
bnQobW91c2VQcmVzc0V2ZW50LCBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKSk7CiAgICAgYXV0byog
bWVudSA9IGhhbmRsZWQgPyBjb250ZXh0TWVudSgpIDogbnVsbHB0cjsKLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVhc2VFdmVudChwb2ludCwgcG9pbnQsIFJp
Z2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVN
b3VzZVJlbGVhc2VFdmVudChtb3VzZVJlbGVhc2VFdmVudCk7CiAKICAgICByZXR1cm4gbWVudTsK
QEAgLTM2NzQsNyArMzY3NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhZ0VuZGVkKFdlYkNvcmU6Oklu
dFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iCiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlm
aWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgotICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3Rl
ZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgV2ViQ29yZTo6
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0
aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsK
IAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRW5kRHJhZ2dpbmcoKSk7CkBA
IC00NjcwLDE3ICs0NjcwLDE3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0
VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
OjpzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
biwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2Vi
TW91c2VFdmVudDo6TW91c2VEb3duLCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+
KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGlj
X2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCB0aW1lLCBXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6Ok5vVGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91
c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0
b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNp
bXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBXYWxsVGltZSB0aW1lKQogewogICAgIG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChX
ZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycygpLCB0aW1l
LCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQzMTU0YTYxNGI5M2MxMzdkNzI3NDliNDExYmQ1OTcy
OWJiN2JiYjcuLmJiMWY1MTI2ZDZiZjQyOTlhMzk2NzllMjUxZDM4MWFlNDRkZDc0ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAv
LyBGb3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1
dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
LCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2Vi
Q29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUg
dGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBk
b3VibGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJD
b3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1l
KTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lk
IHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lm
IEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBt
X2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBiY2RiMGJmMDZhMGNhOWMz
OWZmNWYzYzViNGE1MjU0NTYxMmJjMDUxLi5kYmFmYTE1Zjg3YmE0MDc3YTdhNzVmYWRkZjM4NWRm
NDI0Mzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxl
U3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGCiAKICAgICBXS0JlZ2luT2JzZXJ2aW5nQ29udGVudENoYW5nZXModHJ1ZSk7CiAKLSAgICBt
YWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJl
bnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBt
YWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxU
aW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOwogICAg
IG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0
b3BPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpOwpAQCAtNTgxLDExICs1ODEsMTEgQEAgdm9pZCBX
ZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGlj
aywgY29uc3QgV2ViQ29yZToKICAgICBib29sIHRhcFdhc0hhbmRsZWQgPSBmYWxzZTsKICAgICBt
X2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gcm91bmRlZEFkanVzdGVkUG9pbnQ7CiAKLSAgICB0
YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5m
cmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2
ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0Ns
aWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICB0
YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAx
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1h
aW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1v
dXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRo
ZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAK
QEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNG
b3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpbwogICAgIC8vIFRvIGF1
Z21lbnQgdGhlIHBsYXRmb3JtIGRyYWcgc2Vzc2lvbiB3aXRoIGFkZGl0aW9uYWwgaXRlbXMsIGVu
ZCB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24gYW5kIGJlZ2luIGEgbmV3IGRyYWcgc2Vzc2lvbiB3
aXRoIHRoZSBuZXcgZHJhZyBpdGVtLgogICAgIC8vIFRoaXMgcHJvY2VzcyBpcyBvcGFxdWUgdG8g
dGhlIFVJIHByb2Nlc3MsIHdoaWNoIHN0aWxsIG1haW50YWlucyB0aGUgb2xkIGRyYWcgaXRlbSBp
biBpdHMgZHJhZyBzZXNzaW9uLiBTaW1pbGFybHksIHRoaXMgcGVyc2lzdGVudCBkcmFnIHNlc3Np
b24KICAgICAvLyBpcyBvcGFxdWUgdG8gdGhlIHdlYiBwcm9jZXNzLCB3aGljaCBvbmx5IHNlZXMg
dGhhdCB0aGUgY3VycmVudCBkcmFnIGhhcyBlbmRlZCwgYW5kIHRoYXQgYSBuZXcgb25lIGlzIGJl
Z2lubmluZy4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24s
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCkuZHJhZ0VuZGVkKCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgRHJhZ09wZXJhdGlvbk5vbmUsIE1h
eUV4dGVuZERyYWdTZXNzaW9uOjpZZXMpOwogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJQ
YWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHBvc2l0aW9uKQogICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQo
cG9zaXRpb24pOwogICAgIEZyYW1lJiBtYWluZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwog
Ci0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2
ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgV2ViQ29y
ZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0
Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2ludCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB7
IH0sIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CiAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0
ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQppbmRleCA0OGFlOWY3OWNiOTI0
NDA1MjRhN2ZmZjQ5ZGIwNWM2YTllMTQzM2Y2Li5jOTE1ZmU0ZDg2N2UyMjcxM2NmZDQ1MWUzMmQ4
Mzc5Zjk4M2MxY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3
L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9X
ZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQpAQCAtNDgsNyArNDgsNyBAQAogI2ltcG9y
dCA8V2ViS2l0TGVnYWN5L1dlYk5TVmlld0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5
L1dlYlBERkRvY3VtZW50RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViVmlld1By
aXZhdGUuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL01vbm90
b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1Zl
Y3Rvci5oPgogCkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJ
R0hUX0lOU0VUID0gNC4wZiAqIDIuMGY7CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0
cnVjdCBhbiBldmVudCB0byBzaW11bGF0ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZl
bnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRy
dWUsIGN1cnJlbnRUaW1lKCksIDAsIDEsIDAsIDAsIDAsIDAsCisgICAgUmVmUHRyPEV2ZW50PiBl
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwg
dHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIDEsIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUV2ZW50Lm1tCmluZGV4IDk1Zjg0ZGQyNWE4NDNhZWJiYTQyMmQzYmRjODBkMTRm
YTMwOGYyMWEuLjMyMWE3ZjAxNjgxZjIxYTQ4NjY5Y2Q5ODNlZDU0NTcxMDg0ZjcxYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0g
KERPTVRpbWVTdGFtcCl0aW1lU3RhbXAKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPnRpbWVTdGFtcCgpOworICAgIHJldHVybiBJ
TVBMLT50aW1lU3RhbXAoKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMw
YmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1Li5mMzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYw
NDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRh
dGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8v
IEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3Vs
ZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50
UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+
cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNv
cmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAg
ICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQo
ZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERS
QUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAx
M2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0ZjlhMDQwNTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEw
MTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZy
YW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAg
ICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNy
ZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICBldmVu
dCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0
dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0Nv
dW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAw
LCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggNjU3MjczY2ZjMDA3ZTEyODA4MzYyYWQyNGMwMjBiMjY1ZjBmYWQ3OC4uZmE5MTQ0
Mjc3NzdiYjYzMDgwMjI1YTc2MTZiNzkwMjdhNzVmYjA0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBm
b3IgZXZlbnQgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0
ZXN0IG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1l
eHBlY3RlZC50eHQ6CisKIDIwMTctMDktMjAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZnJlc2ggV1BUIHRlc3RzIHVwIHRvIGY2NWFmNDExZDYzZWMxM2Vl
OGZlMjA4YjRlZmZkNzMwYTRhOGI3ZmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdlNzViODBhY2Zi
Nzk2MWM2Zjc2YjI2MDM4NzQ4N2ZiNjYwZjJlMGEuLmVkNTk0OGM3MDRmZDZhODkzZjY3NmRlNzc5
ZDI0ZDc4MGY2ODkwOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTc2LDcgKzE3Niw2IEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ct
MDEyLmh0bWwgWyBJbWFnZU9ubHlGCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93
LTAxNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAyMS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQt
dGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jb25zdHJ1Y3Rvci1zdmcuc3Zn
IFsgVGltZW91dCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3Vy
aXR5L2RhbmdsaW5nLW1hcmt1cC1taXRpZ2F0aW9uLnRlbnRhdGl2ZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHItdGltZS90aW1lT3JpZ2lu
Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCBmNDdmYTNkNmY1NjdlNGU5OGIxMjgwMTI4MjVkNjJkMTg4NmNlZTNmLi42ZWIx
MGU4NzM1YWIyNDA0ZDBmYWI3ZGYzNzRhNTJjNmUzNmZjMzRiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGlt
ZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1o
aWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCi1GQUlMIENvbnN0
cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5k
IGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xl
c3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9y
bWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBh
IG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTIzLjgwMDAwMDAwMDAwMDEgYnV0IGdvdCAx
NTA1NzcwMTUyNTY2Ci1GQUlMIENvbnN0cnVjdGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNo
b3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMg
cGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGltZXN0YW1w
IHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRha2VuIGFm
dGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
NTI0LjQgYnV0IGdvdCAxNTA1NzcwMTUyNTY2Ci1GQUlMIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQg
dGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGlt
ZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZl
bnQgdGltZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0
YW1wIHRha2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gNTI0LjUwMDAwMDAwMDAwMDEgYnV0IGdvdCAxNTA1NzcwMTUyNTY2CitQQVNT
IENvbnN0cnVjdGVkIE1vdXNlRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRp
b24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQ
QVNTIENvbnN0cnVjdGVkIEtleWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJl
c29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93
KCkgCitQQVNTIENvbnN0cnVjdGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdo
IHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uu
bm93KCkgCiBGQUlMIENvbnN0cnVjdGVkIEdhbWVwYWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJl
IGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3Jt
YW5jZS5ub3coKSBOb3QgZW5vdWdoIGFyZ3VtZW50cwotRkFJTCBDb25zdHJ1Y3RlZCBGb2N1c0V2
ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1l
IHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6
IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRp
bWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDUyNC42IGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1
Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBo
YXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321473</attachid>
            <date>2017-09-21 13:31:49 -0700</date>
            <delta_ts>2017-09-21 13:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921133148.patch</filename>
            <type>text/plain</type>
            <size>119558</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MmNmNGFkNjUxNzlh
NmYwOTY4NTc1OGZlOTAyNzEzMjU4YWY0YS4uOWI1NjBkMjAwODNiZTEzYjUxY2MyYmZjMTA1NTZh
ZmZkNDhlZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKwogMjAxNy0wOS0y
MSAgWmhpZmVpIEZBTkcgIDxmYWNldG90aGVmYXRlQGdtYWlsLmNvbT4KIAogICAgICAgICBJbiBy
ZWd1bGFyIGJsb2NrIGxheW91dCwgdGhlIHdpZHRoIG9mIGEgY2hpbGQncyBtYXJnaW4gYm94IHNo
b3VsZCBhbHdheXMgYmUgZXF1YWwgdG8gdGhhdCBvZiBpdHMgY29udGFpbmluZyBibG9jawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA4MTU2NWFkZWU2MWE2MjY3YzZkYjU0ODI1NmUzYWRiNzk3YjViOWY5Li42OGExMjQ1
MmM0YmRjZjNmZGRkMGFlMDYxODY0MzdmZTk4ODRhMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2
IEBACiAyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpl
bmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hh
cmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6
OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
ICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2
ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3Rv
cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hF
dmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAg
ICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2Vi
S2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVk
L21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50
OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3Vz
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3Vj
aEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6Cisg
ICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRN
ZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1v
dXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFk
ZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisKKzIwMTctMDktMjEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCB0ZW1wb3Jh
cmlseSBkaXNhYmxlIGFzc2VydGlvbiBhZGRlZCBpbiByMjIyMzA4IHdoaWxlIEkgaW52ZXN0aWdh
dGUuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQz
MGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgxM2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAg
ICgtW1dlYlBERlZpZXdQbGFjZWhvbGRlciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisK
IDIwMTctMDgtMDkgIFlvc2hpYWtpIEppdHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255
LmNvbT4KIAogICAgICAgICBbUEFMXSBNb3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9y
aWVzIGludG8gUEFMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUx
ZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJkN2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4
MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9m
IGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgor
ICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9u
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERG
VmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBXZWJWaWV3IGluZGljYXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJL
aXRMZWdhY3kgdmlld3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYTI5NWUwNjNhNjVlZmMxMDk2OTdmYjEwZDhiZjVjMjc2ZWI1
YzZhLi5kODY3ZDFlYjQ4MzI4NTRlMGQ1NTZhNmM2MjgzMDAzZmY2ZTgwOTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3
LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBC
QjYxNDFEMEExQkVDMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJF
ODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01X
aW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJv
cGVydGllcy5oICovOyB9OworCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJl
c1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFB
QzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAv
KiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAq
LzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07CkBAIC05ODQwLDYgKzk4NDEsNyBA
QAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZERkY0OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9k
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
MDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlv
blRyYXZlcnNhbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
VHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5
QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjYyNTMsNiArMjYyNTUsNyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBE
T01FeGNlcHRpb24uaCAqLywKIAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0
aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1Rp
bWVTdGFtcC5oICovLAogCQkJCUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1l
bnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxl
bWVudGF0aW9uLmlkbCAqLywKQEAgLTI3NzA0LDYgKzI3NzA3LDcgQEAKIAkJCQlCQzYwRDZFOTBE
MjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5
NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxl
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMg
LyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMw
MDE5NDAxMiAvKiBET01KSVRIZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdl
ZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSGlnaFJlc1RpbWVTdGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGlt
ZVN0YW1wID0gZG91YmxlOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5
MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1
Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1
LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlm
ICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91
c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQ
b3NpdGlvbigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFw
IH07CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5F
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdp
bGxiZWdpbkV2ZW50LCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVu
dCwgMCwgbnVsbHB0cik7CiAgICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQo
dGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5
ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuY3BwCkBAIC0yMywxNyArMjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJFdmVudC5oIgogCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUg
IlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBF
dmVudDo6RXZlbnQoSXNUcnVzdGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1
c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBj
YW5jZWxhYmxlQXIKICAgICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2Fu
Y2VsYWJsZShjYW5jZWxhYmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1f
Y3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQor
ICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBi
b29sIGNhbmNlbGFibGVBcmcsIGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFi
bGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkK
ICAgICAsIG1faXNJbml0aWFsaXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxl
QXJnKQogICAgICwgbV9jYW5jZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3Rl
ZCh0cnVlKQotICAgICwgbV9jcmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAo
dGltZXN0YW1wKSkKKyAgICAsIG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0
LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBFdmVudEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShp
bml0aWFsaXplci5jYW5jZWxhYmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21w
b3NlZCkKICAgICAsIG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAg
ICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBA
IC0yMTYsNCArMjIwLDE4IEBAIHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCog
dW5kZXJseWluZ0V2ZW50KQogICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50
OwogfQogCitET01IaWdoUmVzVGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNl
KiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnBlcmZvcm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0g
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1l
VG9IaWdoUmVzVGltZVN0YW1wKG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQz
NDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKQEAgLTIzLDExICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNs
dWRlICJFdmVudEluaXQuaCIKICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+
CkBAIC05Niw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7
IHJldHVybiBtX2NhbmNlbGFibGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2Vk
KCkgY29uc3Q7CiAKLSAgICBET01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV9jcmVhdGVUaW1lOyB9CisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5k
aW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0
aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0
RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9
CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBA
IC0xNzAsNyArMTcyLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3Rl
ZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxh
YmxlLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0
YW1wKTsKICAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5p
dCYsIElzVHJ1c3RlZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAg
LTE5NSw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJy
ZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07
CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9j
cmVhdGVUaW1lOworICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRy
PEV2ZW50PiBtX3VuZGVybHlpbmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNm
MzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRh
M2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91Ymxl
IERPTUhpZ2hSZXNUaW1lU3RhbXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCkBAIC00OCw3ICs1MCw3IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01UaW1lU3RhbXAgdGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRF
dmVudChET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9w
dGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRk
MThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAg
S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVu
dDo6S2V5Ym9hcmRFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2lu
ZG93KiB2aWV3KQogICAgIDogVUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2Fy
ZEV2ZW50VHlwZShrZXkudHlwZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3Rh
bXAoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXko
KQorICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90
b25pY1RpbWUoKSwgdmlldywgMCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hp
ZnRLZXkoKQogICAgICAgICAsIGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCku
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1f
a2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAj
aWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5j
cHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVh
N2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL01vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2
ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmll
CiAgICAgYm9vbCBpc0NhbmNlbGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNl
bW92ZUV2ZW50ICYmICFpc01vdXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0g
IWlzTW91c2VFbnRlck9yTGVhdmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2
ZW50VHlwZSwgY2FuQnViYmxlLCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3
LAorICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlz
Q2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCks
IHZpZXcsCiAgICAgICAgIGRldGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcg
QEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQu
Zm9yY2UoKSwgZXZlbnQuc3ludGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVu
dD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3
LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBh
Z2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQg
c2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3
IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBj
YW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAorTW91c2VFdmVudDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVl
bkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5k
aWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3Vz
ZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNv
bnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0
aW9uLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFL
ZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tU
eXBlLCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZp
ZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwg
dmlldywgZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMw
MDgyYmQzYWY2YTRhZTVhYjczOTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5
YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3
ICszMyw3IEBAIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6
IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBi
b29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5k
b3cqLCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBz
Y3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRp
ZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7
CiAKIHByb3RlY3RlZDoKLSAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2lu
ZG93KiwKKyAgICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRv
dyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5
NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVs
YXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwg
Ym9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywK
K01vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlv
biwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQm
IG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxh
dGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4
IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYw
NTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0
ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1v
dXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91
YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90
b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25z
dCBJbnRQb2ludCYgc2NyZWVuTG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlv
biwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGlj
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNi
NGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJl
MDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11
bGF0ZWRDbGljay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBS
ZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRl
ZENsaWNrU291cmNlIHNvdXJjZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1
ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6
IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQo
ZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQt
PnRpbWVTdGFtcCgpIDogTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5
OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBA
QCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5Y
LCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNl
UmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIElu
dFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVl
blgsIHNjcmVlblkpLAogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBh
Z2VZKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAg
SW50UG9pbnQoMCwgMCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRh
ODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2Fi
NmFmODliZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2
ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJs
ZUFyZywgYm9vbCBjYW5jZWxhYgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJn
LCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitV
SUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1
YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9N
V2luZG93KiB2aWV3QXJnLCBpbnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBj
YW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3
QXJnKQogICAgICwgbV9kZXRhaWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTcz
ZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIz
MTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJ
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3
IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERP
TVdpbmRvdyosIGludCBkZXRhaWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBE
T01XaW5kb3cqLCBpbnQgZGV0YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgY29uc3QgVUlFdmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUx
YWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEy
YmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBA
IC00OSw3ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdp
dGhLZXlTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2
ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUs
IGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmll
dywKICAgICAgICAgaW50IGRldGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5
KQogICAgICAgICAgICAgOiBVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGlt
ZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2Uy
NzhiNTczZjZmMzcwODQuLjgwZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVu
dDo6V2hlZWxFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRp
YWxpemVyLCBJc1RydXMKIH0KIAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2
ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmll
dywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91
c2VFdmVudChldmVudE5hbWVzKCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBv
c2l0aW9uKCksIGV2ZW50LnBvc2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
ICAgICAsIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVB
aGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3
ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4
NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBl
QWhlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcs
MTIgKzM3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQo
VHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRh
U291cmNlKQotICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigw
KQogewogfQogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAx
MDAwOworc3RhdGljIGNvbnN0IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBz
dGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7CkBAIC02Myw3ICs2Miw3IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAt
MTsKIAogICAgIGludCBvcHRpb25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsK
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBl
VGltZTsKKyAgICBTZWNvbmRzIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlw
ZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBV
Q2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2
MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3
YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1
LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIK
KyNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9k
YXRhU291cmNlOwotICAgIERPTVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9u
aWNUaW1lIG1fbGFzdFR5cGVUaW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBT
dHJpbmdCdWlsZGVyIG1fYnVmZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Ny
b2xsQ29udHJvbGxlci5jcHAKaW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1
ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICsz
NywxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3Lmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQg
YXV0b3Njcm9sbCBpZiBwb2ludGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxl
bWVudC4KLXN0YXRpYyBjb25zdCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGlj
IGNvbnN0IFNlY29uZHMgYXV0b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhl
IGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Ny
b2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBh
dXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xs
Q29udHJvbGxlcjo6QXV0b3Njcm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGlt
ZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAg
ICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlw
ZShOb0F1dG9zY3JvbGwpCi0gICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgw
KQogewogfQogCkBAIC0xNDAsNyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6
dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlz
PFJlbmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBu
dWxscHRyOwogfQogCi12b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJv
cChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRv
dWJsZSBldmVudFRpbWUpCit2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5k
RHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IFdhbGxUaW1lIGV2ZW50VGltZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAg
ICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1l
ID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3Jv
bGxUeXBlKSB7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlm
IChXVEY6OmN1cnJlbnRUaW1lKCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+
IGF1dG9zY3JvbGxEZWxheSkKKyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0Fu
ZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAg
bV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxS
ZWZlcmVuY2VQb3NpdGlvbik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZv
clNlbGVjdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xs
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5o
CmluZGV4IDNjZDlkYmYzMzc5Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0
NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0F1dG9zY3JvbGxDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxz
ZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0
ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0
aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVu
dFRpbWUpOwogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xs
U3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9z
Y3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1
dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9z
Y3JvbGxTdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFy
dFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3Jv
bGxTdGFydFBvczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNv
bnRyb2xsZXIuY3BwCmluZGV4IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZi
ZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldp
bmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdURjsKQEAgLTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBj
bGljCiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xp
Y2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3Jt
TW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2
ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29s
IGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3Vz
ZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggZWY1NjY3OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4
YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1N
b3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAg
ICAgcmV0dXJuIFBsYXRmb3JtTW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBk
cmFnRGF0YS5nbG9iYWxQb3NpdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJl
bnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0K
IAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQm
IGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDli
MDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3
NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0x
MzUsNyArMTM1LDcgQEAgY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3Qg
aW50IFRleHREcmFnSHlzdGVyZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzID0gMzsKICNpZiBQTEFURk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6
OlRleHREcmFnRGVsYXkgPSAwLjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgeyAxNTBfbXMgfTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERy
YWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAg
ICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0
aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50
VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVm
YXVsdFZpZXcoKSwKICAgICAgICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50
Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRp
b24oKS55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1l
bnREZWx0YSgpLngoKSwgZXZlbnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkz
OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAg
ICAgUGxhdGZvcm1FdmVudDo6VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQocG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xp
Y2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1Rh
cCk7CiAKICAgICByZXR1cm4gc2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50
KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VN
b3ZlRXZlbnRUaW1lckZpcmVkKCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7
CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlm
dEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25N
b3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0
S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVk
KGZha2VNb3VzZU1vdmVFdmVudCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMz
YmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJi
ZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRp
YyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERy
YWdEZWxheTsKKyAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJl
ZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5k
aWYKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3Np
dGlvbjsKICAgICBJbnRQb2ludCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29y
ZHMuCi0gICAgZG91YmxlIG1fbW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1l
IG1fbW91c2VEb3duVGltZXN0YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93
bjsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApp
bmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1
YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJv
eWVkKCkKICAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgp
OwogfQogCi1kb3VibGUgUGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0
YW1wIFBlcmZvcm1hbmNlOjpub3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgLSBtX3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNv
bHV0aW9uKG5vdykubWlsbGlzZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBl
cmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0
dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFu
Y2U6Om1vbm90b25pY1RpbWVUb0hpZ2hSZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXApIGNvbnN0Cit7CisgICAgU2Vjb25kcyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3Jp
Z2luOworICAgIHJldHVybiByZWR1Y2VUaW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29u
ZHMoKTsKK30KKwogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlv
bigpCiB7CiAgICAgaWYgKCFpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRi
OWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVk
ZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01
Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2lu
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4p
KTsgfQogICAgIH5QZXJmb3JtYW5jZSgpOwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAg
IERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmln
YXRpb24qIG5hdmlnYXRpb24oKTsKICAgICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBA
IC04Miw2ICs4Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVS
ZXNvbHV0aW9uKFNlY29uZHMpOwogCisgICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNU
aW1lVG9IaWdoUmVzVGltZVN0YW1wKE1vbm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
aW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4Zjhm
M2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCAr
NTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBv
aW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENs
aWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zs
b2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0
ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24p
OwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1
c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxh
dGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBv
c2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VN
b3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRp
c2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0g
cHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1Rv
Q29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNN
b3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZj
ZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3Qg
ZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVu
dEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgx
ZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJs
aWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4g
bV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBt
X3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAg
IDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9
CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5
cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQ
bGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxN
b2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9v
bCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1l
c3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVy
czsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMw
ZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9B
UkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgot
ICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtl
eUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0
aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAg
ICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2Rp
ZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5
MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJs
ZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXks
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0
YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0
aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJl
ZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkw
YzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxh
dGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlv
biwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3
aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJv
b2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAg
ICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZv
cm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkK
ICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRp
b24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3
OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1
NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1v
bWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50
dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
LnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGlt
ZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWRE
ZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0
eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAg
ICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1l
c3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hl
ZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdo
ZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1
ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4u
YTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0
OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
Y29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNl
Y29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggZDliOTVhOTdkZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYz
ZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0YjlmZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudEd0ay5jcHAKQEAgLTEyNTksNyArMTI1OSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBl
CiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNv
bnN0cnVjdG9ycwogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQo
R2RrRXZlbnRLZXkqIGV2ZW50LCBjb25zdCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9u
UmVzdWx0cykKLSAgICA6IFBsYXRmb3JtRXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZl
bnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChldmVudCksIGN1cnJlbnRUaW1lKCkpCisgICAg
OiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJz
Rm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3RleHQoY29t
cG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5ndGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0
cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleXZhbCkpCiAg
ICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAgICAsIG1fa2V5KGtleVZhbHVlRm9yR2Rr
S2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4
OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4uZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRk
ZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
TW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRm
b3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29u
c3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVu
dEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBt
X3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAg
IG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZl
bnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAg
UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2
ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1v
dGlvbiogbW90aW9uKQogewotICAgIG1fdGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1f
dGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAg
bV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAg
ICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQp
bW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4
IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2RjYWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0
NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUg
PGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBs
YXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVu
dCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAg
IG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAm
IEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3Rr
LmNwcAppbmRleCBjMmFhOWRjMDFmNzY3ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2Rm
MjMwM2ZkODcxMTBkMDAxODk5NzVjOTlhMWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIs
OCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAg
IGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRv
dWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBh
dXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFz
dCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFz
dCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9h
dFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3Jv
bGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngo
KSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAw
MCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFz
dCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEz
Miw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsK
IAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZv
cm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVz
dGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQu
dGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJl
c2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xs
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYz
OTIzMTQ2Li40OGM4NDAzMzJiODliZmE5MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5
SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2lt
cG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3Jt
TW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBl
ID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAg
IG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3Np
dGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7
CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6
bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAg
ICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0z
NjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09
IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6Oktl
eURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsK
LSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFt
cCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJz
OwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9k
aWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlw
ZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmll
cnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1w
OworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50
aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxl
OwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAg
LTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQ
bGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAg
ICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOwor
ICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAg
IG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBl
YzIxZjEyYTE3OGRmODhlOWJmMjkwNGEwZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgs
NyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChO
U0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVu
dChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZl
bnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7
Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZl
bnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNF
dmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsK
IFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCmluZGV4IDJiMTgyMjRmODM0OWZmYmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFj
ZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUyYTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNp
bXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5
ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZh
bFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUg
ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQg
dGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNf
Y2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVu
dCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNF
dmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5
RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNw
cAppbmRleCA2NTU1YWVmMDk4ZmRiMGQwMzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMz
Yjg4NTEyN2UyNmMwYzllYzVlZTdhMjdjNzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQ
QVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1F
dmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRl
KFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkg
KiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJ
VF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQs
IGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAx
KSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNo
YXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgo
dHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2Rl
KSA6IFN0cmluZygpKQogICAgICwgbV9rZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZl
bnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29k
ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3Vz
ZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNl
RXZlbnRXaW4uY3BwCmluZGV4IDAwMGZkM2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3
NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRkZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3Bw
CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2
ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtLCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVz
c2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2UpLCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtf
Q09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRL
ZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisg
ICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYg
TUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NI
T1JULCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQo
aFduZCwgbFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JF
dmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUw
NWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEyOC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4
NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVs
RXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50
V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMo
KQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQs
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAg
IDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQo
UGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGly
ZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEu
d2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQ
bGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBN
S19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQo
KSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1Bh
cmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAu
MDAxKSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQog
ICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJh
bSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcx
MDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkwYWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5
YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNv
bmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2
MSwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2
b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVw
b2NoKCkudmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgdGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNv
bmRzLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IDViNWZkMzk3NDEzNGE5ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4
MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3Bh
Y2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2Fs
bFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNw
cAppbmRleCA1MDdiYzE2NjI4OWVkNWUyNjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5
N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2ZhY2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZl
bnQuY3BwCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNs
dWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJFdmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihOb1R5cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAs
IG1fdGltZXN0YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQo
VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAg
OiBtX3R5cGUodHlwZSkKICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGlt
ZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZk
YzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhiZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNl
ZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQ
b2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTEwNCwxMiArMTA1LDEyIEBAIHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmll
cnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsg
fQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9
CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0K
IAogcHJvdGVjdGVkOgogICAgIFdlYkV2ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wKTsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpA
QCAtMTE3LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90
eXBlOyAvLyBUeXBlCiAgICAgdWludDMyX3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAg
IGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8v
IEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5
ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgV2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwg
ZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlj
a1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOwor
ICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQg
ZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlw
ZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxz
ZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xp
Y2tUeXBlID0gTm9UYXApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50
IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2Ug
PSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBi
dXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpA
QCAtMTk3LDExICsxOTgsMTEgQEAgcHVibGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQog
Ci0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVl
bEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5
LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90
IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2
ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRl
bHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBi
b29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhh
c2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAg
V2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFz
ZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3
aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAs
MTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVT
RShBUFBLSVQpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQg
bmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxT
dHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRz
LCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQ
TEFURk9STShJT1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NW
aXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUs
IGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2Rp
ZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIs
IGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50
IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJL
ZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1v
ZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1
YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9v
bCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYg
a2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5
cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAj
ZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsg
fQpAQCAtMzgyLDcgKzM4Myw3IEBAIHByaXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2Vi
VG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQ
b2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBi
b29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24p
CisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cywgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3Rl
bnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1
cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAgICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9z
aXRpb24ocG9zaXRpb24pCkBAIC00NzEsNyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRv
dWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQo
KSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiYsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChU
eXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYg
dG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFk
MmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4uMGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2
ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAg
LTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNp
ZiBVU0UoQVBQS0lUKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4
dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBr
ZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVh
bEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQo
dW5tb2RpZmllZFRleHQpCkBAIC02Miw3ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktl
eWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYK
IAogI2VsaWYgUExBVEZPUk0oR1RLKQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2
ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9k
aWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6Oldl
YktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwg
aW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29s
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlz
S2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBX
ZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQog
ICAgICwgbV91bm1vZGlmaWVkVGV4dCh0ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29k
ZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9S
ZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmll
cnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRU
ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcm
IGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0
dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tl
eXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBA
IC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJL
ZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0
ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50
aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29k
ZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9v
bCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcm
IHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBi
b29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4
dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIz
ODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2ZhZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkg
QEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMp
Ci1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5
bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50
IG1lbnVUeXBlKQorV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRv
biBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQg
Y2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3Vi
bGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVu
dE51bWJlciwgaW50IG1lbnVUeXBlKQogI2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZl
bnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24g
YnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNs
aWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAg
ICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9u
KGJ1dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNi
YWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3Nzcx
MzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
VG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5j
cHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZl
bnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3Jt
VG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlw
ZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2lu
dHMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhk
ZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNmYWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNj
NzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJX
aGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24s
IGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3Jh
bnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6
IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihw
b3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3
ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRT
aXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQz
Ml90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRT
Y3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0
eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcg
KzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IElu
dFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50
VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1w
KQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFz
ZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFk
ZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAs
NyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChj
b25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAg
LyogZGVsdGFaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcg
QEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29u
c3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAg
ICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7
CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZl
bnQpKSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJL
ZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9z
aXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFu
ZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBX
VEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+
a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAg
Z2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCks
IGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5
cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQog
ICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50
SU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1Mu
bW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3
ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIs
NyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdl
YlRvdWNoRXZlbnQqIGV2ZW50KQogICAgIDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZl
bnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRp
Y19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAg
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0
cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZl
bnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9U
T1VDSF9FVkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFT
X0lTX1BPVEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9X
ZWJJT1NFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZl
bnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4
NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhjOTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUs
NyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRl
eHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0
ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVh
dCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0
dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwg
a2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVt
S2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0K
IAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2Ey
YTk4NjIwM2UwMTgyYjY1NjUxOWEyMzguLjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZk
YzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJH
ZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdl
Ykdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQu
aCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2lu
dC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2
Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZl
bnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAg
IHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2Rp
ZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQo
cG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZl
bnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50
eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2
MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYx
M2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50
RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5
Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9h
dCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291
bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBt
b2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGlt
ZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0
YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnRO
dW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsK
IApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9y
RXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAg
ICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2lu
dChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwg
ZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5
LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQ
cmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGlu
Z0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2Vi
S2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNF
dmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAg
ID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAg
ICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAg
ICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3Rh
bXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEz
IGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVy
ZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9
PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJH
ZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQu
aAppbmRleCBiYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4
ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6
OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJv
dGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0
aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAg
OiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0
aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZl
Zjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBk
YzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2
ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EK
ICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlk
ZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9r
ZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAg
ICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJz
Rm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsK
IH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZl
bnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGlt
ZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0K
IAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3Ip
CkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6
OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJF
dmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlj
a3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hl
ZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19j
YXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZl
bnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGlu
YXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2
ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBl
dmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3Vj
aFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0
YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYyZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQ
YWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFn
ZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1Bv
aW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0
dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsK
KyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChw
b3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50
LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBs
KHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xp
Y2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMs
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
U2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlv
biwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9u
KHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRl
TW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
dmVudC5jcHAKaW5kZXggMjYxOGZlNmMyZWY4NTY2ZWUyNzNjNmE3MzhmMDMxMDZjNjIyMjk5Yi4u
ZTdlZDdkODQ0YzZhZTY1NmNjYzdjOTM3MDE2YzczZGVlYzkzMmMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgZ3VpbnQz
MiB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKQog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VWRU5UKHNlbGYpLCAwKTsKICAgICBXZWJDb3JlOjpF
dmVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBndWludDMyIHJlc3VsdCA9IGl0
ZW0tPnRpbWVTdGFtcCgpOworICAgIGd1aW50MzIgcmVzdWx0ID0gaXRlbS0+dGltZVN0YW1wKCku
YXBwcm94aW1hdGVXYWxsVGltZSgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgx
MS5jcHAKaW5kZXggZGIyNDVjY2Q0ZmI2NzIyOWFjMTkyYTNlMWFkMGQ3MDkyZmE4NTNjMi4uOWE1
MTYzNGJkZTA2ZDg0Y2M5YTRiNWNkODMzYzM0ODRhNzhhODE5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDEx
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEv
TmV0c2NhcGVQbHVnaW5YMTEuY3BwCkBAIC0zMjEsOSArMzIxLDkgQEAgc3RhdGljIGlubGluZSB2
b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2ZW50JiBldmVudCkKICAgICBldmVudC54YW55LndpbmRv
dyA9IDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdWludDY0X3QgeFRpbWVTdGFtcChkb3VibGUgdGlt
ZXN0YW1wSW5TZWNvbmRzKQorc3RhdGljIGlubGluZSB1aW50NjRfdCB4VGltZVN0YW1wKFdhbGxU
aW1lIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4gdGltZXN0YW1wSW5TZWNvbmRzICogMTAwMDsK
KyAgICByZXR1cm4gdGltZXN0YW1wLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgeEtleU1vZGlmaWVycyhjb25zdCBXZWJFdmVu
dCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BE
RlBsdWdpbi5tbQppbmRleCBhZmNmZmE1MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWEx
Li44NmZlMzZiMWZmZDhhZDBjZWZlMjVhZDRkN2U4Y2E0NTE4YzZhODlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYs
NyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0
IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1l
KCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZy
YW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2
ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250
ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVu
dDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6
OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VE
b3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQ
b2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxl
Q29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggYTY0OGY3ZWFiZmViZWVkMGE2ZTc1ZTg2
YzYyZTBiNGEyYzFjY2Q1My4uZWNkNTY3ZmNjM2M1ZGU1MmE1MGE4MjhmNmU2ODQ1MzU4MTIzZjI5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViRXZlbnQ+IFBsdWdpblZp
ZXc6OmNyZWF0ZVdlYkV2ZW50KE1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmIChldmVu
dC5tZXRhS2V5KCkpCiAgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKIAot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwg
bV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZl
bnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291
bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIDAsIDApOwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwg
bV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZl
bnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291
bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIFdhbGxUaW1l
IHsgfSwgMCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlRXZlbnQoRXZlbnQmIGV2ZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAw
ZWFiZTY1OTkwZDkxN2UxZDkxZDkxZTJiOWU0ZmIzMGQ4NDJiMTVhLi5mZjhiYjk4MDQwNTAxYzE5
MjAwNDAzY2U0ZjQ5YjM1OTgyMjRiN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBXZWJQYWdlOjpu
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50
UG9pbnQgZG8KICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0g
MTsKLSAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVs
bHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1
bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCksCisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+
IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQs
IHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywg
c2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1
bWVudFBvaW50LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAog
I2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1LDExIEBAIFdlYkNvbnRleHRNZW51KiBXZWJQYWdlOjpj
b250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgY29y
ZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVudSgpOwogCiAg
ICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51
LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBS
aWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJD
b3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUHJlc3NFdmVudChwb2lu
dCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRn
ZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZVByZXNzRXZlbnQpOwogICAgIGJvb2wgaGFu
ZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRleHRNZW51RXZl
bnQobW91c2VQcmVzc0V2ZW50LCBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKSk7CiAgICAgYXV0byog
bWVudSA9IGhhbmRsZWQgPyBjb250ZXh0TWVudSgpIDogbnVsbHB0cjsKLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwor
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVhc2VFdmVudChwb2ludCwgcG9pbnQsIFJp
Z2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdl
YkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVN
b3VzZVJlbGVhc2VFdmVudChtb3VzZVJlbGVhc2VFdmVudCk7CiAKICAgICByZXR1cm4gbWVudTsK
QEAgLTM2NzQsNyArMzY3NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhZ0VuZGVkKFdlYkNvcmU6Oklu
dFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iCiAgICAgaWYgKCF2
aWV3KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlm
aWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgotICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3Rl
ZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgV2ViQ29yZTo6
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0
aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygp
LCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsK
IAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRW5kRHJhZ2dpbmcoKSk7CkBA
IC00NjcwLDE3ICs0NjcwLDE3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0
VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
OjpzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
biwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGlt
ZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6
SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2Vi
TW91c2VFdmVudDo6TW91c2VEb3duLCBzdGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+
KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGlj
X2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpLCB0aW1lLCBXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6Ok5vVGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50
UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91
c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0
b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0
PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNp
bXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1l
KQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBv
c2l0aW9uLCBXYWxsVGltZSB0aW1lKQogewogICAgIG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChX
ZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycygpLCB0aW1l
LCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQzMTU0YTYxNGI5M2MxMzdkNzI3NDliNDExYmQ1OTcy
OWJiN2JiYjcuLmJiMWY1MTI2ZDZiZjQyOTlhMzk2NzllMjUxZDM4MWFlNDRkZDc0ODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcg
QEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQ
TEFURk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAv
LyBGb3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1
dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
LCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2Vi
Q29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUg
dGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBk
b3VibGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJD
b3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1l
KTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lk
IHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lm
IEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBt
X2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBiY2RiMGJmMDZhMGNhOWMz
OWZmNWYzYzViNGE1MjU0NTYxMmJjMDUxLi5kYmFmYTE1Zjg3YmE0MDc3YTdhNzVmYWRkZjM4NWRm
NDI0Mzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxl
U3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGCiAKICAgICBXS0JlZ2luT2JzZXJ2aW5nQ29udGVudENoYW5nZXModHJ1ZSk7CiAKLSAgICBt
YWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJl
bnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBt
YWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxU
aW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOwogICAg
IG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0
b3BPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpOwpAQCAtNTgxLDExICs1ODEsMTEgQEAgdm9pZCBX
ZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGlj
aywgY29uc3QgV2ViQ29yZToKICAgICBib29sIHRhcFdhc0hhbmRsZWQgPSBmYWxzZTsKICAgICBt
X2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gcm91bmRlZEFkanVzdGVkUG9pbnQ7CiAKLSAgICB0
YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNz
RXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRq
dXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5m
cmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2
ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0Ns
aWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICB0
YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAx
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1h
aW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1v
dXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRo
ZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAK
QEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNG
b3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpbwogICAgIC8vIFRvIGF1
Z21lbnQgdGhlIHBsYXRmb3JtIGRyYWcgc2Vzc2lvbiB3aXRoIGFkZGl0aW9uYWwgaXRlbXMsIGVu
ZCB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24gYW5kIGJlZ2luIGEgbmV3IGRyYWcgc2Vzc2lvbiB3
aXRoIHRoZSBuZXcgZHJhZyBpdGVtLgogICAgIC8vIFRoaXMgcHJvY2VzcyBpcyBvcGFxdWUgdG8g
dGhlIFVJIHByb2Nlc3MsIHdoaWNoIHN0aWxsIG1haW50YWlucyB0aGUgb2xkIGRyYWcgaXRlbSBp
biBpdHMgZHJhZyBzZXNzaW9uLiBTaW1pbGFybHksIHRoaXMgcGVyc2lzdGVudCBkcmFnIHNlc3Np
b24KICAgICAvLyBpcyBvcGFxdWUgdG8gdGhlIHdlYiBwcm9jZXNzLCB3aGljaCBvbmx5IHNlZXMg
dGhhdCB0aGUgY3VycmVudCBkcmFnIGhhcyBlbmRlZCwgYW5kIHRoYXQgYSBuZXcgb25lIGlzIGJl
Z2lubmluZy4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAg
IFBsYXRmb3JtTW91c2VFdmVudCBldmVudChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24s
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCkuZHJhZ0VuZGVkKCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVu
dEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgRHJhZ09wZXJhdGlvbk5vbmUsIE1h
eUV4dGVuZERyYWdTZXNzaW9uOjpZZXMpOwogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJQ
YWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHBvc2l0aW9uKQogICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQo
cG9zaXRpb24pOwogICAgIEZyYW1lJiBtYWluZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwog
Ci0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2
ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgV2ViQ29y
ZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0
Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2ludCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB7
IH0sIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CiAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0
ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQppbmRleCA0OGFlOWY3OWNiOTI0
NDA1MjRhN2ZmZjQ5ZGIwNWM2YTllMTQzM2Y2Li5jOTE1ZmU0ZDg2N2UyMjcxM2NmZDQ1MWUzMmQ4
Mzc5Zjk4M2MxY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3
L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9X
ZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQpAQCAtNDgsNyArNDgsNyBAQAogI2ltcG9y
dCA8V2ViS2l0TGVnYWN5L1dlYk5TVmlld0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5
L1dlYlBERkRvY3VtZW50RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViVmlld1By
aXZhdGUuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL01vbm90
b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1Zl
Y3Rvci5oPgogCkBAIC00NzksNyArNDc5LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJ
R0hUX0lOU0VUID0gNC4wZiAqIDIuMGY7CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0
cnVjdCBhbiBldmVudCB0byBzaW11bGF0ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZl
bnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRy
dWUsIGN1cnJlbnRUaW1lKCksIDAsIDEsIDAsIDAsIDAsIDAsCisgICAgUmVmUHRyPEV2ZW50PiBl
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwg
dHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIDEsIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUV2ZW50Lm1tCmluZGV4IDk1Zjg0ZGQyNWE4NDNhZWJiYTQyMmQzYmRjODBkMTRm
YTMwOGYyMWEuLjMyMWE3ZjAxNjgxZjIxYTQ4NjY5Y2Q5ODNlZDU0NTcxMDg0ZjcxYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0g
KERPTVRpbWVTdGFtcCl0aW1lU3RhbXAKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPnRpbWVTdGFtcCgpOworICAgIHJldHVybiBJ
TVBMLT50aW1lU3RhbXAoKS5hcHByb3hpbWF0ZVdhbGxUaW1lKCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMw
YmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1Li5mMzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYw
NDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRh
dGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8v
IEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3Vs
ZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50
UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+
cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNv
cmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAg
ICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQo
ZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERS
QUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAx
M2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0ZjlhMDQwNTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEw
MTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZy
YW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAg
ICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNy
ZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICBldmVu
dCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9h
cmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0
dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0Nv
dW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAw
LCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViRHJvcFNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJEcm9wU291cmNlLmNwcAppbmRleCBmNzRmM2QzYzgzOTdlMjQ0YzJhOTNjMzFjOWFlNWZjZTNl
ZGMwZWQxLi4yMTVlNzFmNWU3ZWQwZjlhMzVmOTY1ZjU0MDMwMDJiMzcwYjkxYTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEcm9wU291cmNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEcm9wU291cmNlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBA
IFBsYXRmb3JtTW91c2VFdmVudCBnZW5lcmF0ZU1vdXNlRXZlbnQoV2ViVmlldyogd2ViVmlldywg
Ym9vbCBpc0RyYWcpCiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT52aWV3V2luZG93KCZ2aWV3
V2luZG93KSkpCiAgICAgICAgIDo6U2NyZWVuVG9DbGllbnQodmlld1dpbmRvdywgcmVpbnRlcnBy
ZXRfY2FzdDxMUFBPSU5UPigmbG9jYWxwdCkpOwogICAgIHJldHVybiBQbGF0Zm9ybU1vdXNlRXZl
bnQoSW50UG9pbnQobG9jYWxwdC54LCBsb2NhbHB0LnkpLCBJbnRQb2ludChwdC54LCBwdC55KSwK
LSAgICAgICAgaXNEcmFnID8gTGVmdEJ1dHRvbiA6IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwg
MCwgTm9UYXApOworICAgICAgICBpc0RyYWcgPyBMZWZ0QnV0dG9uIDogTm9CdXR0b24sIFBsYXRm
b3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxs
VGltZTo6bm93KCksIDAsIE5vVGFwKTsKIH0KIAogU1RETUVUSE9ESU1QIFdlYkRyb3BTb3VyY2U6
OlF1ZXJ5Q29udGludWVEcmFnKF9Jbl8gQk9PTCBmRXNjYXBlUHJlc3NlZCwgX0luXyBEV09SRCBn
cmZLZXlTdGF0ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY1NzI3M2NmYzAw
N2UxMjgwODM2MmFkMjRjMDIwYjI2NWYwZmFkNzguLmZhOTE0NDI3Nzc3YmI2MzA4MDIyNWE3NjE2
Yjc5MDI3YTc1ZmIwNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCBub3cgdGhhdCBtb3JlIGNo
ZWNrcyBhcmUgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorCiAyMDE3
LTA5LTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZy
ZXNoIFdQVCB0ZXN0cyB1cCB0byBmNjVhZjQxMWQ2M2VjMTNlZThmZTIwOGI0ZWZmZDczMGE0YThi
N2ZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3ZTc1YjgwYWNmYjc5NjFjNmY3NmIyNjAzODc0ODdm
YjY2MGYyZTBhLi5lZDU5NDhjNzA0ZmQ2YTg5M2Y2NzZkZTc3OWQyNGQ3ODBmNjg5MDhiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE3Niw3ICsxNzYsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxMi5odG1sIFsgSW1hZ2VPbmx5
RgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVy
Zmxvdy0wMTUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMTcuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMv
dGV4dC1vdmVyZmxvdy0wMjEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29s
dXRpb24uaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvRG9jdW1lbnQtY29uc3RydWN0b3Itc3ZnLnN2ZyBbIFRpbWVvdXQgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWN1cml0eS9kYW5nbGluZy1tYXJrdXAt
bWl0aWdhdGlvbi50ZW50YXRpdmUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvdGltZU9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZl
bnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ3ZmEzZDZm
NTY3ZTRlOThiMTI4MDEyODI1ZDYyZDE4ODZjZWUzZi4uNmViMTBlODczNWFiMjQwNGQwZmFiN2Rm
Mzc0YTUyYzZlMzZmYzM0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBDb25zdHJ1Y3RlZCBNb3VzZUV2ZW50IHRp
bWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUg
b3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50
IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFt
cCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9y
IGVxdWFsIHRvIDUyMy44MDAwMDAwMDAwMDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBD
b25zdHJ1Y3RlZCBLZXlib2FyZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0
aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFz
c2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFu
IHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhw
ZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC40IGJ1dCBnb3QgMTUwNTc3
MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3RlZCBXaGVlbEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUg
aGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1h
bmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQg
YmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMg
Y3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC41MDAw
MDAwMDAwMDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgorUEFTUyBDb25zdHJ1Y3RlZCBNb3VzZUV2
ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1l
IHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAorUEFTUyBDb25zdHJ1Y3RlZCBLZXli
b2FyZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRo
ZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAorUEFTUyBDb25zdHJ1Y3Rl
ZCBXaGVlbEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZl
IHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAogRkFJTCBDb25zdHJ1
Y3RlZCBHYW1lcGFkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5k
IGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgTm90IGVub3Vn
aCBhcmd1bWVudHMKLUZBSUwgQ29uc3RydWN0ZWQgRm9jdXNFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJm
b3JtYW5jZS5ub3coKSBhc3NlcnRfbGVzc190aGFuX2VxdWFsOiBFdmVudCB0aW1lc3RhbXAgc2hv
dWxkIGJlIGxlc3MgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4gYWZ0ZXIg
aXRzIGNyZWF0aW9uIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1MjQu
NiBidXQgZ290IDE1MDU3NzAxNTI1NjYKK1BBU1MgQ29uc3RydWN0ZWQgRm9jdXNFdmVudCB0aW1l
c3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9y
aWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321474</attachid>
            <date>2017-09-21 13:49:51 -0700</date>
            <delta_ts>2017-09-22 08:55:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170921134950.patch</filename>
            <type>text/plain</type>
            <size>119710</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM1OGY1YTNkNWE2NjI4
Y2NhOWI3MDFjMTk5ZjdhZmQwYzM3MjY3NS4uMWJkMmM1ODdlMDJmZWEzMDEyOGQ0Mzk3ODgxYjMz
MjhkMjhlMWRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMyBAQAogMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgZXZlbnQudGltZVN0YW1wIHJldHVybiBhIERPTUhpZ2hSZXNUaW1lU3RhbXAgaW5zdGVhZCBv
ZiBhIERPTVJlc1RpbWVTdGFtcC4gSXQgbm93CisgICAgICAgIGhhcyBiZXR0ZXIgcHJlY2lzaW9u
LCBpcyBtb25vdG9uaWMgYW5kIGlzIHJlbGF0aXZlIHRvIFBlcmZvcm1hbmNlVGltaW5nLm5hdmln
YXRpb25TdGFydC4KKworICAgICAgICBUaGlzIGlzIGFzIHBlcjoKKyAgICAgICAgLSBodHRwczov
L2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1ldmVudAorCisgICAgICAgIENocm9tZSwg
RmlyZWZveCBhbmQgRWRnZSBhbGwgYWxyZWFkeSBzaGlwIHRoaXMgc28gdGhlIGNvbXBhdGliaWxp
dHkgcmlzayBzaG91bGQgYmUgbG93LgorCisgICAgICAgIEFsc28gdXNlIFdhbGxUaW1lIC8gTW9u
b3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAg
IFRlc3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcC4KKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4pOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudDo6RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OnRp
bWVTdGFtcEZvckJpbmRpbmdzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1lU3RhbXAgY29uc3QpOgorICAgICAgICAqIGRvbS9FdmVu
dC5pZGw6CisgICAgICAgICogZG9tL0tleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogZG9tL01vdXNlRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VFdmVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vdXNlUmVsYXRlZEV2ZW50OjpNb3VzZVJlbGF0ZWRFdmVudCk6CisgICAgICAgICog
ZG9tL01vdXNlUmVsYXRlZEV2ZW50Lmg6CisgICAgICAgICogZG9tL1NpbXVsYXRlZENsaWNrLmNw
cDoKKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3Vj
aEV2ZW50OjpUb3VjaEV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpVSUV2ZW50OjpVSUV2ZW50KToKKyAgICAgICAgKiBkb20vVUlFdmVudC5oOgor
ICAgICAgICAqIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpV
SUV2ZW50V2l0aEtleVN0YXRlOjpVSUV2ZW50V2l0aEtleVN0YXRlKToKKyAgICAgICAgKiBkb20v
V2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50OjpXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUeXBl
QWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2
ZW50KToKKyAgICAgICAgKiBodG1sL1R5cGVBaGVhZC5oOgorICAgICAgICAqIHBhZ2UvQXV0b3Nj
cm9sbENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9sbENvbnRyb2xs
ZXI6OkF1dG9zY3JvbGxDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxD
b250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hEcmFnRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZv
cktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgICog
cGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6bm93
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjptb25vdG9uaWNUaW1lVG9I
aWdoUmVzVGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6Cisg
ICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludCk6CisgICAgICAg
ICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0
Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50Ojp0aW1lc3RhbXAg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxhdGZvcm1FdmVudCk6
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVy
R0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRmb3JtTW91c2VFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcjo6
UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1h
Yy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToKKworMjAxNy0wOS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIGV2ZW50SW5pdERp
Y3QgcGFyYW1ldGVyIHRvIEdhbWVwYWRFdmVudCBjb25zdHJ1Y3RvciBzaG91bGQgYmUgb3B0aW9u
YWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzMw
OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGIzODcxMjQ1ZDIwMDRjMjZiNmMxN2Q2NDhhMzk0M2I2NzAwYzAwYWIu
LjY2NThkZjNmOGUxMDYyZmNmNjIzOTlkNjg5NGZkM2EyZDk3OWU0NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsNzYgQEAKIDIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAorICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgV2FsbFRpbWUgLyBNb25vdG9uaWNUaW1lIGlu
c3RlYWQgb2YgZG91YmxlIHR5cGUgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXYWxs
VGltZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+Ojpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAg
ICAgKiBTaGFyZWQvV2ViRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudDo6V2Vi
RXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFdmVudDo6dGltZXN0YW1wIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVu
dDo6V2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KToK
KyAgICAgICAgKiBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJUb3VjaEV2
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG91Y2hFdmVudDo6V2ViVG91Y2hFdmVudCk6
CisgICAgICAgICogU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViTW91c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2
ZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvaW9zL1dlYklPU0V2ZW50RmFjdG9yeS5t
bToKKyAgICAgICAgKFdlYklPU0V2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6
CisgICAgICAgICogU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50
KToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJHZXN0
dXJlRXZlbnQ6OldlYkdlc3R1cmVFdmVudCk6CisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VE
b3duKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VVcCk6CisgICAgICAgIChX
S0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlTW90aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpzaG93
Q29udGV4dE1lbnVBdFBvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmNyZWF0ZVdlYkV2ZW50IGNv
bnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3cpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmFnRW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaW11bGF0ZU1vdXNlRG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNp
bXVsYXRlTW91c2VVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNpbXVsYXRlTW91c2VN
b3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXBsZXRlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpy
ZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKToKKworMjAxNy0wOS0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFtXSzJdIEFkZCBB
UEkgdG8gZ2V0IHRoZSByZWRpcmVjdCBjaGFpbiBvZiBhIFdLRG93bmxvYWQKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjYyOAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzQzMzgyNzk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggNmM0
MTliMGQwODI1YzJmNGVhMDNlZGQ1YTUyZWU3ZjgyNmQzMGVkZi4uMWJmYmEyYzMwZWFhZWE2ODgx
M2NhZDY0MDlkMDAzOTY5MWJlYTIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDI0Ngor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBp
bnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogV2ViVmlldy9X
ZWJQREZWaWV3UGxhY2Vob2xkZXIubW06CisgICAgICAgICgtW1dlYlBERlZpZXdQbGFjZWhvbGRl
ciBzaW11bGF0ZUNsaWNrT25MaW5rVG9VUkw6XSk6CisKIDIwMTctMDgtMDkgIFlvc2hpYWtpIEpp
dHN1a2F3YSAgPFlvc2hpYWtpLkppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBbUEFMXSBN
b3ZlIHNwaS9jb2NvYSBhbmQgc3BpL2NnIGRpcmVjdG9yaWVzIGludG8gUEFMCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggZThhOWNkOTFkMTUxZDQwNGM3OTkzODEzM2Q0ZjAyM2ZhNmJk
N2NkOS4uOTQ2ZWRmMzY4NmI0NmM4NGQzMDJmODk5NWI4MWYxOTVmMWUzYTY3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA5LTIxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0
aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFdh
bGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5
LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgorICAgICAgICAoLVtET01FdmVudCB0aW1l
U3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJG
cmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25M
aW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWJWaWV3IGluZGljYXRpb24g
aGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJLaXRMZWdhY3kgdmlld3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxY2Ix
MmJmMWU4OWQ3NmQ0ZjQyMzVjYzM4OTk0NDkxZTc5NmE0NTU3Li4wZjE0NDVlNjM3MGYwNmU2MzVj
MzdhOTdjYTY1MGE4ZWQ0ODZlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3LDYgKzE5NTcsNyBAQAogCQk0NjBCQjYx
NjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBCQjYxNDFEMEExQkVDMDAyMjE4MTIgLyog
QmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVy
dGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLzsg
fTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzQx
RDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oICovOyB9OworCQk0NjIx
OEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgy
QjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJP
YnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5jcHAgKi87
IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIwMUI4Nzg5
Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJNDYzRUI2MjMxQjg3ODlF
MDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0
aW9uLmggKi87IH07CkBAIC05ODM2LDYgKzk4MzcsNyBAQAogCQk0NkRGRjQ5NzFEQzI2MDEzMDBC
ODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRv
d1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERkY0OTkxREMy
NjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8q
IERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVC
RUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlvblRyYXZlcnNhbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9uVHJhdmVyc2FsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5QzIwMEU3RjM0QiAvKiBMb3dQb3dlck1v
ZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG93UG93ZXJNb2RlTm90aWZpZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYyNDEsNiArMjYyNDMsNyBAQAog
CQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBET01FeGNlcHRpb24uaCAqLywKIAkJCQlC
QzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmlkbCAqLywKIAkJCQlCQzlB
NjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0aW9ucy5pbiAqLywKKwkJCQk0NkUwMTZB
RDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovLAogCQkJCUE4MTg1
RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgx
ODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNF
RUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxlbWVudGF0aW9uLmlkbCAqLywKQEAgLTI3
NjkyLDYgKzI3Njk1LDcgQEAKIAkJCQlCQzYwRDZFOTBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4NkIgLyog
RE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVENjA5QkQxMTQ1QjA3MTAwQzg2
ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjIxOEFDQjFGNzJENjRF
MDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgx
ODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMwMDE5NDAxMiAvKiBET01KSVRIZWxwZXJz
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01IaWdo
UmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdlZmU1Zjg1MWEwNjdlNTM2OWQzZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVTdGFtcC5o
CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGltZVN0YW1wID0gZG91YmxlOworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5MDBlZDMyZDRkYjg2MjNlZGQ2MTkxNDRl
ZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1Njc0N2I2N2ViYjI0YWMwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1LDcgQEAgYm9vbCBFbGVtZW50OjpkaXNw
YXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQgeyBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRvbiwgUGxh
dGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV1RGOjpj
dXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CisgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5sYXN0S25vd25N
b3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3VzZUdsb2Jh
bFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpOb1R5cGUsIDEsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXAg
fTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdpbGxiZWdpbkV2ZW50LCBkb2N1bWVudCgp
LmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVudCwgMCwgbnVsbHB0cik7CiAgICAgbW91
c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CiAgICAgZGlzcGF0Y2hFdmVu
dChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggODcwNTk1
MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5ZS4uZTQ2M2RjZjRhZWM1OWU5YzAwOTc0
MTAxYTQ5YWQ1NGJiODQ4MjIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yMywxNyArMjMsMjEg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudC5oIgogCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNp
bmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgi
CisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFdmVudDo6RXZlbnQoSXNUcnVzdGVkIGlz
VHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykK
LSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRU
aW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQog
CkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXIKICAgICAsIG1fY2Fu
QnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2FuY2VsYWJsZShjYW5jZWxhYmxlQXJnKQog
ICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25k
c1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90
b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRvdWJs
ZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGlt
ZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkKICAgICAsIG1faXNJbml0aWFsaXplZCh0
cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxlQXJnKQogICAgICwgbV9jYW5jZWxhYmxl
KGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3RlZCh0cnVlKQotICAgICwgbV9jcmVhdGVU
aW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAodGltZXN0YW1wKSkKKyAgICAsIG1fY3Jl
YXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0LDcgKzY4LDcgQEAgRXZlbnQ6OkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudEluaXQmIGluaXRpYWxp
emVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShpbml0aWFsaXplci5jYW5jZWxhYmxlKQog
ICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21wb3NlZCkKICAgICAsIG1faXNUcnVzdGVk
KGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0
U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1l
KE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC0yMTYsNCArMjIwLDE4IEBAIHZvaWQg
RXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCogdW5kZXJseWluZ0V2ZW50KQogICAgIG1f
dW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50OwogfQogCitET01IaWdoUmVzVGltZVN0
YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSA9IG51bGxwdHI7
CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkKKyAgICAgICAgcGVyZm9y
bWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnBlcmZvcm1hbmNl
KCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRl
eHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3JtYW5jZSA9IHdpbmRvdy0+cGVyZm9ybWFu
Y2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisgICAgICAgIHJldHVybiAwOworCisgICAg
cmV0dXJuIHBlcmZvcm1hbmNlLT5tb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKG1fY3Jl
YXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXgg
OWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQzNDUxYzhkMi4uYzVkNGQ0MWQ2Mzc4MTFm
MjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTIzLDExICsyMywx
MiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1
ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNsdWRlICJFdmVudEluaXQuaCIKICNpbmNs
dWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC05Niw3ICs5Nyw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGFibGU7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2VkKCkgY29uc3Q7CiAKLSAgICBET01UaW1l
U3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVUaW1lOyB9CisgICAgRE9N
SGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5kaW5ncyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVy
biBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0RXZlbnRQYXRoKGNvbnN0IEV2ZW50UGF0
aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9CiAgICAgdm9pZCBjbGVhckV2ZW50UGF0
aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBAIC0xNzAsNyArMTcyLDcgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8pOwogICAg
IFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5C
dWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wKTsK
KyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKTsKICAgICBFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAgLTE5NSw3ICsxOTcsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJyZW50VGFyZ2V0OwogICAgIGNvbnN0IEV2
ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0
PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9jcmVhdGVUaW1lOworICAgIE1vbm90b25p
Y1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRyPEV2ZW50PiBtX3VuZGVybHlpbmdFdmVu
dDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNmMzFjYzhkNWZjMDJjYWEzNDMzNTEwOTU5
N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRhM2UyMjc4YzNmZjVmZDMxOTE2MDk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDggQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3RhbXA7CisK
IFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXZlbnRJbml0IGV2
ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmplY3QsCkBAIC00OCw3ICs1MCw3IEBACiAg
ICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAgdGltZVN0
YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFz
PXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJlc1RpbWVT
dGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlwZSwgb3B0
aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2FuY2VsYWJs
ZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQu
Y3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRkMThmMGYxZTA4ZGRiMmYxYWYuLjQ4MDRj
MWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5
Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRF
dmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChjb25zdCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93KiB2aWV3KQogICAgIDogVUlFdmVu
dFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50VHlwZShrZXkudHlwZSgpKQot
ICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKSwgdmlldywgMCwga2V5LmN0cmxL
ZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQorICAgICAgICAsIHRydWUsIHRydWUs
IGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwga2V5
LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQogICAgICAgICAsIGtleS5t
ZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6
TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5RXZlbnQoc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYgRU5BQkxFKEtFWUJPQVJEX0tFWV9B
VFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggZWI3NmQ2YWY5MWY5NTZk
MjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVhN2E0NDY2YTUwMjM4MmNlZTcxMmRiOGVj
MmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKLSNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MSw3
ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmllCiAgICAgYm9vbCBpc0NhbmNlbGFibGUg
PSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01vdXNlRW50
ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVhdmU7CiAK
LSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxlLCBpc0Nh
bmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LAorICAgIHJldHVybiBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0
YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsCiAgICAgICAgIGRldGFpbCwg
ZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBl
dmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92
ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNl
RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2
aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQuZm9yY2UoKSwgZXZlbnQuc3ludGhldGlj
Q2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
ZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQgc2NyZWVu
WCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorUmVmPE1vdXNlRXZlbnQ+IE1v
dXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZp
ZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQg
cGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBpbnQgbW92ZW1lbnRYLCBpbnQg
bW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZl
bnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0
YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5M
b2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAorTW91c2VFdmVudDo6TW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywg
aW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2lu
dCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgY29u
c3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5kaWYKQEAgLTEwMyw3ICsxMDIsNyBAQCBN
b3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxl
LCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2Nh
dGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0aW9uLCBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0IGJ1dHRv
biwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBFdmVudFRhcmdldCogcmVsYXRl
ZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBj
YW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZpZXcsIGRldGFpbCwgc2NyZWVuTG9jYXRp
b24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnViYmxlLCBj
YW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgdmlldywgZGV0YWlsLCBzY3JlZW5Mb2Nh
dGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIHsgfSwKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMwMDgyYmQzYWY2YTRhZTVhYjczOTZkMWQx
OTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5YTdiM2M3NmY5ODI5ZjkzZGJjMTc3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFBsYXRmb3Jt
TW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1YmxpYyBNb3VzZVJlbGF0ZWRFdmVu
dCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBj
cmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBpbnQgc2Ny
ZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3Rh
bXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50
IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgaW50
IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3RlZDoKLSAgICBNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWws
IGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xv
Y2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50
JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVs
YXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAK
aW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5NjI5Njg1OTNkM2Y0OC4uNjkxNWU5YzMw
NzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUg
dGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNlUmVsYXRlZEV2ZW50OjpNb3Vz
ZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyog
RE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXRh
aWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRv
d0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTczMGEyMDhhZjk0MTUyMDFhNTI4
ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYwNTkzZjNjOWVkZGVhZmIzMjAyZDAwMTBm
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCkBAIC03Myw3ICs3Myw3
IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRlZEV2ZW50KCkgPSBkZWZh
dWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93
KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01X
aW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9jYXRp
b24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNiNGQ3ZjcyMzYyZmE3ZTliNzIwZTU0MmJj
NDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJlMDE3ZDFiOGUwNjgzMThiNzgwY2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcApAQCAtNDYsNyArNDYsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5kZXJseWlu
Z0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJjZSkKLSAg
ICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWluZ0V2ZW50
ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1cnJlbnRUaW1lKCksIHZpZXcsIDAs
IHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCB0cnVlLCB1
bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDogTW9ub3Rvbmlj
VGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAppbmRl
eCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5OWE0MDI4MjlkLi44NzNmMjk2NGJkNDNi
YzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3Bw
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5oIgogCiAjaW5jbHVkZSAi
RXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50
KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAgICAgICBU
b3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAogICAg
ICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VY
LCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hp
ZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUs
IHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkp
LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGlt
ZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQoMCwgMCksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRhODBkOWRkMThmMGVlNGU0MjcwMjJlYTU5
NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2FiNmFmODliZjllOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9V
SUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYgogewog
fQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29s
IGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBkb3VibGUgdGltZXN0YW1wLCBET01X
aW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitVSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxl
QXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3QXJnLCBpbnQgZGV0
YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVB
cmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3QXJnKQogICAgICwgbV9kZXRhaWwoZGV0
YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTczZDczZWYzZmEzMzUzYzBmNzk2M2NhMGZh
OGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIzMTUzZGE1MWJhMGFlYWZkMjQ1NWZhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoK
ICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJv
b2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRhaWwpOwot
ICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9v
bCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsKTsK
KyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBk
ZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVUlFdmVudElu
aXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0
aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUxYWQ1MWYwNzBiZTM2YmU0NDU4MTYyNGRl
Mi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEyYmEzMGNjY2RlYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3IEBAIHByb3RlY3Rl
ZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3Rv
bmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAgaW50IGRldGFpbCwg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LCBi
b29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAgICAgOiBVSUV2ZW50
KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3LCBkZXRhaWwpCiAg
ICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3Bw
CmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2UyNzhiNTczZjZmMzcwODQuLjgwZGIwNWEx
NTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVu
dC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKIH0KIAogV2hl
ZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBET01X
aW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0
cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRp
b24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91c2VFdmVudChldmVudE5hbWVzKCkud2hl
ZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9u
aWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIGV2ZW50LnBvc2l0aW9u
KCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAsIHsgfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3ZDg0OWE2YmFlMDU5Njg2YjVkMjk0OTQ4
MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4NzVmYWZiMjIzYTM3NTNkNDI1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcsMTIgKzM3LDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0
YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRhU291cmNlKQotICAgICwgbV9sYXN0VHlw
ZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogewogfQogCi1zdGF0aWMgY29uc3Qg
RE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworc3RhdGljIGNvbnN0IFNlY29u
ZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBzdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGlu
Z1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC02Myw3ICs2Miw3IEBAIGlu
dCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRjaE1vZGVG
bGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBvcHRpb25Db3Vu
dCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsKLSAgICBET01UaW1lU3RhbXAgZGVsdGEg
PSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGltZTsKKyAgICBTZWNvbmRzIGRlbHRh
ID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CiAgICAgbV9sYXN0VHlwZVRp
bWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2Rl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2MTBhYzc4Mjg4Yjc2MDI0Nzk3N2JmMmUy
MzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3YmUxZjllNDYyN2M2Zjc0ZGU2YWMyNThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYvTW9ub3Rvbmlj
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAgIERPTVRpbWVT
dGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5cGVUaW1lOwog
ICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKaW5kZXgg
ZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1ZDg3ZTVlNS4uZTUyODdjMGNiMjM3MDEy
NmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRv
c2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICszNywxMSBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
LSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAv
LyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQgYXV0b3Njcm9sbCBpZiBwb2ludGVyIGlz
IGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxlbWVudC4KLXN0YXRpYyBjb25zdCBkb3Vi
bGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGljIGNvbnN0IFNlY29uZHMgYXV0b3Njcm9s
bERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhlIGF1dG9zY3JvbGwgb3IgdGhlIHBhblNj
cm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Nyb2xsIGV2ZXJ5IDUwbXMgdG8gbWFrZSBp
dCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhdXRvc2Nyb2xsSW50ZXJ2YWwgeyA1MF9t
cyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6QXV0b3Njcm9sbENv
bnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGltZXIoKnRoaXMsICZBdXRvc2Nyb2xsQ29u
dHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAgICAgLCBtX2F1dG9zY3JvbGxSZW5kZXJl
cihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlwZShOb0F1dG9zY3JvbGwpCi0gICAgLCBt
X2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgwKQogewogfQogCkBAIC0xNDAsNyArMTM4
LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJlbmRlcmVy
KCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlzPFJlbmRlckJveD4ocmVuZGVyZXIpID8g
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBudWxscHRyOwogfQogCi12b2lkIEF1dG9z
Y3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9kZSwg
Y29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRvdWJsZSBldmVudFRpbWUpCit2b2lkIEF1
dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiBkcm9wVGFyZ2V0Tm9k
ZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIFdhbGxUaW1lIGV2ZW50VGltZSkKIHsK
ICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAgICAgIHN0b3BBdXRvc2Nyb2xsVGltZXIo
KTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjphdXRvc2Ny
b2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1lID0gbV9hdXRvc2Nyb2xsUmVuZGVyZXIt
PmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3JvbGxUeXBlKSB7CiAgICAgY2FzZSBBdXRv
c2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlmIChXVEY6OmN1cnJlbnRUaW1lKCkgLSBt
X2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+IGF1dG9zY3JvbGxEZWxheSkKKyAgICAg
ICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1l
ID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVyZXItPmF1
dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZvclNlbGVjdGlvbjogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IDNjZDlkYmYzMzc5Y2I3Nzdh
OGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0NGRkYzk0NTE0ZjY5NDJkNDZiZGI4ZjBm
OGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEZvclNl
bGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHN0b3BBdXRvc2Nyb2xsVGltZXIoYm9v
bCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CiAgICAgdm9pZCB1cGRhdGVBdXRv
c2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdl
dE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRUaW1lKTsK
KyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEludFBv
aW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRpbWUpOwogI2lmIEVOQUJMRShQQU5f
U0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQoKTsKICAgICB2b2lkIGRpZFBh
blNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJCb3gq
IG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9zY3JvbGxUeXBlIG1fYXV0b3Njcm9sbFR5
cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlv
bjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CisgICAgV2Fs
bFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CiAjaWYgRU5BQkxFKFBBTl9T
Q1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3JvbGxTdGFydFBvczsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDgwMTFj
NDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZiZjcuLjMyMmI0OTIzZmZiMjQyN2MyYjg1
YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2VyVHlwaW5n
R2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAgLTE0NDAs
NyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVB
dChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250ZXh0TWVu
dSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUg
YWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQo
Y2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
UHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZv
cmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNs
aWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIEZv
cmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNl
UHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhh
bmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3OTVhYWQw
YmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4YTIwNmI1NTU5NjQ3YzA4ZTJiNTFiYTVj
NmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAg
LTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1Nb3VzZUV2ZW50IGNyZWF0ZU1vdXNlRXZl
bnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAgcmV0dXJuIFBsYXRmb3JtTW91c2VF
dmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS5nbG9iYWxQb3NpdGlvbigp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywg
Tm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgV2FsbFRpbWU6
Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0KIAogRHJhZ0NvbnRyb2xsZXI6OkRyYWdD
b250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDliMDFkMWFlMzM5ZjQ2Y2VkNGEyNDU4OGQz
ZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3NzRlMjkzNGQ0YTQ0Nzk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgY29uc3QgaW50
IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpcyA9
IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJlc2lzID0gMzsKICNpZiBQTEFURk9STShD
T0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjE1Owor
Y29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgeyAxNTBfbXMgfTsKICNl
bmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKQEAgLTIxOTAsNyArMjE5MCw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAgICB2aWV3LT5kaXNhYmxlTGF5ZXJGbHVz
aFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAgUmVmPE1vdXNlRXZl
bnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwKLSAgICAgICAgdHJ1ZSwgdHJ1
ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwK
KyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9u
aWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAgICAgICAgMCwg
ZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpLCBl
dmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZlbnQubW92
ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkzOSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBl
dmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAjZW5kaWYKIAotICAgIFBs
YXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQocG9zaXRpb24sIGdsb2JhbFBvc2l0
aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKKyAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwg
UmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdh
bGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiAKICAgICByZXR1cm4gc2VuZENv
bnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKIH0KQEAgLTMwMjEsNyArMzAyMSw3
IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCkKICAg
ICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7CiAgICAgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBt
ZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50KG1fbGFz
dEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9uLCBOb0J1
dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFs
dEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xh
c3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3Vz
ZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVkKGZha2VNb3VzZU1vdmVFdmVudCk7CiB9
CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMzYmVmNjJiMDk3YzQ2YWVkYmY2NzY2My4u
YTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJiZjQ4Nzk4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgp
OwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0aWMgY29u
c3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURy
YWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2NCw3IEBA
IHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwogICAgIElu
dFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2ludCBtX21v
dXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1fbW91c2VE
b3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0YW1wOwog
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMzEzMTdhMDI2
MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi5mMmUxNGJjZjc1YjMyYjYzOTU1NDAwYmEzMjA5OGJiNmE3
YWM3MzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtNjksNyArNjksNyBA
QCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJveWVkKCkKICAgICBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwogfQogCi1kb3VibGUgUGVyZm9ybWFu
Y2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0YW1wIFBlcmZvcm1hbmNlOjpub3coKSBj
b25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX3RpbWVP
cmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNvbHV0aW9uKG5vdykubWlsbGlzZWNvbmRz
KCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBlcmZvcm1hbmNlOjpyZWR1Y2VUaW1lUmVz
b2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0dXJuIFNlY29uZHMocmVkdWNlZCk7CiB9
CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6Om1vbm90b25pY1RpbWVUb0hpZ2hS
ZXNUaW1lU3RhbXAoTW9ub3RvbmljVGltZSB0aW1lc3RhbXApIGNvbnN0Cit7CisgICAgU2Vjb25k
cyBzZWNvbmRzID0gdGltZXN0YW1wIC0gbV90aW1lT3JpZ2luOworICAgIHJldHVybiByZWR1Y2VU
aW1lUmVzb2x1dGlvbihzZWNvbmRzKS5taWxsaXNlY29uZHMoKTsKK30KKwogUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uKiBQZXJmb3JtYW5jZTo6bmF2aWdhdGlvbigpCiB7CiAgICAgaWYgKCFpczxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
aAppbmRleCA5YTYwZWMwYWIyY2E1OGI3ZjEwYzRiOGRiOWNmZjYxMjEwOWQ1ODVkLi5kMTQ4NmI4
MzVmMmNkOTUzZmJjZWRmNjRkNDg0YTEyNTBkYTM2YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZS5oCkBAIC0zMyw2ICszMyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5o
IgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNp
bmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFBlcmZvcm1hbmNlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFBlcmZvcm1hbmNlKGNvbnRleHQsIHRpbWVPcmlnaW4pKTsgfQogICAgIH5QZXJmb3JtYW5jZSgp
OwogCi0gICAgZG91YmxlIG5vdygpIGNvbnN0OworICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAgbm93
KCkgY29uc3Q7CiAKICAgICBQZXJmb3JtYW5jZU5hdmlnYXRpb24qIG5hdmlnYXRpb24oKTsKICAg
ICBQZXJmb3JtYW5jZVRpbWluZyogdGltaW5nKCk7CkBAIC04Miw2ICs4Myw4IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBTZWNvbmRzIHJlZHVjZVRpbWVSZXNvbHV0aW9uKFNlY29uZHMpOwogCisg
ICAgRE9NSGlnaFJlc1RpbWVTdGFtcCBtb25vdG9uaWNUaW1lVG9IaWdoUmVzVGltZVN0YW1wKE1v
bm90b25pY1RpbWUpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIFJlZkNv
dW50ZWQ6OnJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFu
ZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpp
bmRleCA4ZjBmYjRlMmVhYmEzZGQ5NmNlZWI0NDM4ZjhmM2IwMzk5NThiMTQyLi45Zjk3NThiZjM1
MDE3ZWJiNGI1ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9p
b3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGll
bnRQb3NpdGkKICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZElu
dFBvaW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50
IGFkanVzdGVkR2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IHN5bnRoZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNz
ZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVz
dGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRp
Y01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBv
c2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQ
b3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpu
b3coKSwgMCwgTm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29u
dGVudCk7CiAgICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/
IHByb3RlY3RlZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VN
b3ZlRXZlbnQucG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNl
YzAzNGRmZWMzYjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZjZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEw
N2Y1MGI5MDc4NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS93
aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVu
dEhhbmRsZXJXaW4uY3BwCkBAIC00OCw3ICs0OCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4
dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0Rl
bGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNz
RXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUq
IHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1F
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDVj
YjQ3ODQ3MWQ2NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgxZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAy
ZGY2MzhiMTUxMDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUV2ZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3Rm
L09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTg2LDI5ICs4NywyNyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25TZXQ8TW9k
aWZpZXI+IG1vZGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKLSAgICBk
b3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxs
VGltZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgUGxhdGZvcm1FdmVudCgpCiAgICAgICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAg
ICAgLCBtX3RpbWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKICAgICBleHBsaWNpdCBQbGF0Zm9y
bUV2ZW50KFR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX3Rp
bWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKLSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwg
T3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgUGxh
dGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9tb2Rp
ZmllcnMobW9kaWZpZXJzKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7
CiAgICAgfQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJv
b2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkK
KyAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5
LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAg
IDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsK
QEAgLTEzMCw3ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3R5cGU7CiAg
ICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtX21vZGlmaWVyczsKLSAgICBkb3VibGUgbV90aW1lc3Rh
bXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
CmluZGV4IDg3YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMwZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5
MmFkMzgxMmJlNWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAg
ICAgIGNvbnN0IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtl
eUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0
LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9v
bCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBl
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAg
ICAgICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyYTkwN2Ex
ZTk4NTM4N2RmYjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2
ZmNjYjJiZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91
c2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVu
dC5oCkBAIC02MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7
CiAgICAgICAgIH0KIAogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1
dHRvbiwgUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0
aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGNsaWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRL
ZXksIGJvb2wgbWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRo
ZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCiAgICAgICAgICAgICA6IFBsYXRmb3Jt
RXZlbnQodHlwZSwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgdGltZXN0YW1w
KQogICAgICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2ds
b2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYx
M2ZjOTAyNDgwLi4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkwYzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtNzAsNyAr
NzAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEludFBvaW50
IHBvc2l0aW9uLCBJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVl
bEV2ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSkKLSAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBs
YXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAw
KQorICAgICAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5
LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHsgfSkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCiAgICAg
ICAgICwgbV9kZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIubW0KaW5kZXggZDM3OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2Iw
ZjFlZGUzZTYzMjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVy
Lm1tCkBAIC0xNzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICgh
bV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlQ2hhbmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1
ZTsKIAotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0
aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFs
dWUoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xs
R2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9s
YXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEg
PCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVt
VmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRh
KTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNj
ZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVt
U2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1f
bGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7Cisg
ICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGlt
ZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21l
bnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKaW5kZXggYmZhNGM2YzEw
ZTRiMTllNTA1MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4uYTVlNjg1M2FlMmRjNjEwMWYxZDZjN2Ey
YmNlYWRhMWIzMDY5MGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xp
Yi9FdmVudEhhbmRsZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGli
L0V2ZW50SGFuZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxl
cjo6VGV4dERyYWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXgg
ZDliOTVhOTdkZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYzZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2
MWFlZDQ0YjlmZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEyNTksNyAr
MTI1OSw3IEBAIHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlm
aWVyc0Zvckdka0tleUV2ZW50KEdka0V2ZW50S2V5KiBlCiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5j
IHdpdGggdGhlIG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9ycwogUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50LCBjb25z
dCBDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVzdWx0cykKLSAgICA6IFBsYXRmb3Jt
RXZlbnQoZXZlbnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBtb2RpZmllcnNGb3JHZGtLZXlF
dmVudChldmVudCksIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlw
ZUZvckdka0tleUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBX
YWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3RleHQoY29tcG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0
cmluZy5sZW5ndGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVD
aGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleXZhbCkpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KG1f
dGV4dCkKICAgICAsIG1fa2V5KGtleVZhbHVlRm9yR2RrS2V5Q29kZShldmVudC0+a2V5dmFsKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZl
bnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVu
dEd0ay5jcHAKaW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4u
ZWM5MWFmZWVmN2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRkZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKQEAg
LTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gS2VlcCB0aGlzIGluIHN5bmMg
d2l0aCB0aGUgb3RoZXIgcGxhdGZvcm0gZXZlbnQgY29uc3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNl
RXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAg
bV90aW1lc3RhbXAgPSBldmVudC0+dGltZTsKKyAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChp
bnQpZXZlbnQtPngsIChpbnQpZXZlbnQtPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQ
b2ludCgoaW50KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZlbnQtPnlfcm9vdCk7CiAgICAgbV9idXR0
b24gPSBOb0J1dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAgUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0
Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZl
bnQ6OlBsYXRmb3JtTW91c2VFdmVudChHZGtFdmVudE1vdGlvbiogbW90aW9uKQogewotICAgIG1f
dGltZXN0YW1wID0gbW90aW9uLT50aW1lOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKG1vdGlvbi0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChp
bnQpbW90aW9uLT54LCAoaW50KW1vdGlvbi0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IElu
dFBvaW50KChpbnQpbW90aW9uLT54X3Jvb3QsIChpbnQpbW90aW9uLT55X3Jvb3QpOwogICAgIG1f
YnV0dG9uID0gTm9CdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2Rj
YWE5ZWM3YTJkOWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFm
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVs
RXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdo
ZWVsRXZlbnRHdGsuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgi
CiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00Myw3ICs0Myw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZv
cm1XaGVlbEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICBzdGF0aWMgY29uc3QgZmxv
YXQgZGVsdGEgPSAxOwogCiAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAg
bV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6
Om5vdygpOwogCiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQogICAgICAg
ICBtX21vZGlmaWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcAppbmRleCBjMmFhOWRjMDFmNzY3
ZWVhOThlMzEzYTg2NGE2YTI3ODJiYThmMDRiLi40M2RmMjMwM2ZkODcxMTBkMDAxODk5NzVjOTlh
MWZlYmM0NDNiMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Ny
b2xsQW5pbWF0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3Jv
bGxBbmltYXRvckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9sbEFu
aW1hdG9yR3RrOjpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3RvcnkuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9zY3Jv
bGxIaXN0b3J5WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0
b3J5LnJiZWdpbigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0
b3J5WzBdLnRpbWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVn
aW4oKS0+dGltZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAgcmV0
dXJuIHsgfTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3Rr
Ojpjb21wdXRlVmVsb2NpdHkoKQogCiAgICAgbV9zY3JvbGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAg
ICByZXR1cm4gRmxvYXRQb2ludChhY2N1bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJz
dCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSk7CisgICAgcmV0dXJu
IEZsb2F0UG9pbnQoYWNjdW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVl
KCksIGFjY3VtRGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0K
IAogYm9vbCBTY3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0
b3JHdGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkK
ICAgICBtX2tpbmV0aWNBbmltYXRpb24tPnN0b3AoKTsKIAogICAgIG1fc2Nyb2xsSGlzdG9yeS5y
ZW1vdmVBbGxNYXRjaGluZyhbJmV2ZW50XSAoUGxhdGZvcm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50
KSAtPiBib29sIHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoZXZl
bnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVU
aHJlc2hvbGQ7CisgICAgICAgIHJldHVybiAoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50
LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CiAgICAgfSk7CiAKICAgICBp
ZiAoZXZlbnQuaXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAw
NjJmOTgyMzc3MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYzOTIzMTQ2Li40OGM4NDAzMzJiODliZmE5
MjYxMDE3NjBiN2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBv
cnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4K
KyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1
LDcgKzg1LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZl
bnQgKmV2ZW50KQogICAgIHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQp
OwotICAgICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0
YW1wID0gV2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2
ZW50KGV2ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZl
bnQoZXZlbnQpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2
ZW50LnR5cGUgPT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxh
dGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsK
KyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3Np
dGlvbiA9IHBvaW50Rm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0g
Z2xvYmFsUG9pbnRGb3JFdmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgog
CiAgICAgICAgIG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9y
bUV2ZW50OjpLZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlm
aWVycyA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBj
dXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAog
ICAgICAgICBtX3RleHQgPSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRU
ZXh0ID0gZXZlbnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50
KTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAg
ICAgIG1fdGltZXN0YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgICAgICBtX3RpbWVzdGFtcCA9
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApOwogCiAgICAgICAgIG1f
Z2VzdHVyZVNjYWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxlOwogICAgICAgICBtX2dlc3R1cmVSb3Rh
dGlvbiA9IGV2ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6
CiAgICAgUGxhdGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUs
IEludFBvaW50IGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdHlwZTsKLSAgICAg
ICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdh
bGxUaW1lOjpub3coKTsKICAgICAgICAgCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gMTsKICAg
ICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0
YzE4NjdiOTZlNTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBlYzIxZjEyYTE3OGRmODhlOWJmMjkwNGEw
ZDdmZDc3OTViOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxh
dGZvcm1FdmVudEZhY3RvcnlNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBXRUJDT1JFX0VYUE9S
VCBpbnQgd2luZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgY29kZUZvcktleUV2ZW50KE5TRXZlbnQgKik7Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUg
ZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxU
aW1lIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CiAgICAgCiBXRUJDT1JFX0VY
UE9SVCB2b2lkIGdldFdoZWVsRXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBm
bG9hdCYgZGVsdGFZLCBCT09MJiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtl
eUNoYXJGb3JFdmVudChOU0V2ZW50ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJiMTgyMjRmODM0OWZm
YmI2ZTNjMThhOGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFjZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUy
YTQ3OThjNTY5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBh
bC9zcGkvbWFjL05TRXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5o
PgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1l
SW50ZXJ2YWwgY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJu
IHN5c3RlbVN0YXJ0dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAo
TlNFdmVudCogZXZlbnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50
KiBldmVudCkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVw
VGltZUludGVydmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJu
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0
dXBUaW1lSW50ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAppbmRleCA2NTU1YWVmMDk4ZmRiMGQw
MzA4NDI0MWVjNzhmMThkMjQxMDMwYzRhLi42MmNjYWMzYjg4NTEyN2UyNmMwYzllYzVlZTdhMjdj
NzM0ZjYxYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZl
bnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5j
cHAKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0
ZXJTdHJpbmcoVUNoYXIgYykKIH0KIAogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQoSFdORCwgV1BBUkFNIGNvZGUsIExQQVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUs
IGJvb2wgc3lzdGVtS2V5KQotICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0ZShW
S19TSElGVCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAm
IEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3Jt
RXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFTS19TSE9SVCwg
R2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0
ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fdGV4dCgodHlwZSA9
PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0
cmluZygpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpD
aGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV9r
ZXlJZGVudGlmaWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBr
ZXlJZGVudGlmaWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCmluZGV4IDAwMGZk
M2FjMzMxODU1ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRk
ZmFhMzEyY2FkZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRp
YyBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9
CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEhXTkQgaFduZCwgVUlO
VCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGRpZEFjdGl2YXRl
V2ViVmlldykKLSAgICA6IFBsYXRmb3JtRXZlbnQobWVzc2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2Up
LCB3UGFyYW0gJiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktf
TUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hf
QklUX01BU0tfU0hPUlQsIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3Nh
Z2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NP
TlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5
U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6bm93KCkpCiAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1f
Z2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQogICAg
ICwgbV9jbGlja0NvdW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vV2hlZWxFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxF
dmVudFdpbi5jcHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUwNWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEy
OC4uNmRiZWEyMGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcApAQCAtNzMsNyArNzMsNyBA
QCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsTGluZXMoKQogfQogCiBQbGF0Zm9ybVdoZWVsRXZl
bnQ6OlBsYXRmb3JtV2hlZWxFdmVudChIV05EIGhXbmQsIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IEZsb2F0UG9pbnQmIGxvY2F0aW9uKQotICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9y
bUV2ZW50OjpXaGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50
KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRU
aWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNl
KGZhbHNlKQogewogICAgIG1fZGVsdGFYID0gZGVsdGEud2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcg
QEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBjb25z
dCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdAogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRm
b3JtV2hlZWxFdmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJv
b2wgaXNNb3VzZUhXaGVlbCkKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hl
ZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0ZShW
S19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElH
SF9CSVRfTUFTS19TSE9SVCwgOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQorICAgIDogUGxhdGZv
cm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAm
IE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwg
R2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fcG9zaXRpb24o
cG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihn
bG9iYWxQb3NpdGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2RpcmVjdGlvbklu
dmVydGVkRnJvbURldmljZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkw
YWYxODU1MzguLmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNzUs
NiArNzUsNyBAQAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTW9u
b3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dh
bGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8TW9ub3RvbmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9uaWNUaW1l
JiB0aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRp
bWU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCit7Cisg
ICAgZW5jb2RlciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30KKworYm9v
bCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdhbGxU
aW1lJiB0aW1lKQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxUaW1lOjpm
cm9tUmF3U2Vjb25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJndW1l
bnRDb2RlcjxTZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29uZHMm
IHNlY29uZHMpCiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3NDEzNGE5
ZDRhOTk0NDliNWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVl
NTZiODRiOTJjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25p
Y1RpbWU7CiBjbGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXVEY6Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdURjo6TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXVEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXVEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
LCBXVEY6OldhbGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdURjo6U2Vjb25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V1RGOjpTZWNvbmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OlNl
Y29uZHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4OWVkNWUy
NjI0NmZiOWM1YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2Zh
Y2RlNWRmNTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC0yOCwxNyArMjgsMTcg
QEAKIAogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJF
dmVudDo6V2ViRXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0PHVpbnQzMl90PihOb1R5
cGUpKQogICAgICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0YW1wKDApCiB7CiB9CiAK
LVdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1f
bW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJFdmVudC5oCmluZGV4IDIxMDE4NmRjMGZkYzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhi
ZjNlMjEuLjJkNDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNlZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViRXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmxv
YXRTaXplLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEyIEBA
IHB1YmxpYzoKIAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxNb2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVzdGFt
cCgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0YW1w
KCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdlYkV2
ZW50KCk7CiAKLSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAp
OworICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKIAog
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHByb3Rl
Y3RlZDoKIHByaXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWludDMy
X3QgbV9tb2RpZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAg
ICBXYWxsVGltZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3Mg
dG8gaXRzIG93biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAg
V2ViTW91c2VFdmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZlbnQo
VHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50
TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwg
QnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZs
b2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
LCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1i
ZXIgPSAtMSwgaW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQoVHlw
ZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVks
IGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCwgZG91YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAgIFdl
Yk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFY
LCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUg
PSBOb1RhcCk7CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAgcHVi
bGljOgogCiAgICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJz
LCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRp
bWVzdGFtcCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rp
b25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhh
c1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJv
bURldmljZSwgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9s
bGluZ0RlbHRhcywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwg
R3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxF
dmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBk
ZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2Ug
bW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KTsKICNlbmRpZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAg
ICAgfldlYktleWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5Ym9h
cmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmll
ZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmlu
ZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZp
cnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2Qs
IGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBl
YXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRp
bWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1L
ZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdUSykK
LSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVy
LCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJv
b2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wg
aXNLZXlwYWQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRF
dmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0
cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2
ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29s
IGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAp
OworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBj
b2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0
b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmly
dHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNL
ZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7Cisg
ICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmlu
ZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRv
d3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNv
ZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0cmlu
ZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBAIHBy
aXZhdGU6CiBjbGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoK
ICAgICBXZWJUb3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlw
ZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBWZWN0
b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50
IHBvc2l0aW9uLCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2Vz
dHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChXZWJF
dmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAs
IGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJl
LCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBX
ZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNoUG9p
bnRzKHRvdWNoUG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00NzEs
NyArNDcyLDcgQEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZl
bnQgewogcHVibGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50
KFR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1U
b3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBjb25z
dCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRF
dmVudC5jcHAKaW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFkMmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4u
MGNmMjcxOTk2MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9h
cmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1XZWJLZXli
b2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmly
dHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBi
b29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiYgY29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2Vi
S2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29k
ZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwg
Ym9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Rl
eHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC02Miw3
ICs2Miw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0oR1RLKQog
Ci1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBT
dHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRp
dmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmlu
Zz4mJiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBW
ZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMs
IHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh0
ZXh0KQpAQCAtODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlmIFBM
QVRGT1JNKElPUykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitX
ZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5k
b3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJD
b2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwg
TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQo
dHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1f
dW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5
Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgU3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2Fy
ZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9k
aWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBt
b2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlm
aWVkVGV4dCh1bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYk1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAKaW5kZXggOGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIzODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2Zh
ZTNkMGRmNzhiNzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViTW91c2VFdmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VFdmVudDo6V2ViTW91
c2VFdmVudCgpCiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3Vz
ZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVs
dGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0
aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQorV2ViTW91c2VFdmVu
dDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgs
IGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNr
VHlwZSBzeW50aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQog
I2Vsc2UKLVdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0
dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNr
Q291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3Jj
ZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6
OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYg
cG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBm
bG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5
cGUgc3ludGhldGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2Rp
ZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0
NTJiZDc5MmNhZi4uN2FlYTBlNzNkOWM1NTZhNjI3NzcxMzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZl
bnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50
cywgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6
OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGlt
ZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX3RvdWNoUG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNm
YWIxNDRkMjRkLi40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNjNzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1XZWJXaGVl
bEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEs
IGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJX
aGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0
U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVy
cywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFs
UG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6
OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IEludFBvaW50CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldo
ZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRT
aXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29s
IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZl
bnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBn
bG9iYWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3
aGVlbFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQ
b3NpdGlvbihnbG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6
V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQKICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQ
TEFURk9STShHVEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2Ug
cGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hl
ZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNp
emUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxh
cml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bv
c2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhk
NmQzODg1OWEwMjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFkZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1
NjY2MzdhMWQ4ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dl
YkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGlu
dCBjdQogICAgICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAogICAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBn
ZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiBX
ZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBH
ZGtFdmVudCogZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJX
aGUKICAgICAgICAgbW9tZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xs
QnlQaXhlbFdoZWVsRXZlbnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAg
ICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYktleWJvYXJk
RXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2
ZW50KiBldmVudCwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3NpdGlv
blJlc3VsdHMsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAg
V2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQo
Y29uc3QgR2RrRXZlbnQqIGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwKICAgICAg
ICAgaXNHZGtLZXlDb2RlRnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAgICAgIG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50
KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUo
ZXZlbnQpKSk7CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3
IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNv
bnN0IEdka0V2ZW50KiBldmVudCwgVmVjdG9yCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQ
b2ludHMpLCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9nZXRfdGltZShldmVu
dCkpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMp
LCBtb2RpZmllcnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtf
ZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3VjaEV2ZW50
KCk7CiAjZW5kaWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1
NWFmODdkYTgzODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2
OTZlMDJmYWZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdl
YlRvdWNoRXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdl
YlRvdWNoRXZlbnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50
OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50KQogICAg
IDogV2ViVG91Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50
VHlwZShldmVudC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCksCi0g
ICAgICAgIGV2ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhldmVudC0+dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQp
LAogICAgICAgICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVudENv
b3JkaW5hdGVzKSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNfUE9URU5U
SUFMX1RBUCAmJiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1
OWJkYWU3MTc1NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhj
OTNlODZjNjEzNzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lv
cy9XZWJJT1NFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dl
YklPU0V2ZW50RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJk
RXZlbnQgV2ViSU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZl
bnQgKgogICAgICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJu
IFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5
LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1
YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5
LCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVy
LCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29k
ZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJl
RXZlbnRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2
ZW50TWFjLm1tCmluZGV4IDNiNTVjZTgwOTJmZGEzY2EyYTk4NjIwM2UwMTgyYjY1NjUxOWEyMzgu
LjBjNDViZmZiMWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZkYzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpAQCAt
MzEsNyArMzEsNyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdlc3R1cmVF
dmVudC5oIgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3RmL0N1cnJl
bnRUaW1lLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVF
dmVudDo6TmF0aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcp
CiAgICAgOiBXZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5TRXZlbnQo
ZXZlbnQpLAogICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBldmVu
dC50aW1lc3RhbXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2
ZW50KSwKICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVudCwgdmll
dykpLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1h
Z25pZmljYXRpb24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUm90YXRl
ID8gZXZlbnQucm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL1dlYkV2ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVu
dEZhY3RvcnkubW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1
Yi4uOWQ4NTU5NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYxM2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAg
V2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVu
dCAqZXZlbnQsIE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVsdGFa
XTsKICAgICBpbnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAgICAg
V2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7
Ci0gICAgZG91YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsK
KyAgICBhdXRvIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAg
ICBpbnQgZXZlbnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51VHlw
ZUZvckV2ZW50ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIFdl
YldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQg
KmV2ZW50LCBOU1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBt
b2RpZmllcnMgICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJs
ZSB0aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2Ux
OTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgICAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGds
b2JhbFBvc2l0aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVs
VGlja3NYLCB3aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21E
ZXZpY2UsIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBz
Y3JvbGxDb3VudCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVz
dGFtcCk7CiB9CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAg
ICBib29sIGlzS2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7
CiAgICAgYm9vbCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1L
ZXkgaXMgYWx3YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBt
b2RpZmllcnMgICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0
YW1wICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAg
IGF1dG8gdGltZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3
MChldmVudCk7CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2Ug
ZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIu
CiAgICAgaWYgKHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNWVjODJk
MzA4YjgzMGY2YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0
ZThjNTVjMjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVy
ZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5o
CkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VzdHVyZUV2
ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7
IH0KLSAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1v
ZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGZs
b2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdlc3R1cmVF
dmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0
aW1lc3RhbXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUs
IGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAs
IG1fZ2VzdHVyZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3
MmY1Y2VlZjk3Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCiAgICAgICAg
IHdwZV9pbnB1dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9t
YXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCksCiAgICAgICAgIGV2ZW50LT5rZXlDb2RlLCAw
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCks
IGV2ZW50LT50aW1lKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVudCBXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVy
X2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xMTksNyArMTE5LDcg
QEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
bihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdl
YkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7CisgICAgICAgIDAsIDAsIDAsIGNs
aWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6
ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50
KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTU0LDcgQEAgV2Vi
V2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdw
ZV9pbnB1dF9heGlzX2V2ZW50KgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50
LT54LCBldmVudC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9y
KTsKICAgICByZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBw
b3NpdGlvbiwKLSAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9s
bEJ5UGl4ZWxXaGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwg
ZXZlbnQtPnRpbWUpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6
U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+
KDApLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogc3RhdGlj
IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JU
b3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqIHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZl
bnQqCiAgICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykp
OwogICAgIH0KIAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQ
b2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7CisgICAgcmV0dXJu
IFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2Rp
ZmllcnMoMCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggNWRm
M2RmYzNlNmUyMGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYy
ZjA3NjU1OGZmYTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAg
LTQ3OCwxNyArNDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVuZGxl
UGFnZVJlZiBwYWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tD
b3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIHRv
SW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9u
KSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVs
YXRlTW91c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1v
ZGlmaWVycywgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1
bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24s
IFdLUG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAo
YnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1l
KTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQo
cG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0gICAg
dG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCB0
aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2ludChw
b3NpdGlvbiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90
IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKaW5kZXggMjYxOGZlNmMy
ZWY4NTY2ZWUyNzNjNmE3MzhmMDMxMDZjNjIyMjk5Yi4uZTdlZDdkODQ0YzZhZTY1NmNjYzdjOTM3
MDE2YzczZGVlYzkzMmMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZl
bnQuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgZ3VpbnQzMiB3ZWJraXRfZG9tX2V2ZW50X2dldF90
aW1lX3N0YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKQogICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X0VWRU5UKHNlbGYpLCAwKTsKICAgICBXZWJDb3JlOjpFdmVudCogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKLSAgICBndWludDMyIHJlc3VsdCA9IGl0ZW0tPnRpbWVTdGFtcCgpOworICAgIGd1
aW50MzIgcmVzdWx0ID0gaXRlbS0+dGltZVN0YW1wKCkuYXBwcm94aW1hdGVXYWxsVGltZSgpLnNl
Y29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
eDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAKaW5kZXggZGIyNDVjY2Q0ZmI2
NzIyOWFjMTkyYTNlMWFkMGQ3MDkyZmE4NTNjMi4uOWE1MTYzNGJkZTA2ZDg0Y2M5YTRiNWNkODMz
YzM0ODRhNzhhODE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCkBA
IC0zMjEsOSArMzIxLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2
ZW50JiBldmVudCkKICAgICBldmVudC54YW55LndpbmRvdyA9IDA7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgdWludDY0X3QgeFRpbWVTdGFtcChkb3VibGUgdGltZXN0YW1wSW5TZWNvbmRzKQorc3RhdGlj
IGlubGluZSB1aW50NjRfdCB4VGltZVN0YW1wKFdhbGxUaW1lIHRpbWVzdGFtcCkKIHsKLSAgICBy
ZXR1cm4gdGltZXN0YW1wSW5TZWNvbmRzICogMTAwMDsKKyAgICByZXR1cm4gdGltZXN0YW1wLnNl
Y29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5z
aWduZWQgeEtleU1vZGlmaWVycyhjb25zdCBXZWJFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBhZmNmZmE1
MTc0NWIyNWI5ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExLi44NmZlMzZiMWZmZDhhZDBjZWZlMjVh
ZDRkN2U4Y2E0NTE4YzZhODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3IEBAIGJvb2wgUERGUGx1
Z2luOjpzaG93Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVGcmFtZSgpLT52aWV3KCk7
CiAgICAgSW50UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1Jvb3RW
aWV3KHBvaW50KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50OjpNb3VzZURvd24s
IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBjb250ZW50c1BvaW50
LCAwLCAwLCAwLCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgbW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CisgICAgV2Vi
TW91c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdo
dEJ1dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrKTsKICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKaW5kZXggYTY0OGY3ZWFiZmViZWVkMGE2ZTc1ZTg2YzYyZTBiNGEyYzFjY2Q1My4uZWNkNTY3
ZmNjM2M1ZGU1MmE1MGE4MjhmNmU2ODQ1MzU4MTIzZjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8V2ViRXZlbnQ+IFBsdWdpblZpZXc6OmNyZWF0ZVdlYkV2ZW50KE1vdXNl
RXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmIChldmVudC5tZXRhS2V5KCkpCiAgICAgICAgIG1v
ZGlmaWVycyB8PSBXZWJFdmVudDo6TWV0YUtleTsKIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RW
aWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNj
cmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50
OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIDAsIDApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPFdlYk1vdXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RW
aWV3KEludFBvaW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNj
cmVlbkxvY2F0aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50
OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIFdhbGxUaW1lIHsgfSwgMCk7CiB9CiAKIHZvaWQgUGx1
Z2luVmlldzo6aGFuZGxlRXZlbnQoRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAwZWFiZTY1OTkwZDkxN2UxZDkxZDkxZTJi
OWU0ZmIzMGQ4NDJiMTVhLi5mZjhiYjk4MDQwNTAxYzE5MjAwNDAzY2U0ZjQ5YjM1OTgyMjRiN2Jh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTI4MSw3ICsxMjgxLDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11
bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICAgICAgcmV0dXJu
OwogCiAgICAgY29uc3QgaW50IHNpbmdsZUNsaWNrID0gMTsKLSAgICBSZWZQdHI8TW91c2VFdmVu
dD4gbW91c2VFdmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVu
dCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVl
blBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQ
b2ludC55KCksCisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1Rp
bWU6Om5vdygpLCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Q
b2ludC55KCksIGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAwLCAwLAogI2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1
LDExIEBAIFdlYkNvbnRleHRNZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRv
dyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAgICAgY29yZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250
cm9sbGVyKCkuY2xlYXJDb250ZXh0TWVudSgpOwogCiAgICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBj
bGljayB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51LgotICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBtb3VzZVByZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRp
bWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IG1vdXNlUHJlc3NFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQ
bGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXAp
OwogICAgIGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVu
dChtb3VzZVByZXNzRXZlbnQpOwogICAgIGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJ
bnB1dEJyaWRnZSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQobW91c2VQcmVzc0V2ZW50LCBjb3Jl
UGFnZSgpLT5tYWluRnJhbWUoKSk7CiAgICAgYXV0byogbWVudSA9IGhhbmRsZWQgPyBjb250ZXh0
TWVudSgpIDogbnVsbHB0cjsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZl
bnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNl
ZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6
OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBt
b3VzZVJlbGVhc2VFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6
Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3Jl
UGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtb3VzZVJl
bGVhc2VFdmVudCk7CiAKICAgICByZXR1cm4gbWVudTsKQEAgLTM2NzQsNyArMzY3NCw3IEBAIHZv
aWQgV2ViUGFnZTo6ZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBX
ZWJDb3JlOjpJbnRQb2ludCBnbG9iCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm47CiAg
ICAgLy8gRklYTUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkg
c2hvdWxkIGJlIHJlYWwgb25lcyBpbnN0ZWFkLgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgY3VycmVudFRpbWUoKSwgMCwgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91
c2VFdmVudCBldmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0
aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAg
ICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChl
dmVudCwgKERyYWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGlkRW5kRHJhZ2dpbmcoKSk7CkBAIC00NjcwLDE3ICs0NjcwLDE3IEBAIHZv
aWQgV2ViUGFnZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiBy
ZXN1bHQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlRG93bihpbnQg
YnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZl
bnRNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxh
dGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBj
bGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsK
ICAgICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VEb3duLCBz
dGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3Np
dGlvbiwgMCwgMCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9k
aWZpZXJzPihtb2RpZmllcnMpLCB0aW1lLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNl
RXZlbnQ6Ok5vVGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBi
dXR0b24sIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0
ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlj
a0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAg
ICBtb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VVcCwgc3RhdGlj
X2Nhc3Q8V2ViTW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24s
IDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVy
cz4obW9kaWZpZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50
OjpOb1RhcCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29y
ZTo6SW50UG9pbnQgcG9zaXRpb24sIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0
ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBXYWxsVGltZSB0aW1lKQog
ewogICAgIG1vdXNlRXZlbnQoV2ViTW91c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUs
IFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIDAs
IFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycygpLCB0aW1lLCAwLCBXZWJNb3VzZUV2ZW50OjpOb1Rh
cCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDQzMTU0YTYxNGI5M2MxMzdkNzI3NDliNDExYmQ1OTcyOWJiN2JiYjcuLmJiMWY1MTI2ZDZiZjQy
OTlhMzk2NzllMjUxZDM4MWFlNDRkZDc0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCkBAIC04MDYsOSAr
ODA3LDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlLgot
ICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQs
IGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9p
ZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlj
a0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0
ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBz
aW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNr
Q291bnQsIFdLRXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91
c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZl
bnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24oV2Vi
Q29yZTo6SW50UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgIHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51ID0g
dHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQppbmRleCBiY2RiMGJmMDZhMGNhOWMzOWZmNWYzYzViNGE1MjU0NTYxMmJjMDUx
Li5kYmFmYTE1Zjg3YmE0MDc3YTdhNzVmYWRkZjM4NWRmNDI0Mzg4YmU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTI5
LDcgKzUyOSw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSogbm9k
ZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAKICAgICBXS0JlZ2luT2JzZXJ2
aW5nQ29udGVudENoYW5nZXModHJ1ZSk7CiAKLSAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCku
bW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5k
ZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNl
QXRDbGljaywgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCku
bW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5k
ZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9y
Y2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0b3BPYnNlcnZpbmdDb250ZW50Q2hhbmdl
cygpOwpAQCAtNTgxLDExICs1ODEsMTEgQEAgdm9pZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRp
Y0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZToKICAgICBi
b29sIHRhcFdhc0hhbmRsZWQgPSBmYWxzZTsKICAgICBtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9u
ID0gcm91bmRlZEFkanVzdGVkUG9pbnQ7CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFt
ZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50
KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5
cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5k
bGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50
LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQ
cmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lz
Q2xvc2VkKQogICAgICAgICByZXR1cm47CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFt
ZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZl
bnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlj
a1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5o
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVk
UG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5v
dygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlm
IChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lk
IFdlYlBhZ2U6OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQ
b2ludCYgY2xpZW50UG9zaXRpbwogICAgIC8vIFRvIGF1Z21lbnQgdGhlIHBsYXRmb3JtIGRyYWcg
c2Vzc2lvbiB3aXRoIGFkZGl0aW9uYWwgaXRlbXMsIGVuZCB0aGUgY3VycmVudCBkcmFnIHNlc3Np
b24gYW5kIGJlZ2luIGEgbmV3IGRyYWcgc2Vzc2lvbiB3aXRoIHRoZSBuZXcgZHJhZyBpdGVtLgog
ICAgIC8vIFRoaXMgcHJvY2VzcyBpcyBvcGFxdWUgdG8gdGhlIFVJIHByb2Nlc3MsIHdoaWNoIHN0
aWxsIG1haW50YWlucyB0aGUgb2xkIGRyYWcgaXRlbSBpbiBpdHMgZHJhZyBzZXNzaW9uLiBTaW1p
bGFybHksIHRoaXMgcGVyc2lzdGVudCBkcmFnIHNlc3Npb24KICAgICAvLyBpcyBvcGFxdWUgdG8g
dGhlIHdlYiBwcm9jZXNzLCB3aGljaCBvbmx5IHNlZXMgdGhhdCB0aGUgY3VycmVudCBkcmFnIGhh
cyBlbmRlZCwgYW5kIHRoYXQgYSBuZXcgb25lIGlzIGJlZ2lubmluZy4KLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9u
LCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6
bm93KCksIDAsIE5vVGFwKTsKICAgICBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0VuZGVk
KCk7CiAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5k
ZWRBdChldmVudCwgRHJhZ09wZXJhdGlvbk5vbmUsIE1heUV4dGVuZERyYWdTZXNzaW9uOjpZZXMp
OwogCkBAIC04MDMsNyArODAzLDcgQEAgdm9pZCBXZWJQYWdlOjppbnNwZWN0b3JOb2RlU2VhcmNo
TW92ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIEludFBvaW50
IGFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOwogICAgIEZyYW1lJiBt
YWluZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFu
ZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVz
dGVkUG9pbnQsIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgMCwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJh
bWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQ
b2ludCwgYWRqdXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQs
IDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB7IH0sIDAsIFdlYkNvcmU6Ok5vVGFwKSk7
CiAgICAgbWFpbmZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxh
Y2Vob2xkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQ
bGFjZWhvbGRlci5tbQppbmRleCA0OGFlOWY3OWNiOTI0NDA1MjRhN2ZmZjQ5ZGIwNWM2YTllMTQz
M2Y2Li5jOTE1ZmU0ZDg2N2UyMjcxM2NmZDQ1MWUzMmQ4Mzc5Zjk4M2MxY2QxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhv
bGRlci5tbQpAQCAtNDgsNyArNDgsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYk5TVmll
d0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlBERkRvY3VtZW50RXh0cmFzLmg+
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV2ViVmlld1ByaXZhdGUuaD4KLSNpbXBvcnQgPHd0Zi9D
dXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCkBAIC00NzksNyArNDc5
LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJR0hUX0lOU0VUID0gNC4wZiAqIDIuMGY7
CiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnN0cnVjdCBhbiBldmVudCB0byBzaW11bGF0
ZSBhIGNsaWNrLgotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAsIDEs
IDAsIDAsIDAsIDAsCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93
KCksIDAsIDEsIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAg
MCwgMCwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RP
TUV2ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCmluZGV4
IDk1Zjg0ZGQyNWE4NDNhZWJiYTQyMmQzYmRjODBkMTRmYTMwOGYyMWEuLjMyMWE3ZjAxNjgxZjIx
YTQ4NjY5Y2Q5ODNlZDU0NTcxMDg0ZjcxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RPTS9ET01FdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRXZlbnQubW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0gKERPTVRpbWVTdGFtcCl0aW1lU3RhbXAK
IHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJu
IElNUEwtPnRpbWVTdGFtcCgpOworICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKS5hcHByb3hp
bWF0ZVdhbGxUaW1lKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAog
LSAoQk9PTClkZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2
MTQ1Li5mMzRkNjk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRiOWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBA
QCBzdGF0aWMgaW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlcikKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBt
b2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4K
ICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9p
bnQoZ2xvYmFsUG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3dd
KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGlt
ZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6
Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9w
ZXJhdGlvbik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmlu
ZGV4IGVjNTdjODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0
ZjlhMDQwNTcxNzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGlj
IEJPT0wgaXNGcmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAg
ICAgY2FzZSBOU0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2
ZW50IHBlID0gUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVu
dChuc0V2ZW50KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0
ZShwZSwgMCk7CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxs
cHRyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFr
OwogICAgIH0KICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0g
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBj
dXJyZW50VGltZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAg
ICAgZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRy
dWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwg
MCwgMCwgMCwgMCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRHJvcFNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEcm9wU291cmNlLmNwcAppbmRleCBm
NzRmM2QzYzgzOTdlMjQ0YzJhOTNjMzFjOWFlNWZjZTNlZGMwZWQxLi4yMTVlNzFmNWU3ZWQwZjlh
MzVmOTY1ZjU0MDMwMDJiMzcwYjkxYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJEcm9wU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJE
cm9wU291cmNlLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFBsYXRmb3JtTW91c2VFdmVudCBnZW5l
cmF0ZU1vdXNlRXZlbnQoV2ViVmlldyogd2ViVmlldywgYm9vbCBpc0RyYWcpCiAgICAgaWYgKFNV
Q0NFRURFRCh3ZWJWaWV3LT52aWV3V2luZG93KCZ2aWV3V2luZG93KSkpCiAgICAgICAgIDo6U2Ny
ZWVuVG9DbGllbnQodmlld1dpbmRvdywgcmVpbnRlcnByZXRfY2FzdDxMUFBPSU5UPigmbG9jYWxw
dCkpOwogICAgIHJldHVybiBQbGF0Zm9ybU1vdXNlRXZlbnQoSW50UG9pbnQobG9jYWxwdC54LCBs
b2NhbHB0LnkpLCBJbnRQb2ludChwdC54LCBwdC55KSwKLSAgICAgICAgaXNEcmFnID8gTGVmdEJ1
dHRvbiA6IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgICAgICBpc0Ry
YWcgPyBMZWZ0QnV0dG9uIDogTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsK
IH0KIAogU1RETUVUSE9ESU1QIFdlYkRyb3BTb3VyY2U6OlF1ZXJ5Q29udGludWVEcmFnKF9Jbl8g
Qk9PTCBmRXNjYXBlUHJlc3NlZCwgX0luXyBEV09SRCBncmZLZXlTdGF0ZSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IDY1NzI3M2NmYzAwN2UxMjgwODM2MmFkMjRjMDIwYjI2NWYw
ZmFkNzguLmZhOTE0NDI3Nzc3YmI2MzA4MDIyNWE3NjE2Yjc5MDI3YTc1ZmIwNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlv
biB0aW1lc3RhbXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMz
MDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVi
YXNlbGluZSBXUFQgdGVzdCBub3cgdGhhdCBtb3JlIGNoZWNrcyBhcmUgcGFzc2luZy4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdo
LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorCiAyMDE3LTA5LTIwICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZyZXNoIFdQVCB0ZXN0cyB1cCB0byBmNjVh
ZjQxMWQ2M2VjMTNlZThmZTIwOGI0ZWZmZDczMGE0YThiN2ZlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA5MDdhMmQ3YzA3NTFkODc0OTRmNDM3NDZkMzU4YWYxMTM3YTZkMzdiLi5jMTY2ZDAyMTgwMGQ4
NGI0MzYxODY1MWVmZWI1MTU2MjU2ZTk4MGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3Niw3
ICsxNzYsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90
ZXh0LW92ZXJmbG93LTAxMi5odG1sIFsgSW1hZ2VPbmx5RgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMTUuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMv
dGV4dC1vdmVyZmxvdy0wMTcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMjEuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24uaHRtbCBbIEZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29uc3Ry
dWN0b3Itc3ZnLnN2ZyBbIFRpbWVvdXQgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9zZWN1cml0eS9kYW5nbGluZy1tYXJrdXAtbWl0aWdhdGlvbi50ZW50YXRpdmUuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRp
bWUvdGltZU9yaWdpbi5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1w
LWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1
dGlvbi1leHBlY3RlZC50eHQKaW5kZXggZjQ3ZmEzZDZmNTY3ZTRlOThiMTI4MDEyODI1ZDYyZDE4
ODZjZWUzZi4uMmYwOGI0ODVkNDVhNmViNTg3ZTk3ZmU0ZDZhZTVlYWJmZDU3M2M5MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVu
dC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAK
IAotRkFJTCBDb25zdHJ1Y3RlZCBNb3VzZUV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCBy
ZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5v
dygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVz
cyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRp
b24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyMy44MDAwMDAwMDAw
MDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3RlZCBLZXlib2FyZEV2ZW50
IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRp
bWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2
ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVz
dGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFu
IG9yIGVxdWFsIHRvIDUyNC40IGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3Rl
ZCBXaGVlbEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZl
IHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3Ro
YW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNl
Lm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1i
ZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC41MDAwMDAwMDAwMDAxIGJ1dCBnb3QgMTUwNTc3
MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3RlZCBHYW1lcGFkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBi
ZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9y
bWFuY2Uubm93KCkgTm90IGVub3VnaCBhcmd1bWVudHMKLUZBSUwgQ29uc3RydWN0ZWQgRm9jdXNF
dmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2Ft
ZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRfbGVzc190aGFuX2VxdWFs
OiBFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGxlc3MgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0
aW1lc3RhbXAgdGFrZW4gYWZ0ZXIgaXRzIGNyZWF0aW9uIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3Mg
dGhhbiBvciBlcXVhbCB0byA1MjQuNiBidXQgZ290IDE1MDU3NzAxNTI1NjYKK1BBU1MgQ29uc3Ry
dWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQg
aGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BBU1MgQ29u
c3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlv
biBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BB
U1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1
dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAK
K1BBU1MgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCBy
ZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5v
dygpIAorUEFTUyBDb25zdHJ1Y3RlZCBGb2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGln
aCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNl
Lm5vdygpIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321551</attachid>
            <date>2017-09-22 08:55:15 -0700</date>
            <delta_ts>2017-09-22 09:39:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170922085514.patch</filename>
            <type>text/plain</type>
            <size>119756</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM1OGY1YTNkNWE2NjI4
Y2NhOWI3MDFjMTk5ZjdhZmQwYzM3MjY3NS4uYzMzYmE3MGVmOTAyZjg3MWRlNjUwZjQ5OTU0NDI2
YTg2OGY0ZjExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMyBAQAogMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBIYXZl
IGV2ZW50LnRpbWVTdGFtcCByZXR1cm4gYSBET01IaWdoUmVzVGltZVN0YW1wIGluc3RlYWQgb2Yg
YSBET01SZXNUaW1lU3RhbXAuIEl0IG5vdworICAgICAgICBoYXMgYmV0dGVyIHByZWNpc2lvbiwg
aXMgbW9ub3RvbmljIGFuZCBpcyByZWxhdGl2ZSB0byBQZXJmb3JtYW5jZVRpbWluZy5uYXZpZ2F0
aW9uU3RhcnQuCisKKyAgICAgICAgVGhpcyBpcyBhcyBwZXI6CisgICAgICAgIC0gaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNpbnRlcmZhY2UtZXZlbnQKKworICAgICAgICBDaHJvbWUsIEZp
cmVmb3ggYW5kIEVkZ2UgYWxsIGFscmVhZHkgc2hpcCB0aGlzIHNvIHRoZSBjb21wYXRpYmlsaXR5
IHJpc2sgc2hvdWxkIGJlIGxvdy4KKworICAgICAgICBBbHNvIHVzZSBXYWxsVGltZSAvIE1vbm90
b25pY1RpbWUgaW5zdGVhZCBvZiBkb3VibGUgdHlwZSBmb3IgY2xhcml0eS4KKworICAgICAgICBU
ZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGlt
ZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAuCisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKToKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnQ6OkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1l
U3RhbXBGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudDo6dGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQu
aWRsOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OktleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVu
dC5oOgorICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQpOgorICAgICAgICAqIGRv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hF
dmVudDo6VG91Y2hFdmVudCk6CisgICAgICAgICogZG9tL1VJRXZlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VUlFdmVudDo6VUlFdmVudCk6CisgICAgICAgICogZG9tL1VJRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VUlF
dmVudFdpdGhLZXlTdGF0ZTo6VUlFdmVudFdpdGhLZXlTdGF0ZSk6CisgICAgICAgICogZG9tL1do
ZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6V2hlZWxFdmVudCk6
CisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFo
ZWFkOjpUeXBlQWhlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDoKKyAgICAgICAgKiBwYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxDb250cm9sbGVy
OjpBdXRvc2Nyb2xsQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Nyb2xsQ29u
dHJvbGxlcjo6dXBkYXRlRHJhZ0FuZERyb3ApOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9s
bENvbnRyb2xsZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdlL0F1dG9z
Y3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVNb3VzZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6Om5vdyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6cmVsYXRpdmVUaW1lRnJvbVRp
bWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlLmg6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2lu
dCk6CisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
Ojp0aW1lc3RhbXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxh
dGZvcm1FdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIv
RXZlbnRIYW5kbGVyR0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1h
dG9yR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRl
VmVsb2NpdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtTW91c2VFdmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtVG91Y2hFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToK
KworMjAxNy0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAg
IGV2ZW50SW5pdERpY3QgcGFyYW1ldGVyIHRvIEdhbWVwYWRFdmVudCBjb25zdHJ1Y3RvciBzaG91
bGQgYmUgb3B0aW9uYWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3NzMwOAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzODcxMjQ1ZDIwMDRjMjZiNmMxN2Q2NDhhMzk0
M2I2NzAwYzAwYWIuLjE4ODc2YTcxYjk1NTJlZjQxYzhhNmZiMzI3OTdlZjExMWVmYzZjNzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsNzYgQEAKIDIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3Ig
ZXZlbnQgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3Rv
bmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdh
bGxUaW1lPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RXZlbnQ6OldlYkV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnQ6OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2Fy
ZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQv
V2ViVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRv
dWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAgICAgICogU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9pb3MvTmF0aXZl
V2ViVG91Y2hFdmVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVu
dDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL2lvcy9XZWJJT1NFdmVu
dEZhY3RvcnkubW06CisgICAgICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJv
YXJkRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFj
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdl
c3R1cmVFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCk6
CisgICAgICAgICogU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViR2VzdHVyZUV2ZW50OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11
bGF0ZU1vdXNlRG93bik6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlVXApOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBs
dWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjcmVhdGVX
ZWJFdmVudCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRNZW51QXRQb2ludElu
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11
bGF0ZU1vdXNlTW90aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbik6CisK
KzIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBb
V0syXSBBZGQgQVBJIHRvIGdldCB0aGUgcmVkaXJlY3QgY2hhaW4gb2YgYSBXS0Rvd25sb2FkCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2MjgKICAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzM4Mjc5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9n
CmluZGV4IDZjNDE5YjBkMDgyNWMyZjRlYTAzZWRkNWE1MmVlN2Y4MjZkMzBlZGYuLjViMmVkOTQy
NWEwZjQ2YTk5YTg2NWIxYTRlMWE4NjA4MjdhMTU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1wIGZvciBl
dmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMzMzA0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBVc2UgV2FsbFRpbWUgLyBNb25vdG9u
aWNUaW1lIGluc3RlYWQgb2YgZG91YmxlIHR5cGUgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbToKKyAgICAgICAgKC1bV2ViUERGVmlld1Bs
YWNlaG9sZGVyIHNpbXVsYXRlQ2xpY2tPbkxpbmtUb1VSTDpdKToKKwogMjAxNy0wOC0wOSAgWW9z
aGlha2kgSml0c3VrYXdhICA8WW9zaGlha2kuSml0c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAg
IFtQQUxdIE1vdmUgc3BpL2NvY29hIGFuZCBzcGkvY2cgZGlyZWN0b3JpZXMgaW50byBQQUwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBlOGE5Y2Q5MWQxNTFkNDA0Yzc5OTM4MTMzZDRm
MDIzZmE2YmQ3Y2Q5Li5hOWU0NjEwZDdiOGRjZWQwM2U3YTc0Mzc5NGExZTIzNWZmZmM1YjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDktMjEg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaGlnaCByZXNv
bHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
NDMzMzMwND4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
VXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBj
bGFyaXR5LgorCisgICAgICAgICogRE9NL0RPTUV2ZW50Lm1tOgorICAgICAgICAoLVtET01FdmVu
dCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAo
LVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVkQXQ6b3BlcmF0aW9uOl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAgICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENs
aWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIwMTctMDktMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWJWaWV3IGluZGlj
YXRpb24gaGlnaGxpZ2h0cyBzdGlja3MgYXJvdW5kIGZvciBXZWJLaXRMZWdhY3kgdmlld3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAxY2IxMmJmMWU4OWQ3NmQ0ZjQyMzVjYzM4OTk0NDkxZTc5NmE0NTU3Li4wZjE0NDVlNjM3MGYw
NmU2MzVjMzdhOTdjYTY1MGE4ZWQ0ODZlNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTU3LDYgKzE5NTcsNyBAQAogCQk0
NjBCQjYxNjFEMEExQkYwMDAyMjE4MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjBCQjYxNDFEMEExQkVDMDAyMjE4
MTIgLyogQmFzZTY0VXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDYwQ0JGMzUxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93
UHJvcGVydGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjBDQkYzMzFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNw
cCAqLzsgfTsKIAkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVy
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYw
Q0JGMzQxRDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5oICovOyB9Owor
CQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYx
RTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjM0NTkyQzFBQzIyNzEwMDBFQ0I3MUMgLyog
UG93ZXJPYnNlcnZlck1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjM0NTkyQjFBQzIyNzEwMDBFQ0I3MUMgLyogUG93ZXJPYnNlcnZlck1hYy5j
cHAgKi87IH07CiAJCTQ2M0VCNjIyMUI4Nzg5RTAwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIw
MUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJNDYzRUI2MjMx
Qjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdD
b2xsZWN0aW9uLmggKi87IH07CkBAIC05ODM2LDYgKzk4MzcsNyBAQAogCQk0NkRGRjQ5NzFEQzI2
MDEzMDBCODBCNDggLyogU2hhZG93Um9vdE1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNoYWRvd1Jvb3RNb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERkY0
OTkxREMyNjFGOTAwQjgwQjQ4IC8qIEpTU2hhZG93Um9vdE1vZGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTaGFkb3dSb290TW9kZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDlBMURDMjYxRjkwMEI4MEI0OCAvKiBKU1NoYWRvd1Jv
b3RNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhZG93Um9vdE1v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFMDE2QUQxRjcyRDYxRTAwMjgy
QjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NSGlnaFJlc1RpbWVTdGFtcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29sbGVjdGlvblRyYXZlcnNhbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9uVHJhdmVyc2FsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUZBRjBEMUU1RkI5QzIwMEU3RjM0QiAvKiBMb3dQ
b3dlck1vZGVOb3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkVGQUYwRjFFNUZCOUUxMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG93UG93ZXJNb2RlTm90
aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjYyNDEsNiArMjYyNDMs
NyBAQAogCQkJCUJDNjBENkU4MEQyOEQ4MzQwMEI5OTE4RiAvKiBET01FeGNlcHRpb24uaCAqLywK
IAkJCQlCQzYwRDZFQjBEMjhEOTk5MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmlkbCAqLywKIAkJ
CQlCQzlBNjE0MTE0Njg1OUQ5MDA2MDU3RkQgLyogRE9NRXhjZXB0aW9ucy5pbiAqLywKKwkJCQk0
NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovLAogCQkJ
CUE4MTg1RjM2MDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCiAJ
CQkJQTgxODVGMzMwOTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJ
CQkJOTNFRUMxRTkwOUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxlbWVudGF0aW9uLmlkbCAqLywK
QEAgLTI3NjkyLDYgKzI3Njk1LDcgQEAKIAkJCQlCQzYwRDZFOTBEMjhEODM0MDBCOTkxOEYgLyog
RE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5NDcwQzFGNTBCNjNFMDBFOUQ4
NkIgLyogRE9NRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVENjA5QkQxMTQ1QjA3
MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjIxOEFDQjFG
NzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgxODVGM0IwOTc2NTc2NjAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00u
aCBpbiBIZWFkZXJzICovLAogCQkJCUUzMTUwRUE3MURBNzIxOTMwMDE5NDAxMiAvKiBET01KSVRI
ZWxwZXJzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01IaWdoUmVzVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVT
dGFtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjExYjY3ODYwMDkzZWEwOTY1NTdlZmU1Zjg1MWEwNjdlNTM2OWQz
ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVT
dGFtcC5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBET01IaWdoUmVzVGltZVN0YW1wID0gZG91YmxlOwor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTEzNWM5NDc5MDBlZDMyZDRkYjg2MjNlZGQ2
MTkxNDRlZWYxYTM4MS4uM2NjNDU4MzVlZThmYTExZWM5NjliM2E1Njc0N2I2N2ViYjI0YWMwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjUyNSw3ICsyNTI1LDcgQEAgYm9vbCBFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRm9yY2VXaWxsQmVnaW4oKQogICAgIGlmICghZnJhbWUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZl
bnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3NpdGlvbigpLCBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbigpLCBOb0J1dHRv
biwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
V1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CisgICAgUGxhdGZvcm1N
b3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudCB7IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5sYXN0
S25vd25Nb3VzZVBvc2l0aW9uKCksIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5sYXN0S25vd25Nb3Vz
ZUdsb2JhbFBvc2l0aW9uKCksIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpOb1R5cGUsIDEsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywg
Tm9UYXAgfTsKICAgICBhdXRvIG1vdXNlRm9yY2VXaWxsQmVnaW5FdmVudCA9IE1vdXNlRXZlbnQ6
OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0bW91c2Vmb3JjZXdpbGxiZWdpbkV2ZW50LCBkb2N1
bWVudCgpLmRlZmF1bHRWaWV3KCksIHBsYXRmb3JtTW91c2VFdmVudCwgMCwgbnVsbHB0cik7CiAg
ICAgbW91c2VGb3JjZVdpbGxCZWdpbkV2ZW50LT5zZXRUYXJnZXQodGhpcyk7CiAgICAgZGlzcGF0
Y2hFdmVudChtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXgg
ODcwNTk1MTg0ZTEzNDEzYTJlMjVlZTA3M2M3ZTUzOGI1OGNhNjQ5ZS4uYjk3ZDAwMzhmZGY5YTc1
YjY0ZGEzMTUxZGZkODEzNjIzMjI1MWEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0yMywxNyAr
MjMsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudC5oIgogCisjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRQYXRoLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKKyNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNh
dG9yLmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBFdmVudDo6RXZlbnQoSXNUcnVz
dGVkIGlzVHJ1c3RlZCkKICAgICA6IG1faXNUcnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6
OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1
cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQog
ewogfQogCkBAIC00MywxNyArNDcsMTcgQEAgRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXIKICAgICAs
IG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2FuY2VsYWJsZShjYW5jZWxhYmxl
QXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1fY3JlYXRlVGltZShjb252ZXJ0
U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVhdGVUaW1l
KE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCi1FdmVudDo6RXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcs
IGRvdWJsZSB0aW1lc3RhbXApCitFdmVudDo6RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKQogICAgIDogbV90eXBlKGV2ZW50VHlwZSkKICAgICAsIG1faXNJbml0aWFs
aXplZCh0cnVlKQogICAgICwgbV9jYW5CdWJibGUoY2FuQnViYmxlQXJnKQogICAgICwgbV9jYW5j
ZWxhYmxlKGNhbmNlbGFibGVBcmcpCiAgICAgLCBtX2lzVHJ1c3RlZCh0cnVlKQotICAgICwgbV9j
cmVhdGVUaW1lKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAodGltZXN0YW1wKSkKKyAgICAs
IG1fY3JlYXRlVGltZSh0aW1lc3RhbXApCiB7CiB9CiAKQEAgLTY0LDcgKzY4LDcgQEAgRXZlbnQ6
OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudEluaXQmIGlu
aXRpYWxpemVyLCBJc1RydXMKICAgICAsIG1fY2FuY2VsYWJsZShpbml0aWFsaXplci5jYW5jZWxh
YmxlKQogICAgICwgbV9jb21wb3NlZChpbml0aWFsaXplci5jb21wb3NlZCkKICAgICAsIG1faXNU
cnVzdGVkKGlzVHJ1c3RlZCA9PSBJc1RydXN0ZWQ6OlllcykKLSAgICAsIG1fY3JlYXRlVGltZShj
b252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1lKCkpKQorICAgICwgbV9jcmVh
dGVUaW1lKE1vbm90b25pY1RpbWU6Om5vdygpKQogewogfQogCkBAIC0yMTYsNCArMjIwLDE4IEBA
IHZvaWQgRXZlbnQ6OnNldFVuZGVybHlpbmdFdmVudChFdmVudCogdW5kZXJseWluZ0V2ZW50KQog
ICAgIG1fdW5kZXJseWluZ0V2ZW50ID0gdW5kZXJseWluZ0V2ZW50OwogfQogCitET01IaWdoUmVz
VGltZVN0YW1wIEV2ZW50Ojp0aW1lU3RhbXBGb3JCaW5kaW5ncyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSA9IG51
bGxwdHI7CisgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkKKyAgICAgICAg
cGVyZm9ybWFuY2UgPSAmZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnBlcmZv
cm1hbmNlKCk7CisgICAgZWxzZSBpZiAoYXV0byogd2luZG93ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmRvbVdpbmRvdygpKQorICAgICAgICBwZXJmb3JtYW5jZSA9IHdpbmRvdy0+cGVy
Zm9ybWFuY2UoKTsKKworICAgIGlmICghcGVyZm9ybWFuY2UpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIHBlcmZvcm1hbmNlLT5yZWxhdGl2ZVRpbWVGcm9tVGltZU9yaWdpbkluUmVk
dWNlZFJlc29sdXRpb24obV9jcmVhdGVUaW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaAppbmRleCA5ZWRiM2FmMzFlY2ZmNTVhMDc3MjUwYzVkZjlkYmM5ZDM0NTFj
OGQyLi5jNWQ0ZDQxZDYzNzgxMWYyMjQyZTc1OTBjYjQ3OGM3MzM2OTlmODFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnQuaApAQCAtMjMsMTEgKzIzLDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRE9N
VGltZVN0YW1wLmgiCisjaW5jbHVkZSAiRE9NSGlnaFJlc1RpbWVTdGFtcC5oIgogI2luY2x1ZGUg
IkV2ZW50SW5pdC5oIgogI2luY2x1ZGUgIkV2ZW50SW50ZXJmYWNlcy5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCisjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAg
LTk2LDcgKzk3LDggQEAgcHVibGljOgogICAgIGJvb2wgY2FuY2VsYWJsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FuY2VsYWJsZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29tcG9zZWQoKSBj
b25zdDsKIAotICAgIERPTVRpbWVTdGFtcCB0aW1lU3RhbXAoKSBjb25zdCB7IHJldHVybiBtX2Ny
ZWF0ZVRpbWU7IH0KKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcEZvckJpbmRpbmdz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKKyAgICBNb25vdG9uaWNUaW1lIHRpbWVT
dGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRlVGltZTsgfQogCiAgICAgdm9pZCBzZXRFdmVu
dFBhdGgoY29uc3QgRXZlbnRQYXRoJiBwYXRoKSB7IG1fZXZlbnRQYXRoID0gJnBhdGg7IH0KICAg
ICB2b2lkIGNsZWFyRXZlbnRQYXRoKCkgeyBtX2V2ZW50UGF0aCA9IG51bGxwdHI7IH0KQEAgLTE3
MCw3ICsxNzIsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgRXZlbnQoSXNUcnVzdGVkID0g
SXNUcnVzdGVkOjpObyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlKTsKLSAgICBFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUs
IGRvdWJsZSB0aW1lc3RhbXApOworICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwg
Ym9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAp
OwogICAgIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRXZlbnRJbml0Jiwg
SXNUcnVzdGVkKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFRhcmdldCgpOwpAQCAtMTk1
LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFyZ2V0PiBtX2N1cnJlbnRU
YXJnZXQ7CiAgICAgY29uc3QgRXZlbnRQYXRoKiBtX2V2ZW50UGF0aCB7IG51bGxwdHIgfTsKICAg
ICBSZWZQdHI8RXZlbnRUYXJnZXQ+IG1fdGFyZ2V0OwotICAgIERPTVRpbWVTdGFtcCBtX2NyZWF0
ZVRpbWU7CisgICAgTW9ub3RvbmljVGltZSBtX2NyZWF0ZVRpbWU7CiAKICAgICBSZWZQdHI8RXZl
bnQ+IG1fdW5kZXJseWluZ0V2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCmluZGV4IDUzM2YzMWNj
OGQ1ZmMwMmNhYTM0MzM1MTA5NTk3YjhhYjU0OTg3MTUuLjg3YWUxZmI0OWMyNWEyYjg2NGEzZTIy
NzhjM2ZmNWZkMzE5MTYwOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbApAQCAtMTgsNiArMTgsOCBAQAog
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAordHlwZWRlZiBkb3VibGUgRE9N
SGlnaFJlc1RpbWVTdGFtcDsKKwogWwogICAgIENvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBv
cHRpb25hbCBFdmVudEluaXQgZXZlbnRJbml0RGljdCksCiAgICAgQ3VzdG9tVG9KU09iamVjdCwK
QEAgLTQ4LDcgKzUwLDcgQEAKICAgICBbRW5hYmxlZEF0UnVudGltZT1TaGFkb3dET01dIHJlYWRv
bmx5IGF0dHJpYnV0ZSBib29sZWFuIGNvbXBvc2VkOwogCiAgICAgW1VuZm9yZ2VhYmxlXSByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1RydXN0ZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVRpbWVTdGFtcCB0aW1lU3RhbXA7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIEltcGxlbWVudGVkQXM9dGltZVN0YW1wRm9yQmluZGluZ3NdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01IaWdoUmVzVGltZVN0YW1wIHRpbWVTdGFtcDsKIAogICAgIHZvaWQgaW5pdEV2ZW50
KERPTVN0cmluZyB0eXBlLCBvcHRpb25hbCBib29sZWFuIGJ1YmJsZXMgPSBmYWxzZSwgb3B0aW9u
YWwgYm9vbGVhbiBjYW5jZWxhYmxlID0gZmFsc2UpOyAvLyBIaXN0b3JpY2FsLgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggMmJkOTMxZmM0ODAwODdlZmQzNTBiNGQxOGYw
ZjFlMDhkZGIyZjFhZi4uNDgwNGMxZDA1ZTU2Yjc4OGM2NGFlMzcyYTIxZjdlZDQ0NmYzNzQ0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcApAQCAtOTUsNyArOTUsNyBAQCBLZXli
b2FyZEV2ZW50OjpLZXlib2FyZEV2ZW50KCkgPSBkZWZhdWx0OwogCiBLZXlib2FyZEV2ZW50OjpL
ZXlib2FyZEV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5LCBET01XaW5kb3cq
IHZpZXcpCiAgICAgOiBVSUV2ZW50V2l0aEtleVN0YXRlKGV2ZW50VHlwZUZvcktleWJvYXJkRXZl
bnRUeXBlKGtleS50eXBlKCkpCi0gICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5LnRpbWVzdGFtcCgp
LCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5zaGlmdEtleSgpCisg
ICAgICAgICwgdHJ1ZSwgdHJ1ZSwga2V5LnRpbWVzdGFtcCgpLmFwcHJveGltYXRlTW9ub3Rvbmlj
VGltZSgpLCB2aWV3LCAwLCBrZXkuY3RybEtleSgpLCBrZXkuYWx0S2V5KCksIGtleS5zaGlmdEtl
eSgpCiAgICAgICAgICwga2V5Lm1ldGFLZXkoKSwgZmFsc2UsIGtleS5tb2RpZmllcnMoKS5jb250
YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpKQogICAgICwgbV9rZXlF
dmVudChzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtS2V5Ym9hcmRFdmVudD4oa2V5KSkKICNpZiBF
TkFCTEUoS0VZQk9BUkRfS0VZX0FUVFJJQlVURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApp
bmRleCBlYjc2ZDZhZjkxZjk1NmQyM2Q0Njc1MWQzZDNmNjZmN2Q2NWRmZDhhLi4zYzc4NWE3YTQ0
NjZhNTAyMzgyY2VlNzEyZGI4ZWMyZGZjZDZjYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiSlNFdmVudFRhcmdldEN1c3RvbS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTUxLDcgKzUwLDcgQEAgUmVmPE1vdXNlRXZlbnQ+IE1vdXNlRXZlbnQ6
OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWUKICAg
ICBib29sIGlzQ2FuY2VsYWJsZSA9IGV2ZW50VHlwZSAhPSBldmVudE5hbWVzKCkubW91c2Vtb3Zl
RXZlbnQgJiYgIWlzTW91c2VFbnRlck9yTGVhdmU7CiAgICAgYm9vbCBjYW5CdWJibGUgPSAhaXNN
b3VzZUVudGVyT3JMZWF2ZTsKIAotICAgIHJldHVybiBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRU
eXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQudGltZXN0YW1wKCksIHZpZXcsCisg
ICAgcmV0dXJuIE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIGNhbkJ1YmJsZSwgaXNDYW5j
ZWxhYmxlLCBldmVudC50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmll
dywKICAgICAgICAgZGV0YWlsLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtNjAsNyArNTksNyBAQCBS
ZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHZpZQogICAgICAgICByZWxhdGVkVGFyZ2V0LCBldmVudC5mb3Jj
ZSgpLCBldmVudC5zeW50aGV0aWNDbGlja1R5cGUoKSk7CiB9CiAKLVJlZjxNb3VzZUV2ZW50PiBN
b3VzZUV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGlu
dCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVks
CitSZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1l
c3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAg
IGludCBtb3ZlbWVudFgsIGludCBtb3ZlbWVudFksCiAjZW5kaWYKQEAgLTgzLDcgKzgyLDcgQEAg
TW91c2VFdmVudDo6TW91c2VFdmVudCgpCiB7CiB9CiAKLU1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNl
bGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29u
c3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRp
b24sCitNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVuTG9j
YXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKICNlbmRpZgpA
QCAtMTAzLDcgKzEwMiw3IEBAIE1vdXNlRXZlbnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlCiB9CiAKIE1vdXNlRXZl
bnQ6Ok1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnVi
YmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyogdmlldywgaW50IGRldGFpbCwgY29uc3Qg
SW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJbnRQb2ludCYgY2xpZW50TG9jYXRpb24s
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwg
dW5zaWduZWQgc2hvcnQgYnV0dG9uLCB1bnNpZ25lZCBzaG9ydCBzeW50aGV0aWNDbGlja1R5cGUs
IEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KQotICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIFdURjo6Y3VycmVudFRpbWUoKSwgdmlldywg
ZGV0YWlsLCBzY3JlZW5Mb2NhdGlvbiwgeyB9LAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQoZXZl
bnRUeXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWU6Om5vdygpLCB2aWV3
LCBkZXRhaWwsIHNjcmVlbkxvY2F0aW9uLCB7IH0sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgeyB9LAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAppbmRleCBlMzAwODJi
ZDNhZjZhNGFlNWFiNzM5NmQxZDE5NmZlNGIwOTAxNDg5Li41ZjFjMDNhNDUxYjNjYjU2ODlhN2Iz
Yzc2Zjk4MjlmOTNkYmMxNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VF
dmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKQEAgLTMzLDcgKzMz
LDcgQEAgY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogCiBjbGFzcyBNb3VzZUV2ZW50IDogcHVi
bGljIE1vdXNlUmVsYXRlZEV2ZW50IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPE1vdXNlRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wg
Y2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
IGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFn
ZVksCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2ZW50PiBjcmVhdGUoY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBN
b25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiwgaW50IGRldGFpbCwgaW50IHNjcmVl
blgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICBpbnQgbW92ZW1lbnRYLCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBA
IC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICBpbnQgd2hpY2goKSBjb25zdCBmaW5hbDsKIAog
cHJvdGVjdGVkOgotICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29s
IGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cq
LAorICAgIE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiwK
ICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25z
dCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAg
ICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmNwcAppbmRleCBlYmE5YTdhOTJhZWIxYjQyMDM0MjRiYTY5ODk2Mjk2
ODU5M2QzZjQ4Li42OTE1ZTljMzA3Njk3ZDM5MGUzYzNiOGFiNzg5MzEwOGFjMmEyZjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Nb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVk
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29s
IGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogRE9NV2luZG93LAorTW91
c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRp
bWVzdGFtcCwgRE9NV2luZG93KiBET01XaW5kb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBj
b25zdCBJbnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92
ZW1lbnREZWx0YSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmgKaW5kZXggODBh
NzMwYTIwOGFmOTQxNTIwMWE1MjhkMzQ4NzBiOTY2M2E5MWQwZS4uZTM1ZDI5M2M0MTE0ZjA1OTNm
M2M5ZWRkZWFmYjMyMDJkMDAxMGY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2
ZW50LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VS
ZWxhdGVkRXZlbnQoKSA9IGRlZmF1bHQ7Ci0gICAgTW91c2VSZWxhdGVkRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUg
dGltZXN0YW1wLCBET01XaW5kb3cqLAorICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3Rvbmlj
VGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBkZXRhaWwsIGNvbnN0IElu
dFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IEludFBvaW50JiBtb3ZlbWVu
dERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKaW5kZXggNmZiM2I0ZDdm
NzIzNjJmYTdlOWI3MjBlNTQyYmM0NmZiNzUyY2I2MC4uNDU0OTM2OGJlOTI3ODcyYjk5YmUwMTdk
MWI4ZTA2ODMxOGI3ODBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRl
ZENsaWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCkBA
IC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTaW11bGF0ZWRNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHZpZXcsIFJlZlB0
cjxFdmVudD4mJiB1bmRlcmx5aW5nRXZlbnQsIEVsZW1lbnQmIHRhcmdldCwgU2ltdWxhdGVkQ2xp
Y2tTb3VyY2Ugc291cmNlKQotICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCB0
cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDogY3Vy
cmVudFRpbWUoKSwgdmlldywgMCwgeyB9LCB7IH0sCisgICAgICAgIDogTW91c2VFdmVudChldmVu
dFR5cGUsIHRydWUsIHRydWUsIHVuZGVybHlpbmdFdmVudCA/IHVuZGVybHlpbmdFdmVudC0+dGlt
ZVN0YW1wKCkgOiBNb25vdG9uaWNUaW1lOjpub3coKSwgdmlldywgMCwgeyB9LCB7IH0sCiAjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIHsgfSwKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1RvdWNoRXZlbnQuY3BwCmluZGV4IGY1Y2VjN2NjNDBjYjcyOTI5NDJlNDBhM2I5YmIwZjk5YTQw
MjgyOWQuLjg3M2YyOTY0YmQ0M2JjOWIzM2UwYmE3NzUwMjlhZGIzMmFjODJhMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVG91Y2hFdmVudC5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJUb3VjaEV2
ZW50LmgiCiAKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKLSNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Myw3ICs0Miw3IEBAIFRv
dWNoRXZlbnQ6OlRvdWNoRXZlbnQoVG91Y2hMaXN0KiB0b3VjaGVzLCBUb3VjaExpc3QqIHRhcmdl
dFRvdWNoZXMsCiAgICAgICAgIFRvdWNoTGlzdCogY2hhbmdlZFRvdWNoZXMsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdHlwZSwgCiAgICAgICAgIERPTVdpbmRvdyogdmlldywgaW50IHNjcmVlblgsIGlu
dCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICAgICAgICAgYm9vbCBjdHJsS2V5LCBi
b29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQotICAgIDogTW91c2VSZWxh
dGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgdmlldywgMCwgSW50UG9p
bnQoc2NyZWVuWCwgc2NyZWVuWSksCisgICAgOiBNb3VzZVJlbGF0ZWRFdmVudCh0eXBlLCB0cnVl
LCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgdmlldywgMCwgSW50UG9pbnQoc2NyZWVuWCwg
c2NyZWVuWSksCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChwYWdlWCwgcGFnZVkp
LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQ
b2ludCgwLCAwKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmNwcAppbmRleCA0Y2IyMjM5ZWM1YmUwZGE4MGQ5
ZGQxOGYwZWU0ZTQyNzAyMmVhNTk0Li5lODE1YWY5N2FmZTRkMDhlNWVjMGI3N2YzMTNjYWI2YWY4
OWJmOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCkBAIC0zOSw3ICszOSw3IEBAIFVJRXZlbnQ6
OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJn
LCBib29sIGNhbmNlbGFiCiB7CiB9CiAKLVVJRXZlbnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxlQXJnLCBib29sIGNhbmNlbGFibGVBcmcsIGRv
dWJsZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlld0FyZywgaW50IGRldGFpbEFyZykKK1VJRXZl
bnQ6OlVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGJvb2wgY2FuQnViYmxl
QXJnLCBib29sIGNhbmNlbGFibGVBcmcsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5k
b3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCiAgICAgOiBFdmVudChldmVudFR5cGUsIGNhbkJ1
YmJsZUFyZywgY2FuY2VsYWJsZUFyZywgdGltZXN0YW1wKQogICAgICwgbV92aWV3KHZpZXdBcmcp
CiAgICAgLCBtX2RldGFpbChkZXRhaWxBcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVUlFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAppbmRleCA5NzNkNzNl
ZjNmYTMzNTNjMGY3OTYzY2EwZmE4ZTFlNzg1NmFkN2NiLi5iYWE3MzFmY2Y4MWVlYmFmMjMxNTNk
YTUxYmEwYWVhZmQyNDU1ZmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKQEAgLTY2LDcgKzY2LDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIFVJRXZlbnQoKTsKICAgICBVSUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgRE9NV2lu
ZG93KiwgaW50IGRldGFpbCk7Ci0gICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAsIERPTVdp
bmRvdyosIGludCBkZXRhaWwpOworICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFt
cCwgRE9NV2luZG93KiwgaW50IGRldGFpbCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmLCBjb25zdCBVSUV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAppbmRleCBiZmVhMzg3YzIxMmMyNTFhZDUx
ZjA3MGJlMzZiZTQ0NTgxNjI0ZGUyLi4wYThlNDAzMTI0OGQ2ZjcyNjU0NDJlNWJmODAwMTJiYTMw
Y2NjZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50V2l0aEtleVN0YXRlLmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICBVSUV2ZW50V2l0aEtl
eVN0YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2Fu
Y2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAorICAgIFVJRXZlbnRX
aXRoS2V5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9v
bCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LAog
ICAgICAgICBpbnQgZGV0YWlsLCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0
S2V5LCBib29sIG1ldGFLZXksIGJvb2wgYWx0R3JhcGhLZXksIGJvb2wgY2Fwc0xvY2tLZXkpCiAg
ICAgICAgICAgICA6IFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCB0aW1lc3Rh
bXAsIHZpZXcsIGRldGFpbCkKICAgICAgICAgICAgICwgbV9jdHJsS2V5KGN0cmxLZXkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAKaW5kZXggNTMwZTZiMDExOTI5Mjg5MmE2ZDhhNDljZTI3OGI1
NzNmNmYzNzA4NC4uODBkYjA1YTE1NTI4OGI5NWUzODIwYTI4N2Y5MTliYWFkYmQyNTA5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBXaGVlbEV2ZW50OjpX
aGVlbEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgSW5pdCYgaW5pdGlhbGl6
ZXIsIElzVHJ1cwogfQogCiBXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgZXZlbnQsIERPTVdpbmRvdyogdmlldykKLSAgICA6IE1vdXNlRXZlbnQoZXZlbnRO
YW1lcygpLndoZWVsRXZlbnQsIHRydWUsIHRydWUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LCAw
LCBldmVudC5nbG9iYWxQb3NpdGlvbigpLCBldmVudC5wb3NpdGlvbigpCisgICAgOiBNb3VzZUV2
ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAo
KS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFsUG9zaXRp
b24oKSwgZXZlbnQucG9zaXRpb24oKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAg
ICwgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcAppbmRleCBkMjZmNTdkODQ5
YTZiYWUwNTk2ODZiNWQyOTQ5NDgwMGJlNWE3Mzg4Li5mMWVjYjdjZDYwZmUwZGEyNDg2Zjg3NWZh
ZmIyMjNhMzc1M2Q0MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCkBAIC0zNywxMiAr
MzcsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBUeXBlQWhlYWQ6OlR5cGVBaGVhZChUeXBl
QWhlYWREYXRhU291cmNlKiBkYXRhU291cmNlKQogICAgIDogbV9kYXRhU291cmNlKGRhdGFTb3Vy
Y2UpCi0gICAgLCBtX2xhc3RUeXBlVGltZSgwKQogICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCiB7
CiB9CiAKLXN0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7
CitzdGF0aWMgY29uc3QgU2Vjb25kcyB0eXBlQWhlYWRUaW1lb3V0IHsgMV9zIH07CiAKIHN0YXRp
YyBTdHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
QEAgLTYzLDcgKzYyLDcgQEAgaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQsIE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKICAgICAgICAgcmV0dXJuIC0xOwog
CiAgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRpb25Db3VudCgpOwotICAg
IERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1l
OworICAgIFNlY29uZHMgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGlt
ZTsKICAgICBtX2xhc3RUeXBlVGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKIAogICAgIFVDaGFy
IGMgPSBldmVudC0+Y2hhckNvZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCmluZGV4IDYxMGFj
NzgyODhiNzYwMjQ3OTc3YmYyZTIzODJjY2EyZTIyYmRhODkuLjA0NmMwMDFlNTcxNzQ1ZjdiZTFm
OWU0NjI3YzZmNzRkZTZhYzI1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlw
ZUFoZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMjUsNyAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2lu
Y2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01OCw3ICs1OCw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUeXBlQWhlYWREYXRhU291cmNlKiBtX2RhdGFT
b3VyY2U7Ci0gICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5cGVUaW1lOworICAgIE1vbm90b25pY1Rp
bWUgbV9sYXN0VHlwZVRpbWU7CiAgICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOwogICAgIFN0cmlu
Z0J1aWxkZXIgbV9idWZmZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9B
dXRvc2Nyb2xsQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxD
b250cm9sbGVyLmNwcAppbmRleCBlMzk5NmZkZWQ1MGM1YjNlNjRkMjQxMjMxY2U0MjZmNDVkODdl
NWU1Li5lNTI4N2MwY2IyMzcwMTI2YWVlOWY0ZjVjZjgzM2E4MDlhZGJjNWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmNwcApAQCAtMzcsMTIgKzM3LDEx
IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIERlbGF5IHRpbWUgaW4gc2Vjb25kIGZvciBzdGFydCBhdXRv
c2Nyb2xsIGlmIHBvaW50ZXIgaXMgaW4gYm9yZGVyIGVkZ2Ugb2Ygc2Nyb2xsYWJsZSBlbGVtZW50
Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBhdXRvc2Nyb2xsRGVsYXkgPSAwLjI7CitzdGF0aWMgY29u
c3QgU2Vjb25kcyBhdXRvc2Nyb2xsRGVsYXkgeyAyMDBfbXMgfTsKIAogLy8gV2hlbiB0aGUgYXV0
b3Njcm9sbCBvciB0aGUgcGFuU2Nyb2xsIGlzIHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwg
ZXZlcnkgNTBtcyB0byBtYWtlIGl0IHNtb290aC4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIGF1dG9z
Y3JvbGxJbnRlcnZhbCB7IDUwX21zIH07CkBAIC01OSw3ICs1OCw2IEBAIEF1dG9zY3JvbGxDb250
cm9sbGVyOjpBdXRvc2Nyb2xsQ29udHJvbGxlcigpCiAgICAgOiBtX2F1dG9zY3JvbGxUaW1lcigq
dGhpcywgJkF1dG9zY3JvbGxDb250cm9sbGVyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCkKICAgICAs
IG1fYXV0b3Njcm9sbFJlbmRlcmVyKG51bGxwdHIpCiAgICAgLCBtX2F1dG9zY3JvbGxUeXBlKE5v
QXV0b3Njcm9sbCkKLSAgICAsIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lKDApCiB7
CiB9CiAKQEAgLTE0MCw3ICsxMzgsNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRh
dGVBdXRvc2Nyb2xsUmVuZGVyZXIoKQogICAgIG1fYXV0b3Njcm9sbFJlbmRlcmVyID0gaXM8UmVu
ZGVyQm94PihyZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51bGxw
dHI7CiB9CiAKLXZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9wKE5v
ZGUqIGRyb3BUYXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgZG91Ymxl
IGV2ZW50VGltZSkKK3ZvaWQgQXV0b3Njcm9sbENvbnRyb2xsZXI6OnVwZGF0ZURyYWdBbmREcm9w
KE5vZGUqIGRyb3BUYXJnZXROb2RlLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3NpdGlvbiwgV2Fs
bFRpbWUgZXZlbnRUaW1lKQogewogICAgIGlmICghZHJvcFRhcmdldE5vZGUpIHsKICAgICAgICAg
c3RvcEF1dG9zY3JvbGxUaW1lcigpOwpAQCAtMjQxLDcgKzIzOSw3IEBAIHZvaWQgQXV0b3Njcm9s
bENvbnRyb2xsZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKCkKICAgICBGcmFtZSYgZnJhbWUgPSBt
X2F1dG9zY3JvbGxSZW5kZXJlci0+ZnJhbWUoKTsKICAgICBzd2l0Y2ggKG1fYXV0b3Njcm9sbFR5
cGUpIHsKICAgICBjYXNlIEF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcDoKLSAgICAgICAgaWYgKFdU
Rjo6Y3VycmVudFRpbWUoKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3RhcnRUaW1lID4gYXV0
b3Njcm9sbERlbGF5KQorICAgICAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9kcmFnQW5kRHJv
cEF1dG9zY3JvbGxTdGFydFRpbWUgPiBhdXRvc2Nyb2xsRGVsYXkpCiAgICAgICAgICAgICBtX2F1
dG9zY3JvbGxSZW5kZXJlci0+YXV0b3Njcm9sbChtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFJlZmVy
ZW5jZVBvc2l0aW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdXRvc2Nyb2xsRm9yU2Vs
ZWN0aW9uOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9sbGVyLmgKaW5k
ZXggM2NkOWRiZjMzNzljYjc3N2E4YWFiYzc1YmI4M2I5NjcxMzYxY2Y2NC4uNzEzNjBiYTQ0ZGRj
OTQ1MTRmNjk0MmQ0NmJkYjhmMGY4ZDA2YmUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0
b3Njcm9sbENvbnRyb2xsZXIuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSW50UG9p
bnQuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c3RhcnRBdXRvc2Nyb2xsRm9yU2VsZWN0aW9uKFJlbmRlck9iamVjdCopOwogICAgIHZvaWQgc3Rv
cEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsK
ICAgICB2b2lkIHVwZGF0ZUF1dG9zY3JvbGxSZW5kZXJlcigpOwotICAgIHZvaWQgdXBkYXRlRHJh
Z0FuZERyb3AoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24s
IGRvdWJsZSBldmVudFRpbWUpOworICAgIHZvaWQgdXBkYXRlRHJhZ0FuZERyb3AoTm9kZSogdGFy
Z2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIFdhbGxUaW1lIGV2ZW50VGlt
ZSk7CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgdm9pZCBkaWRQYW5TY3JvbGxTdGFy
dCgpOwogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RvcCgpOwpAQCAtNzksNyArODAsNyBAQCBwcml2
YXRlOgogICAgIFJlbmRlckJveCogbV9hdXRvc2Nyb2xsUmVuZGVyZXI7CiAgICAgQXV0b3Njcm9s
bFR5cGUgbV9hdXRvc2Nyb2xsVHlwZTsKICAgICBJbnRQb2ludCBtX2RyYWdBbmREcm9wQXV0b3Nj
cm9sbFJlZmVyZW5jZVBvc2l0aW9uOwotICAgIGRvdWJsZSBtX2RyYWdBbmREcm9wQXV0b3Njcm9s
bFN0YXJ0VGltZTsKKyAgICBXYWxsVGltZSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGlt
ZTsKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBJbnRQb2ludCBtX3BhblNjcm9sbFN0
YXJ0UG9zOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKaW5kZXggODAxMWM0MmQ2MDNhMWRkOTI2OTZmMzdlNjE0MTA5ZGE4OTI2ZmJmNy4u
MzIyYjQ5MjNmZmIyNDI3YzJiODVhOWM2ZDVkMWM3MWUwYzYwNTY0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNjgsNiArNjgsNyBAQAog
I2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiV2luZG93
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV1RGOwpAQCAtMTQ0MCw3ICsxNDQxLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWMK
ICAgICBjbGVhckNvbnRleHRNZW51KCk7CiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBjbGljayBp
biB0aGUgbWlkZGxlIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdC4KLSAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgbW91c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwg
UGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiAgICAgZnJhbWUuZXZlbnRI
YW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwogICAgIGJvb2wgaGFu
ZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZl
bnQpOwogICAgIGlmIChoYW5kbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNw
cAppbmRleCBlZjU2Njc5NWFhZDBiZDA0MzM4YmQzOGRmNjYwNDVkZmE5ZjYzNjQ2Li4zZjhhMjA2
YjU1NTk2NDdjMDhlMmI1MWJhNWM2Y2ZlZGFhNjU4NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBQbGF0Zm9ybU1vdXNl
RXZlbnQgY3JlYXRlTW91c2VFdmVudChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICBy
ZXR1cm4gUGxhdGZvcm1Nb3VzZUV2ZW50KGRyYWdEYXRhLmNsaWVudFBvc2l0aW9uKCksIGRyYWdE
YXRhLmdsb2JhbFBvc2l0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwg
YWx0S2V5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgY3VycmVudFRp
bWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogfQogCiBE
cmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xp
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVjODQ4YWZkOWIwMWQx
YWUzMzlmNDZjZWQ0YTI0NTg4ZDNmNzBlM2EuLmVmMDY5YzQ3ZTc0NmI4MTM0NGU5MjljZjc3NGUy
OTM0ZDRhNDQ3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEzNSw3
ICsxMzUsNyBAQCBjb25zdCBpbnQgSW1hZ2VEcmFnSHlzdGVyZXNpcyA9IDU7CiBjb25zdCBpbnQg
VGV4dERyYWdIeXN0ZXJlc2lzID0gMzsKIGNvbnN0IGludCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXMg
PSAzOwogI2lmIFBMQVRGT1JNKENPQ09BKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4
dERyYWdEZWxheSA9IDAuMTU7Citjb25zdCBTZWNvbmRzIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdE
ZWxheSB7IDE1MF9tcyB9OwogI2VuZGlmCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkK
IApAQCAtMjE5MCw3ICsyMTkwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiBkcmEKIAogICAgIHZp
ZXctPmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24o
KTsKICAgICBSZWY8TW91c2VFdmVudD4gbWUgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBl
LAotICAgICAgICB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgbV9mcmFtZS5kb2N1bWVu
dCgpLT5kZWZhdWx0VmlldygpLAorICAgICAgICB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAo
KS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5kZWZhdWx0
VmlldygpLAogICAgICAgICAwLCBldmVudC5nbG9iYWxQb3NpdGlvbigpLngoKSwgZXZlbnQuZ2xv
YmFsUG9zaXRpb24oKS55KCksIGV2ZW50LnBvc2l0aW9uKCkueCgpLCBldmVudC5wb3NpdGlvbigp
LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICBldmVudC5tb3ZlbWVudERl
bHRhKCkueCgpLCBldmVudC5tb3ZlbWVudERlbHRhKCkueSgpLApAQCAtMjkzOSw3ICsyOTM5LDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KCkKICAgICBQ
bGF0Zm9ybUV2ZW50OjpUeXBlIGV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3Nl
ZDsKICNlbmRpZgogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHBsYXRmb3JtTW91c2VFdmVudChw
b3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIFJpZ2h0QnV0dG9uLCBldmVudFR5cGUsIDEsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXVEY6OmN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywg
Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQocG9zaXRp
b24sIGdsb2JhbFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsK
IAogICAgIHJldHVybiBzZW5kQ29udGV4dE1lbnVFdmVudChwbGF0Zm9ybU1vdXNlRXZlbnQpOwog
fQpAQCAtMzAyMSw3ICszMDIxLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVF
dmVudFRpbWVyRmlyZWQoKQogICAgIGJvb2wgYWx0S2V5OwogICAgIGJvb2wgbWV0YUtleTsKICAg
ICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKHNoaWZ0S2V5
LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXkpOwotICAgIFBsYXRmb3JtTW91c2VFdmVudCBmYWtl
TW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uLCBtX2xhc3RLbm93bk1vdXNl
R2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBz
aGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBjdXJyZW50VGltZSgpLCAwLCBOb1Rh
cCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGZha2VNb3VzZU1vdmVFdmVudChtX2xhc3RLbm93
bk1vdXNlUG9zaXRpb24sIG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbiwgTm9CdXR0b24s
IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXks
IG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgMCwgTm9UYXApOwogICAgIG1vdXNlTW92ZWQoZmFr
ZU1vdXNlTW92ZUV2ZW50KTsKIH0KICNlbmRpZiAvLyAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA2NjYzYzhmMmE4OWQzZjIyYzNiZWY2
MmIwOTdjNDZhZWRiZjY3NjYzLi5hMGFhNTM1ZjVhNWQ4Y2E4MTE3NWE4OTEwMTViNmU5YmJmNDg3
OTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAgLTMyMyw3ICszMjMsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgc3RhdGljIERy
YWdTdGF0ZSYgZHJhZ1N0YXRlKCk7Ci0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBUZXh0RHJhZ0Rl
bGF5OworICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIFRleHREcmFnRGVsYXk7CiAgICAgUmVmPERh
dGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKICNlbmRpZgog
CkBAIC01NjQsNyArNTY0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRQb2ludCBtX2xhc3RLbm93bk1v
dXNlUG9zaXRpb247CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9u
OwogICAgIEludFBvaW50IG1fbW91c2VEb3duUG9zOyAvLyBJbiBvdXIgdmlldydzIGNvb3Jkcy4K
LSAgICBkb3VibGUgbV9tb3VzZURvd25UaW1lc3RhbXAgeyAwIH07CisgICAgV2FsbFRpbWUgbV9t
b3VzZURvd25UaW1lc3RhbXA7CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1fbW91c2VEb3duOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwCmluZGV4
IDFhZmEzNjQ1OTEzMTMxN2EwMjYzNTg5MGVkMWJlYWVlMWQ0ZTRlOWEuLjZjNTJhYWY5YTY0YzI1
YWM1MDQ5N2ZiYTgwNmQ2NzA4N2QwNDg5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2Uu
Y3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmNvbnRleHREZXN0cm95ZWQo
KQogICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CiB9
CiAKLWRvdWJsZSBQZXJmb3JtYW5jZTo6bm93KCkgY29uc3QKK0RPTUhpZ2hSZXNUaW1lU3RhbXAg
UGVyZm9ybWFuY2U6Om5vdygpIGNvbnN0CiB7CiAgICAgU2Vjb25kcyBub3cgPSBNb25vdG9uaWNU
aW1lOjpub3coKSAtIG1fdGltZU9yaWdpbjsKICAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRp
b24obm93KS5taWxsaXNlY29uZHMoKTsKQEAgLTgyLDYgKzgyLDEyIEBAIFNlY29uZHMgUGVyZm9y
bWFuY2U6OnJlZHVjZVRpbWVSZXNvbHV0aW9uKFNlY29uZHMgc2Vjb25kcykKICAgICByZXR1cm4g
U2Vjb25kcyhyZWR1Y2VkKTsKIH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBQZXJmb3JtYW5jZTo6
cmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1Rp
bWUgdGltZXN0YW1wKSBjb25zdAoreworICAgIFNlY29uZHMgc2Vjb25kcyA9IHRpbWVzdGFtcCAt
IG1fdGltZU9yaWdpbjsKKyAgICByZXR1cm4gcmVkdWNlVGltZVJlc29sdXRpb24oc2Vjb25kcyku
bWlsbGlzZWNvbmRzKCk7Cit9CisKIFBlcmZvcm1hbmNlTmF2aWdhdGlvbiogUGVyZm9ybWFuY2U6
Om5hdmlnYXRpb24oKQogewogICAgIGlmICghaXM8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXggOWE2MGVjMGFiMmNhNThi
N2YxMGM0YjhkYjljZmY2MTIxMDlkNTg1ZC4uNDM4YTAwMTJlMjgzYTZjYjNjMzRkNjBjMTY1ZDc3
YzI5ZDE1OTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaApAQCAtMzMsNiArMzMsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5o
IgorI2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNsdWRlICJFdmVudFRhcmdl
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1
ZS5oIgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQZXJmb3JtYW5j
ZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1vbm90b25pY1RpbWUg
dGltZU9yaWdpbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJmb3JtYW5jZShjb250ZXh0LCB0
aW1lT3JpZ2luKSk7IH0KICAgICB+UGVyZm9ybWFuY2UoKTsKIAotICAgIGRvdWJsZSBub3coKSBj
b25zdDsKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIG5vdygpIGNvbnN0OwogCiAgICAgUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKCk7CiAgICAgUGVyZm9ybWFuY2VUaW1pbmcqIHRp
bWluZygpOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU2Vjb25kcyBy
ZWR1Y2VUaW1lUmVzb2x1dGlvbihTZWNvbmRzKTsKIAorICAgIERPTUhpZ2hSZXNUaW1lU3RhbXAg
cmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uKE1vbm90b25pY1Rp
bWUpIGNvbnN0OworCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJl
ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA4ZjBm
YjRlMmVhYmEzZGQ5NmNlZWI0NDM4ZjhmM2IwMzk5NThiMTQyLi45Zjk3NThiZjM1MDE3ZWJiNGI1
ZDJkNzFiMjBkN2U4ZDk5Y2FhYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lv
cy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tCkBAIC01ODcsOCArNTg3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnRyeVRv
QmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGkK
ICAgICBJbnRQb2ludCBhZGp1c3RlZENsaWVudFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KGFk
anVzdGVkQ2xpZW50UG9zaXRpb25Bc0Zsb2F0UG9pbnQpOwogICAgIEludFBvaW50IGFkanVzdGVk
R2xvYmFsUG9zaXRpb24gPSBwcm90ZWN0ZWRGcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRz
KGFkanVzdGVkQ2xpZW50UG9zaXRpb24pOwogCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlUHJlc3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2Jh
bFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCAwLCBOb1RhcCk7Ci0gICAg
UGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50
UG9zaXRpb24sIGFkanVzdGVkR2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGlt
ZSgpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRoZXRpY01vdXNlUHJl
c3NFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBM
ZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKKyAgICBQbGF0Zm9ybU1v
dXNlRXZlbnQgc3ludGhldGljTW91c2VNb3ZlRXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwg
YWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgMCwg
Tm9UYXApOwogCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCk7CiAg
ICAgYXV0byBkb2N1bWVudFBvaW50ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKSA/IHByb3RlY3Rl
ZEZyYW1lLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoc3ludGhldGljTW91c2VNb3ZlRXZlbnQu
cG9zaXRpb24oKSkgOiBzeW50aGV0aWNNb3VzZU1vdmVFdmVudC5wb3NpdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXggZGNlYzAzNGRmZWMz
YjYxYzUxY2FkZjI3NzJhNTY3NTkwYWZjZGYyNC4uNDIxMDZhNjhmZmJkODFhYzEwN2Y1MGI5MDc4
NmI3ZTA5ZTA4MzI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRI
YW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJX
aW4uY3BwCkBAIC00OCw3ICs0OCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxh
eSA9IDAuMDsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5IHsgMF9z
IH07CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1
YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCmluZGV4IDVjYjQ3ODQ3MWQ2
NmE4ZWM5NmE1NDhkZjQ5MDhlNTg3ZTgxZDg1ZTcuLjUyY2I5Yzg3NDAyZjA3MTAyZGY2MzhiMTUx
MDgyZDc4N2ExM2I4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL09wdGlvblNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTg2LDI5ICs4NywyNyBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25TZXQ8TW9kaWZpZXI+IG1v
ZGlmaWVycygpIGNvbnN0IHsgcmV0dXJuIG1fbW9kaWZpZXJzOyB9CiAKLSAgICBkb3VibGUgdGlt
ZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KKyAgICBXYWxsVGltZSB0aW1l
c3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3RpbWVzdGFtcDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
UGxhdGZvcm1FdmVudCgpCiAgICAgICAgIDogbV90eXBlKE5vVHlwZSkKLSAgICAgICAgLCBtX3Rp
bWVzdGFtcCgwKQogICAgIHsKICAgICB9CiAKICAgICBleHBsaWNpdCBQbGF0Zm9ybUV2ZW50KFR5
cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAgICAgLCBtX3RpbWVzdGFtcCgw
KQogICAgIHsKICAgICB9CiAKLSAgICBQbGF0Zm9ybUV2ZW50KFR5cGUgdHlwZSwgT3B0aW9uU2V0
PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVu
dChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9tb2RpZmllcnMobW9k
aWZpZXJzKQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CiAgICAgfQog
Ci0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICBQbGF0
Zm9ybUV2ZW50KFR5cGUgdHlwZSwgYm9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFs
dEtleSwgYm9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgICAgIDogbV90eXBl
KHR5cGUpCiAgICAgICAgICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQogICAgIHsKQEAgLTEzMCw3
ICsxMjksNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3R5cGU7CiAgICAgT3B0aW9u
U2V0PE1vZGlmaWVyPiBtX21vZGlmaWVyczsKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAg
V2FsbFRpbWUgbV90aW1lc3RhbXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCmluZGV4IDg3
YmE1NzYwOGRmNTdiZmQ4YmE0MGI3OGMwZDk2NDM0ZDA4N2MzMGEuLjk3ZDAzYWY5MmFkMzgxMmJl
NWU5Y2UxMzk0Yjg1Y2MyY2M3YTY1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNpZiBFTkFCTEUoS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUpCiAgICAgICAgIGNvbnN0
IFN0cmluZyYgY29kZSwKICNlbmRpZgotICAgICAgICBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZp
ZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlz
S2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBPcHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCkKKyAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBh
ZCwgYm9vbCBpc1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCkKICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBtb2RpZmll
cnMsIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV90ZXh0KHRleHQpCiAgICAgICAgICAgICAs
IG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCmluZGV4IDEwNGY1Mzk3MDkyYTkwN2ExZTk4NTM4N2Rm
YjNkMmFkYjcyODdhNzEuLmE0ZTdkNTg5MjRjMGQyYzJjNDI0MTNmNGYyZWMyZWM2ZmNjYjJiZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTW91c2VFdmVudC5oCkBAIC02
MSw3ICs2MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAg
IH0KIAogICAgICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9u
LCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIE1vdXNlQnV0dG9uIGJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6VHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNs
aWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
bWV0YUtleSwgZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5
cGUgc3ludGhldGljQ2xpY2tUeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNs
aWNrQ291bnQsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
bWV0YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNr
VHlwZSBzeW50aGV0aWNDbGlja1R5cGUpCiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlw
ZSwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgdGltZXN0YW1wKQogICAgICAg
ICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAgICAgLCBtX2dsb2JhbFBvc2l0
aW9uKGdsb2JhbFBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuaAppbmRleCA2ZDQ1OGJlZjRiODA0ZjUyYmRlMjk0ZDE2NzliMTYxM2ZjOTAyNDgw
Li4yOTU4ODIxMGM4Mzg4M2Y0ZGI3ZDkwYzE2ZmU0YmRjYWY5YmYxOTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50KEludFBvaW50IHBvc2l0aW9u
LCBJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZs
b2F0IHdoZWVsVGlja3NYLCBmbG9hdCB3aGVlbFRpY2tzWSwgUGxhdGZvcm1XaGVlbEV2ZW50R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgbWV0YUtleSkKLSAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZl
bnQ6OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCAwKQorICAgICAg
ICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHNoaWZ0S2V5LCBjdHJsS2V5
LCBhbHRLZXksIG1ldGFLZXksIHsgfSkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQog
ICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCiAgICAgICAgICwgbV9k
ZWx0YVgoZGVsdGFYKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9s
bENvbnRyb2xsZXIubW0KaW5kZXggZDM3OWUyNDc0ZDE2NjY1NGE0YzEyOWNjY2IwZjFlZGUzZTYz
MjVlMy4uMGIyYjI4MTgwYzQ0MzYzNmI1NDliYWRjNTViY2ZiYTlhYmU0NTVlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC0x
NzksMTQgKzE3OSwxNCBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKG1vbWVudHVtUGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2VCZWdhbiB8fCBtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hh
bmdlZCkpCiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gdHJ1ZTsKIAotICAg
IENGVGltZUludGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xh
c3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEg
PSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIG1f
bGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8
fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewogICAgICAgICBpZiAobV9sYXN0TW9tZW50
dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxW
ZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHku
c2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAg
ICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkg
LyAoZmxvYXQpdGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGlt
ZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVu
dHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VF
cG9jaCgpLnZhbHVlKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21l
bnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAg
ICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCku
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpOwogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9j
aXR5ID0gRmxvYXRTaXplKCk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAKaW5kZXggYmZhNGM2YzEwZTRiMTllNTA1
MTAwODIzNTY5MGJmM2FiNzcwNGU5OC4uYTVlNjg1M2FlMmRjNjEwMWYxZDZjN2EyYmNlYWRhMWIz
MDY5MGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhh
bmRsZXJHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2ZW50SGFu
ZGxlckdMaWIuY3BwCkBAIC00OSw3ICs0OSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERy
YWdEZWxheSA9IDAuMDsKK2NvbnN0IFNlY29uZHMgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5
IHsgMF9zIH07CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250
cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKaW5kZXggZDliOTVhOTdk
ZGI5NzYxZmQzYzA3NmFmOGFhNzk2ZDYzZjEzNTliNS4uNGZjMTNiZWNjM2FiMmQ2MWFlZDQ0Yjlm
ZThjMmExNzE4ZTBmMWYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1BsYXRmb3JtS2V5Ym9hcmRFdmVudEd0ay5jcHAKQEAgLTEyNTksNyArMTI1OSw3IEBA
IHN0YXRpYyBPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyc0Zvckdk
a0tleUV2ZW50KEdka0V2ZW50S2V5KiBlCiAKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhl
IG90aGVyIHBsYXRmb3JtIGV2ZW50IGNvbnN0cnVjdG9ycwogUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50LCBjb25zdCBDb21wb3Np
dGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVzdWx0cykKLSAgICA6IFBsYXRmb3JtRXZlbnQoZXZl
bnRUeXBlRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChldmVu
dCksIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tl
eUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6
bm93KCkpCiAgICAgLCBtX3RleHQoY29tcG9zaXRpb25SZXN1bHRzLnNpbXBsZVN0cmluZy5sZW5n
dGgoKSA/IGNvbXBvc2l0aW9uUmVzdWx0cy5zaW1wbGVTdHJpbmcgOiBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmcoZXZlbnQtPmtleXZhbCkpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KG1fdGV4dCkKICAg
ICAsIG1fa2V5KGtleVZhbHVlRm9yR2RrS2V5Q29kZShldmVudC0+a2V5dmFsKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAK
aW5kZXggYjY5MjQ4NTZjYjhiMDNjZTY4OTkxZTQyZjVkNTNhMzFhZDZlNTc4ZC4uZWM5MWFmZWVm
N2E1YmYxZGEwNWU5NDkyYmFiMDI2YzRkZDBhOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtTW91c2VFdmVudEd0ay5jcHAKQEAgLTM4LDcgKzM4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gS2VlcCB0aGlzIGluIHN5bmMgd2l0aCB0aGUg
b3RoZXIgcGxhdGZvcm0gZXZlbnQgY29uc3RydWN0b3JzCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBs
YXRmb3JtTW91c2VFdmVudChHZGtFdmVudEJ1dHRvbiogZXZlbnQpCiB7Ci0gICAgbV90aW1lc3Rh
bXAgPSBldmVudC0+dGltZTsKKyAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyhldmVudC0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpZXZlbnQt
PngsIChpbnQpZXZlbnQtPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50
KWV2ZW50LT54X3Jvb3QsIChpbnQpZXZlbnQtPnlfcm9vdCk7CiAgICAgbV9idXR0b24gPSBOb0J1
dHRvbjsKQEAgLTg3LDcgKzg3LDcgQEAgUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNl
RXZlbnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRm
b3JtTW91c2VFdmVudChHZGtFdmVudE1vdGlvbiogbW90aW9uKQogewotICAgIG1fdGltZXN0YW1w
ID0gbW90aW9uLT50aW1lOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKG1vdGlvbi0+dGltZSk7CiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50KChpbnQpbW90aW9u
LT54LCAoaW50KW1vdGlvbi0+eSk7CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KChp
bnQpbW90aW9uLT54X3Jvb3QsIChpbnQpbW90aW9uLT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0g
Tm9CdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZv
cm1XaGVlbEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bVdoZWVsRXZlbnRHdGsuY3BwCmluZGV4IDNiMGU1OTA2ZmNkNTAyY2Y5YzVkN2RjYWE5ZWM3YTJk
OWFjMjNjOGUuLjRlNmQ3OTI1MjBjNDg0NzE3NzhjOTkzM2VhNjI1NDkyMTQ3MGFmNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVdoZWVsRXZlbnRH
dGsuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVk
ZSA8Z2RrL2dkay5oPgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00Myw3ICs0Myw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2
ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKICAgICBzdGF0aWMgY29uc3QgZmxvYXQgZGVsdGEg
PSAxOwogCiAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVudDo6V2hlZWw7Ci0gICAgbV90aW1lc3Rh
bXAgPSBjdXJyZW50VGltZSgpOworICAgIG1fdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwog
CiAgICAgaWYgKGV2ZW50LT5zdGF0ZSAmIEdES19TSElGVF9NQVNLKQogICAgICAgICBtX21vZGlm
aWVycyB8PSBNb2RpZmllcjo6U2hpZnRLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcAppbmRleCBjMmFhOWRjMDFmNzY3ZWVhOThlMzEz
YTg2NGE2YTI3ODJiYThmMDRiLi40M2RmMjMwM2ZkODcxMTBkMDAxODk5NzVjOTlhMWZlYmM0NDNi
MjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0
b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxBbmltYXRv
ckd0ay5jcHAKQEAgLTExMiw4ICsxMTIsOCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3Rr
Ojpjb21wdXRlVmVsb2NpdHkoKQogICAgIGlmIChtX3Njcm9sbEhpc3RvcnkuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5
WzBdLnRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSBsYXN0ID0gbV9zY3JvbGxIaXN0b3J5LnJiZWdp
bigpLT50aW1lc3RhbXAoKTsKKyAgICBhdXRvIGZpcnN0ID0gbV9zY3JvbGxIaXN0b3J5WzBdLnRp
bWVzdGFtcCgpOworICAgIGF1dG8gbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGlt
ZXN0YW1wKCk7CiAKICAgICBpZiAobGFzdCA9PSBmaXJzdCkKICAgICAgICAgcmV0dXJuIHsgfTsK
QEAgLTEyNCw3ICsxMjQsNyBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRl
VmVsb2NpdHkoKQogCiAgICAgbV9zY3JvbGxIaXN0b3J5LmNsZWFyKCk7CiAKLSAgICByZXR1cm4g
RmxvYXRQb2ludChhY2N1bURlbHRhLngoKSAqIC0xMDAwIC8gKGxhc3QgLSBmaXJzdCksIGFjY3Vt
RGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KSk7CisgICAgcmV0dXJuIEZsb2F0UG9p
bnQoYWNjdW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLnZhbHVlKCksIGFjY3Vt
RGVsdGEueSgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpKTsKIH0KIAogYm9vbCBT
Y3JvbGxBbmltYXRvckd0azo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIGV2ZW50KQpAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JHdGs6Omhh
bmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBtX2tp
bmV0aWNBbmltYXRpb24tPnN0b3AoKTsKIAogICAgIG1fc2Nyb2xsSGlzdG9yeS5yZW1vdmVBbGxN
YXRjaGluZyhbJmV2ZW50XSAoUGxhdGZvcm1XaGVlbEV2ZW50JiBvdGhlckV2ZW50KSAtPiBib29s
IHsKLSAgICAgICAgcmV0dXJuIFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoZXZlbnQudGltZXN0
YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFtcCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7
CisgICAgICAgIHJldHVybiAoZXZlbnQudGltZXN0YW1wKCkgLSBvdGhlckV2ZW50LnRpbWVzdGFt
cCgpKSA+IHNjcm9sbENhcHR1cmVUaHJlc2hvbGQ7CiAgICAgfSk7CiAKICAgICBpZiAoZXZlbnQu
aXNFbmRPZk5vbk1vbWVudHVtU2Nyb2xsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlPUy5tbQppbmRleCAwNjJmOTgyMzc3
MWJkZmEzNjAyOWUyNTY4OWYzZDhmMTYzOTIzMTQ2Li40OGM4NDAzMzJiODliZmE5MjYxMDE3NjBi
N2ZiMDgxYzIxMGQ1NDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtRXZlbnRGYWN0b3J5SU9TLm1tCkBAIC0zMiw3ICszMiw3IEBACiAjaW1wb3J0
ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRv
d3NLZXlib2FyZENvZGVzLmgiCi0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQg
PHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg1LDcgKzg1LDcg
QEAgcHVibGljOgogICAgIFBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXIoV2ViRXZlbnQgKmV2ZW50
KQogICAgIHsKICAgICAgICAgbV90eXBlID0gbW91c2VFdmVudFR5cGUoZXZlbnQpOwotICAgICAg
ICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0gV2Fs
bFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2ZW50
KTsKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZlbnQp
OwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGV2ZW50LnR5cGUg
PT0gV2ViRXZlbnRTY3JvbGxXaGVlbCk7CiAKICAgICAgICAgbV90eXBlID0gUGxhdGZvcm1FdmVu
dDo6V2hlZWw7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAg
bV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHBv
aW50Rm9yRXZlbnQoZXZlbnQpOwogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gZ2xvYmFsUG9p
bnRGb3JFdmVudChldmVudCk7CkBAIC0zNjksNyArMzY5LDcgQEAgcHVibGljOgogCiAgICAgICAg
IG1fdHlwZSA9IChldmVudC50eXBlID09IFdlYkV2ZW50S2V5VXAgPyBQbGF0Zm9ybUV2ZW50OjpL
ZXlVcCA6IFBsYXRmb3JtRXZlbnQ6OktleURvd24pOwogICAgICAgICBtX21vZGlmaWVycyA9IG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAgPSBjdXJyZW50VGlt
ZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgICAgICBt
X3RleHQgPSBldmVudC5jaGFyYWN0ZXJzOwogICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gZXZl
bnQuY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIG1fdHlwZSA9IHRvdWNoRXZlbnRUeXBlKGV2ZW50KTsKICAgICAg
ICAgbV9tb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgICAgIG1fdGlt
ZXN0YW1wID0gZXZlbnQudGltZXN0YW1wOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhldmVudC50aW1lc3RhbXApOwogCiAgICAgICAgIG1fZ2VzdHVyZVNj
YWxlID0gZXZlbnQuZ2VzdHVyZVNjYWxlOwogICAgICAgICBtX2dlc3R1cmVSb3RhdGlvbiA9IGV2
ZW50Lmdlc3R1cmVSb3RhdGlvbjsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBwdWJsaWM6CiAgICAgUGxh
dGZvcm1Ub3VjaEV2ZW50QnVpbGRlcihQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsIEludFBvaW50
IGxvY2F0aW9uKQogICAgIHsKICAgICAgICAgbV90eXBlID0gdHlwZTsKLSAgICAgICAgbV90aW1l
c3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpu
b3coKTsKICAgICAgICAgCiAgICAgICAgIG1fZ2VzdHVyZVNjYWxlID0gMTsKICAgICAgICAgbV9n
ZXN0dXJlUm90YXRpb24gPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaAppbmRleCBkMjBhMmQ4ZWU5MGY0YzE4NjdiOTZl
NTk0OTIxOTU5YzRmNmMwMjZmLi5jNDBlYzIxZjEyYTE3OGRmODhlOWJmMjkwNGEwZDdmZDc3OTVi
OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVu
dEZhY3RvcnlNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMuaApAQCAtNDgsNyArNDgsNyBAQCBXRUJDT1JFX0VYUE9SVCBpbnQgd2lu
ZG93c0tleUNvZGVGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5n
IGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGtleUZvcktleUV2ZW50KE5TRXZlbnQgKik7CiBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29k
ZUZvcktleUV2ZW50KE5TRXZlbnQgKik7Ci1XRUJDT1JFX0VYUE9SVCBkb3VibGUgZXZlbnRUaW1l
U3RhbXBTaW5jZTE5NzAoTlNFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGV2ZW50
VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQgKik7CiAgICAgCiBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldFdoZWVsRXZlbnREZWx0YXMoTlNFdmVudCAqLCBmbG9hdCYgZGVsdGFYLCBmbG9hdCYgZGVs
dGFZLCBCT09MJiBjb250aW51b3VzKTsKIFdFQkNPUkVfRVhQT1JUIFVJbnQ4IGtleUNoYXJGb3JF
dmVudChOU0V2ZW50ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDJiMTgyMjRmODM0OWZmYmI2ZTNjMThh
OGQxNTQxNTQ1ZDljMmFiNjIuLjc5NDFjZDZjNGRkMjgyOGM2ZDZmNzM5YzBiMjUyYTQ3OThjNTY5
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvbWFj
L05TRXZlbnRTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TTWVudVNQSS5oPgogI2ltcG9y
dCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTYxNyw5ICs2MTgsOSBAQCBzdGF0aWMgQ0ZUaW1lSW50ZXJ2YWwg
Y2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgpCiAgICAgcmV0dXJuIHN5c3RlbVN0
YXJ0dXBUaW1lOwogfQogCi1kb3VibGUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCog
ZXZlbnQpCitXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChOU0V2ZW50KiBldmVudCkK
IHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVy
dmFsU2luY2UxOTcwKCkgKyBbZXZlbnQgdGltZXN0YW1wXSk7CisgICAgcmV0dXJuIFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxkb3VibGU+KGNhY2hlZFN0YXJ0dXBUaW1lSW50
ZXJ2YWxTaW5jZTE5NzAoKSArIFtldmVudCB0aW1lc3RhbXBdKSk7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc0tleVVwRXZlbnQoTlNFdmVudCAqZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAppbmRleCA2NTU1YWVmMDk4ZmRiMGQwMzA4NDI0MWVj
NzhmMThkMjQxMDMwYzRhLi42MmNjYWMzYjg4NTEyN2UyNmMwYzllYzVlZTdhMjdjNzM0ZjYxYjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlFdmVudFdpbi5jcHAKQEAgLTIy
MCw3ICsyMjAsNyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmco
VUNoYXIgYykKIH0KIAogUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpQbGF0Zm9ybUtleWJvYXJkRXZl
bnQoSFdORCwgV1BBUkFNIGNvZGUsIExQQVJBTSBrZXlEYXRhLCBUeXBlIHR5cGUsIGJvb2wgc3lz
dGVtS2V5KQotICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBHZXRLZXlTdGF0ZShWS19TSElGVCkg
JiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19DT05UUk9MKSAmIEhJR0hfQklU
X01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwg
ZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQodHlw
ZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3Rh
dGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5V
KSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMo
OjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fdGV4dCgodHlwZSA9PSBQbGF0Zm9y
bUV2ZW50OjpDaGFyKSA/IHNpbmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQog
ICAgICwgbV91bm1vZGlmaWVkVGV4dCgodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpDaGFyKSA/IHNp
bmdsZUNoYXJhY3RlclN0cmluZyhjb2RlKSA6IFN0cmluZygpKQogICAgICwgbV9rZXlJZGVudGlm
aWVyKCh0eXBlID09IFBsYXRmb3JtRXZlbnQ6OkNoYXIpID8gU3RyaW5nKCkgOiBrZXlJZGVudGlm
aWVyRm9yV2luZG93c0tleUNvZGUoY29kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QbGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCmluZGV4IDAwMGZkM2FjMzMxODU1
ODI0MTk5MzJkNWMyNTdmNjhlOTM2NjY3NmQuLmVhMjQ3YzllNmM1OGY0MmZlZjRkZmFhMzEyY2Fk
ZGVhMGE4NmMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QbGF0
Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
bGF0Zm9ybU1vdXNlRXZlbnRXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBQbGF0Zm9y
bUV2ZW50OjpUeXBlIG1lc3NhZ2VUb0V2ZW50VHlwZShVSU5UIG1lc3NhZ2UpCiB9CiAKIFBsYXRm
b3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdl
LCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGRpZEFjdGl2YXRlV2ViVmlldykK
LSAgICA6IFBsYXRmb3JtRXZlbnQobWVzc2FnZVRvRXZlbnRUeXBlKG1lc3NhZ2UpLCB3UGFyYW0g
JiBNS19TSElGVCwgd1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBI
SUdIX0JJVF9NQVNLX1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tf
U0hPUlQsIGN1cnJlbnRUaW1lKCkpCisgICAgOiBQbGF0Zm9ybUV2ZW50KG1lc3NhZ2VUb0V2ZW50
VHlwZShtZXNzYWdlKSwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRST0wsIEdl
dEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktf
TUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6bm93KCkpCiAgICAgLCBtX3Bv
c2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9z
aXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JFdmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9jbGlj
a0NvdW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxF
dmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5j
cHAKaW5kZXggOWVmMjQ4YmM3NGY2ZDUwNWVlYjdlZDY3MmJlOTNmZTM4NzVjNTEyOC4uNmRiZWEy
MGU0NjJmMDRjYjcwYTdmZDM1ODUxNTk4NmM4YTg2YjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9XaGVlbEV2ZW50V2luLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMg
aW50IHZlcnRpY2FsU2Nyb2xsTGluZXMoKQogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRm
b3JtV2hlZWxFdmVudChIV05EIGhXbmQsIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0UG9pbnQmIGxvY2F0aW9uKQotICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpX
aGVlbCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDo6R2V0VGlja0NvdW50KCkgKiAwLjAw
MSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoOjpHZXRUaWNrQ291bnQo
KSAqIDAuMDAxKSkKICAgICAsIG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKGZhbHNlKQog
ewogICAgIG1fZGVsdGFYID0gZGVsdGEud2lkdGgoKTsKQEAgLTk1LDcgKzk1LDcgQEAgUGxhdGZv
cm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25kLCBjb25zdCBGbG9hdFNp
emUmIGRlbHRhLCBjb25zdAogfQogCiBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxF
dmVudChIV05EIGhXbmQsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0sIGJvb2wgaXNNb3Vz
ZUhXaGVlbCkKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIHdQYXJh
bSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19NRU5VKSAm
IEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKQorICAgIDogUGxhdGZvcm1FdmVudChQ
bGF0Zm9ybUV2ZW50OjpXaGVlbCwgd1BhcmFtICYgTUtfU0hJRlQsIHdQYXJhbSAmIE1LX0NPTlRS
T0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3Rh
dGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoOjpHZXRUaWNrQ291bnQoKSAqIDAuMDAxKSkKICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb25G
b3JFdmVudChoV25kLCBsUGFyYW0pKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJv
bURldmljZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IGU3ZDQxYzcxMDM5ZDE5MzY0MmIxMjlhMjI4ZDllZDkwYWYxODU1Mzgu
LmFhOTk4MGMzNDI0N2M2ZWE4OWY5NTU5YTJkZjk1YTRmMjhjMTkxZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNzUsNiArNzUsNyBA
QAogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KIApAQCAtMTYwLDYgKzE2MSwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TW9ub3Rv
bmljVGltZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBNb25vdG9uaWNUaW1lJiB0aW1lKQog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2FsbFRpbWUmIHRpbWUpCit7CisgICAgZW5jb2Rl
ciA8PCB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKK30KKworYm9vbCBBcmd1bWVu
dENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdhbGxUaW1lJiB0aW1l
KQoreworICAgIGRvdWJsZSB2YWx1ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vj
b25kcyh2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxT
ZWNvbmRzPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlY29uZHMmIHNlY29uZHMp
CiB7CiAgICAgZW5jb2RlciA8PCBzZWNvbmRzLnZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDViNWZkMzk3NDEzNGE5ZDRhOTk0NDli
NWI5OTc1OTg2MzkxMjRjNmUuLjA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJj
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC00Myw2ICs0Myw3IEBACiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CiBj
bGFzcyBTZWNvbmRzOworY2xhc3MgV2FsbFRpbWU7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTE2Miw2ICsxNjMsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6
Ok1vbm90b25pY1RpbWU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdURjo6
TW9ub3RvbmljVGltZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
VEY6OldhbGxUaW1lPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
VEY6OldhbGxUaW1lJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6Oldh
bGxUaW1lJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdURjo6U2Vj
b25kcz4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpTZWNv
bmRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6OlNlY29uZHMmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA1MDdiYzE2NjI4OWVkNWUyNjI0NmZiOWM1
YjdlNzA3ZTgwMmQxOWJjLi41YTA4NmY5N2I4Mzk0YThjODg0ZmY2MGZmNzk1N2ZhY2RlNWRmNTdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogI2lu
Y2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJFdmVudDo6V2Vi
RXZlbnQoKQogICAgIDogbV90eXBlKHN0YXRpY19jYXN0PHVpbnQzMl90PihOb1R5cGUpKQogICAg
ICwgbV9tb2RpZmllcnMoMCkKLSAgICAsIG1fdGltZXN0YW1wKDApCiB7CiB9CiAKLVdlYkV2ZW50
OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCitXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBX
YWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fbW9kaWZpZXJz
KG1vZGlmaWVycykKICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJF
dmVudC5oCmluZGV4IDIxMDE4NmRjMGZkYzBmNjYyMDU0MmJhZGFhYzJhNjNkYzhiZjNlMjEuLjJk
NDU5ZjZhMTA2ZjY4MWFmODhhMzc1ZTNlZTY1ZjViMmJlMzk3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
RXZlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6
ZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTEwNCwxMiArMTA1LDEyIEBAIHB1YmxpYzoK
IAogICAgIE1vZGlmaWVycyBtb2RpZmllcnMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxN
b2RpZmllcnM+KG1fbW9kaWZpZXJzKTsgfQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3Qg
eyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFdlYkV2ZW50KCk7CiAK
LSAgICBXZWJFdmVudChUeXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdl
YkV2ZW50KFR5cGUsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKIAogICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6
OkRlY29kZXImLCBXZWJFdmVudCYpOwpAQCAtMTE3LDcgKzExOCw3IEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgdWludDMyX3QgbV90eXBlOyAvLyBUeXBlCiAgICAgdWludDMyX3QgbV9tb2Rp
ZmllcnM7IC8vIE1vZGlmaWVycwotICAgIGRvdWJsZSBtX3RpbWVzdGFtcDsKKyAgICBXYWxsVGlt
ZSBtX3RpbWVzdGFtcDsKIH07CiAKIC8vIEZJWE1FOiBNb3ZlIHRoaXMgY2xhc3MgdG8gaXRzIG93
biBoZWFkZXIgZmlsZS4KQEAgLTEzNSw5ICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgV2ViTW91c2VF
dmVudCgpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0
dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0
IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91
YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0g
LTEsIGludCBtZW51VHlwZSA9IDApOworICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9uLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRh
WiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUg
Zm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwLCBpbnQgZXZlbnROdW1iZXIgPSAtMSwg
aW50IG1lbnVUeXBlID0gMCk7CiAjZWxzZQotICAgIFdlYk1vdXNlRXZlbnQoVHlwZSwgQnV0dG9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRl
bHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOworICAgIFdlYk1vdXNlRXZl
bnQoVHlwZSwgQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBk
ZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wLCBkb3VibGUgZm9yY2UgPSAwLCBTeW50aGV0aWNDbGlja1R5cGUgPSBOb1RhcCk7
CiAjZW5kaWYKIAogICAgIEJ1dHRvbiBidXR0b24oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxCdXR0b24+KG1fYnV0dG9uKTsgfQpAQCAtMTk3LDExICsxOTgsMTEgQEAgcHVibGljOgogCiAg
ICAgV2ViV2hlZWxFdmVudCgpIHsgfQogCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgTW9kaWZpZXJzLCBkb3VibGUg
dGltZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHdoZWVsVGlja3MsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQ
b3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRl
ZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9h
dFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzLCBkb3VibGUgdGlt
ZXN0YW1wKTsKKyAgICBXZWJXaGVlbEV2ZW50KFR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBwb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHdo
ZWVsVGlja3MsIEdyYW51bGFyaXR5LCBib29sIGRpcmVjdGlvbkludmVydGVkRnJvbURldmljZSwg
UGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIGJvb2wgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRh
cywgdWludDMyX3Qgc2Nyb2xsQ291bnQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2Nl
bGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAj
ZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJp
dHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViV2hlZWxFdmVudChUeXBl
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBkZWx0YSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSwgUGhhc2UgbW9tZW50dW1Q
aGFzZSwgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbmRp
ZgogCiAgICAgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3Bvc2l0aW9uOyB9CkBAIC0yNTAsMTMgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgfldlYktl
eWJvYXJkRXZlbnQoKTsKIAogI2lmIFVTRShBUFBLSVQpCi0gICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wg
aXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7
CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxl
ZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jiwg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKLSAgICBXZWJL
ZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wgaGFuZGxl
ZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNLZXlwYWQs
IE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBl
LCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBW
ZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgV2ViS2V5Ym9hcmRFdmVu
dChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5
SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxL
ZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFk
LCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdl
YktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVu
bW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwg
Ym9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApOwogI2Vsc2UKLSAgICBXZWJLZXlib2FyZEV2ZW50KFR5cGUsIGNvbnN0IFN0cmluZyYg
dGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXlJZGVu
dGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNv
ZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJv
b2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAgV2ViS2V5
Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2Rp
ZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wg
aXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMs
IFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFN0cmluZyYgdGV4dCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQpAQCAtMzgyLDcgKzM4Myw3IEBAIHByaXZhdGU6CiBj
bGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJU
b3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlwZSB0eXBlLCBN
b2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxh
dGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
LCBib29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxl
LCBmbG9hdCBnZXN0dXJlUm90YXRpb24pCisgICAgV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VHlw
ZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAsIGNvbnN0IFZl
Y3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cywgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24sIGJvb2wgaXNQb3RlbnRpYWxUYXAsIGJvb2wgaXNHZXN0dXJlLCBmbG9hdCBn
ZXN0dXJlU2NhbGUsIGZsb2F0IGdlc3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0
eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAgICAgLCBtX3RvdWNoUG9pbnRzKHRvdWNo
UG9pbnRzKQogICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCkBAIC00NzEsNyArNDcyLDcg
QEAgcHJpdmF0ZToKIGNsYXNzIFdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViRXZlbnQgewogcHVi
bGljOgogICAgIFdlYlRvdWNoRXZlbnQoKSB7IH0KLSAgICBXZWJUb3VjaEV2ZW50KFR5cGUsIFZl
Y3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCk7CisgICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50
PiYmLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICBjb25zdCBWZWN0b3I8
V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3Rv
dWNoUG9pbnRzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJv
YXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAK
aW5kZXggZWI0NzcxZmRhNTM2OGU3ZmFkMmFkMmYxNzRjNDQ3MmI1MjZhMjZmYy4uMGNmMjcxOTk2
MjFjZjZkZWRhMGVhNGVkNjYwM2E5MTk2ZTFjZWU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudCgpCiAKICNpZiBVU0UoQVBQS0lUKQogCi1XZWJLZXlib2FyZEV2ZW50
OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBj
b2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNv
ZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYg
Y29tbWFuZHMsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVt
S2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRF
dmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29u
c3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxL
ZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFu
ZD4mIGNvbW1hbmRzLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5
c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkK
ICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC02Miw3ICs2Miw3IEBA
IFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2VsaWYgUExBVEZPUk0oR1RLKQogCi1XZWJLZXli
b2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtl
eUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFs
S2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21t
YW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFt
cCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3Ry
aW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxs
VGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFt
cCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh0ZXh0KQpAQCAt
ODMsNyArODMsNyBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKElP
UykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBt
YWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9k
aWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmll
ZFRleHQodW5tb2RpZmllZFRleHQpCkBAIC0xMDYsNyArMTA2LDcgQEAgV2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJgogCiAjZWxzZQogCi1XZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0
LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUs
IGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1Jl
cGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQo
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRv
UmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMs
IHRpbWVzdGFtcCkKICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICwgbV91bm1vZGlmaWVkVGV4dCh1
bm1vZGlmaWVkVGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNl
RXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXgg
OGRhOGQzZmU4MzM2MGE1NzBmZGM0NzIzODI3OWYxOWRhYTA1ZjM4OS4uMGY3N2ZhZTNkMGRmNzhi
NzUzZGVjNTg5ZjA4NWM3NmVhZmJmYjgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViTW91c2VF
dmVudC5jcHAKQEAgLTQ3LDkgKzQ3LDkgQEAgV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudCgp
CiB9CiAKICNpZiBQTEFURk9STShNQUMpCi1XZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5
cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9h
dCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGlt
ZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50aGV0aWNDbGlja1R5
cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQorV2ViTW91c2VFdmVudDo6V2ViTW91
c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRl
bHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQgY2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywg
V2FsbFRpbWUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBzeW50
aGV0aWNDbGlja1R5cGUsIGludCBldmVudE51bWJlciwgaW50IG1lbnVUeXBlKQogI2Vsc2UKLVdl
Yk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxv
YXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1v
ZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhl
dGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNl
RXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0
YVksIGZsb2F0IGRlbHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhl
dGljQ2xpY2tUeXBlKQogI2VuZGlmCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRp
bWVzdGFtcCkKICAgICAsIG1fYnV0dG9uKGJ1dHRvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91
Y2hFdmVudC5jcHAKaW5kZXggYjlhYWNiYWY2ZTdkMDdhZDljOTdmMzNmNTMwMDM0NTJiZDc5MmNh
Zi4uN2FlYTBlNzNkOWM1NTZhNjI3NzcxMzdkNDI3MjNiMDcxZWRkZWExZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLVdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUg
dHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiB0b3VjaFBvaW50cywgTW9kaWZp
ZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYlRvdWNoRXZlbnQ6OldlYlRvdWNo
RXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4m
JiB0b3VjaFBvaW50cywgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQog
ICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3RvdWNo
UG9pbnRzKFdURk1vdmUodG91Y2hQb2ludHMpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVl
bEV2ZW50LmNwcAppbmRleCAxM2ZlNDhkZTk5ZDk4ZGM5ZjZlYWFiZjZmODQ1MmNmYWIxNDRkMjRk
Li40ZTEzZTg5NjUyMWMzNGM4ZTFiYzNjNzNjYzhmMjNhNTI0NTlmN2VmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7ICAgIAogCi1XZWJXaGVlbEV2ZW50OjpX
ZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJ
bnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBt
b2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50
KFR5cGUgdHlwZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hl
ZWxUaWNrcywgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0
YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24o
Z2xvYmFsUG9zaXRpb24pCkBAIC01MCw3ICs1MCw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVs
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50
CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQo
VHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9i
YWxQb3NpdGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVl
bFRpY2tzLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZy
b21EZXZpY2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0
eXBlLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3Np
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tz
LCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZp
Y2UsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3Jv
bGxpbmdEZWx0YXMsIHVpbnQzMl90IHNjcm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2Fs
bFRpbWUgdGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3Rh
bXApCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihn
bG9iYWxQb3NpdGlvbikKQEAgLTY3LDcgKzY3LDcgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQK
ICAgICBBU1NFUlQoaXNXaGVlbEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAjZWxpZiBQTEFURk9STShH
VEspCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZsb2F0
U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UgcGhhc2UsIFBo
YXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChU
eXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVs
VGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBoYXNlLCBHcmFudWxhcml0eSBncmFu
dWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgIDog
V2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Bvc2l0aW9uKHBv
c2l0aW9uKQogICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFjdG9yeS5jcHAKaW5kZXggNjhkNmQzODg1OWEw
MjA3M2U5OGE3YzhhN2VlNjI2ZTMwOWFkZDVkYi4uYmNlYTMyOWQyMjgzY2E5ODQ1NjY2MzdhMWQ4
ZDc1ZDUxNjA4NGE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2
ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1dlYkV2ZW50RmFj
dG9yeS5jcHAKQEAgLTE0MCw3ICsxNDAsNyBAQCBXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGludCBjdQogICAg
ICAgICAgICAgICAgICAgICAgICAgIDAgLyogZGVsdGFaICovLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRDbGlja0NvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlm
aWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBnZGtfZXZlbnRf
Z2V0X3RpbWUoZXZlbnQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJXaGVlbEV2
ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChjb25zdCBHZGtFdmVudCog
ZXZlbnQpCkBAIC0yMTAsNyArMjEwLDcgQEAgV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBXZWJXaGUKICAgICAg
ICAgbW9tZW50dW1QaGFzZSwKICAgICAgICAgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQaXhlbFdo
ZWVsRXZlbnQsCiAgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2Rr
X2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7CiB9CiAKIFdlYktleWJvYXJkRXZlbnQgV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVu
dCwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiBjb21wb3NpdGlvblJlc3VsdHMs
IFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMpCkBAIC0yMjcsNyArMjI3LDcgQEAgV2ViS2V5Ym9h
cmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgR2Rr
RXZlbnQqIGV2ZW50LAogICAgICAgICBXVEZNb3ZlKGNvbW1hbmRzKSwKICAgICAgICAgaXNHZGtL
ZXlDb2RlRnJvbUtleVBhZChldmVudC0+a2V5LmtleXZhbCksCiAgICAgICAgIG1vZGlmaWVyc0Zv
ckV2ZW50KGV2ZW50KSwKLSAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSk7CisgICAg
ICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKSk7
CiB9CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjQ5LDcgKzI0OSw3IEBAIFdlYlRv
dWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGNvbnN0IEdka0V2
ZW50KiBldmVudCwgVmVjdG9yCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0K
IAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBt
b2RpZmllcnNGb3JFdmVudChldmVudCksIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAg
IHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBtb2RpZmll
cnNGb3JFdmVudChldmVudCksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhnZGtfZXZlbnRfZ2V0
X3RpbWUoZXZlbnQpKSk7CiAjZWxzZQogICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KCk7CiAjZW5k
aWYgLy8gR1RLX0FQSV9WRVJTSU9OXzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L05hdGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0KaW5kZXggNjhlMGU2Y2FmZGY1ZGM1NWFmODdkYTgz
ODNhMTdmNTNmYjE5NmNkNS4uN2ZjNzc3ZTFmMjBmODI4OWExOTQ1ZjM4YmVmY2Q2OTZlMDJmYWZh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZl
bnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL05hdGl2ZVdlYlRvdWNoRXZl
bnRJT1MubW0KQEAgLTEyMiw3ICsxMjIsNyBAQCBOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50KGNvbnN0IF9VSVdlYlRvdWNoRXZlbnQqIGV2ZW50KQogICAgIDogV2ViVG91
Y2hFdmVudCgKICAgICAgICAgd2ViRXZlbnRUeXBlRm9yVUlXZWJUb3VjaEV2ZW50VHlwZShldmVu
dC0+dHlwZSksCiAgICAgICAgIHN0YXRpY19jYXN0PE1vZGlmaWVycz4oMCksCi0gICAgICAgIGV2
ZW50LT50aW1lc3RhbXAsCisgICAgICAgIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+
dGltZXN0YW1wKSwKICAgICAgICAgZXh0cmFjdFdlYlRvdWNoUG9pbnQoZXZlbnQpLAogICAgICAg
ICBwb3NpdGlvbkZvckNHUG9pbnQoZXZlbnQtPmxvY2F0aW9uSW5Eb2N1bWVudENvb3JkaW5hdGVz
KSwKICNpZiBkZWZpbmVkIFVJX1dFQl9UT1VDSF9FVkVOVF9IQVNfSVNfUE9URU5USUFMX1RBUCAm
JiBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDRlMDI1OWJkYWU3MTc1
NDc1NmJmYTJhM2U2OWFjOTg1ZjA3M2E4NWUuLjkwZmJjMjhhNjc4Mzg1NTYwYzhjOTNlODZjNjEz
NzAzMTAzNGJjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NF
dmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL1dlYklPU0V2ZW50
RmFjdG9yeS5tbQpAQCAtODUsNyArODUsNyBAQCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgV2Vi
SU9TRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKgogICAg
ICAgICB1bm1vZGlmaWVkVGV4dCA9IHRleHQ7CiAgICAgfQogCi0gICAgcmV0dXJuIFdlYktpdDo6
V2ViS2V5Ym9hcmRFdmVudCh0eXBlLCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBr
ZXlJZGVudGlmaWVyLCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2Rl
LCBtYWNDaGFyQ29kZSwgYXV0b1JlcGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmll
cnMsIHRpbWVzdGFtcCk7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCh0eXBl
LCB0ZXh0LCB1bm1vZGlmaWVkVGV4dCwga2V5LCBjb2RlLCBrZXlJZGVudGlmaWVyLCB3aW5kb3dz
VmlydHVhbEtleUNvZGUsIG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBtYWNDaGFyQ29kZSwgYXV0b1Jl
cGVhdCwgaXNLZXlwYWQsIGlzU3lzdGVtS2V5LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyh0aW1lc3RhbXApKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
CmluZGV4IDNiNTVjZTgwOTJmZGEzY2EyYTk4NjIwM2UwMTgyYjY1NjUxOWEyMzguLjBjNDViZmZi
MWY2NGE0MmRmNWUzOGM2ZjI5ZGRlZWZkYzQ5ZDhjYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQpAQCAtMzEsNyArMzEs
NyBAQAogI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldlYkdlc3R1cmVFdmVudC5oIgog
I2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC02Myw3ICs2Myw3IEBAIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDo6TmF0
aXZlV2ViR2VzdHVyZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU1ZpZXcgKnZpZXcpCiAgICAgOiBX
ZWJHZXN0dXJlRXZlbnQoCiAgICAgICAgIHdlYkV2ZW50VHlwZUZvck5TRXZlbnQoZXZlbnQpLAog
ICAgICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBldmVudC50aW1lc3Rh
bXAsCisgICAgICAgIFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KSwKICAg
ICAgICAgV2ViQ29yZTo6SW50UG9pbnQocG9pbnRGb3JFdmVudChldmVudCwgdmlldykpLAogICAg
ICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlTWFnbmlmeSA/IGV2ZW50Lm1hZ25pZmljYXRp
b24gOiAwLAogICAgICAgICBldmVudC50eXBlID09IE5TRXZlbnRUeXBlUm90YXRlID8gZXZlbnQu
cm90YXRpb24gOiAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3Rvcnku
bW0KaW5kZXggMGRiM2JlOGM2NDc0Yzc2MzI5ODVmZTNlYTIyMTViNDhjNmFmYzA1Yi4uOWQ4NTU5
NGEzNjZjNjVkZjJmY2QxN2YzZDA4NWYxM2UxZDYxM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL1dlYkV2ZW50RmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCkBAIC0zNjAsNyArMzYwLDcgQEAgV2ViTW91c2VF
dmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoTlNFdmVudCAqZXZlbnQs
IE5TRXZlbnQgKmxhc3QKICAgICBmbG9hdCBkZWx0YVogPSBbZXZlbnQgZGVsdGFaXTsKICAgICBp
bnQgY2xpY2tDb3VudCA9IGNsaWNrQ291bnRGb3JFdmVudChldmVudCk7CiAgICAgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVudChldmVudCk7Ci0gICAgZG91
YmxlIHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRv
IHRpbWVzdGFtcCA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKICAgICBpbnQgZXZl
bnROdW1iZXIgPSBbZXZlbnQgZXZlbnROdW1iZXJdOwogICAgIGludCBtZW51VHlwZUZvckV2ZW50
ID0gdHlwZUZvckV2ZW50KGV2ZW50KTsKIApAQCAtNDE4LDcgKzQxOCw3IEBAIFdlYldoZWVsRXZl
bnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBO
U1ZpZXcgKndpbmRvCiAgICAgfQogCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMg
ICAgICAgICAgID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3Rh
bXAgICAgICAgICAgICAgICAgICAgICAgICA9IGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50
KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAgICAgICAgICAgICAgICAgICAgPSBldmVudFRp
bWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgCiAgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQo
V2ViRXZlbnQ6OldoZWVsLCBJbnRQb2ludChwb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0
aW9uKSwgRmxvYXRTaXplKGRlbHRhWCwgZGVsdGFZKSwgRmxvYXRTaXplKHdoZWVsVGlja3NYLCB3
aGVlbFRpY2tzWSksIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIHBo
YXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCBzY3JvbGxDb3Vu
dCwgdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhLCBtb2RpZmllcnMsIHRpbWVzdGFtcCk7CiB9
CkBAIC00MzgsNyArNDM4LDcgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaGEKICAgICBib29sIGlz
S2V5cGFkICAgICAgICAgICAgICAgICAgID0gaXNLZXlwYWRFdmVudChldmVudCk7CiAgICAgYm9v
bCBpc1N5c3RlbUtleSAgICAgICAgICAgICAgICA9IGZhbHNlOyAvLyBTeXN0ZW1LZXkgaXMgYWx3
YXlzIGZhbHNlIG9uIHRoZSBNYWMuCiAgICAgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMg
ICA9IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAg
ICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOworICAgIGF1dG8gdGlt
ZXN0YW1wICAgICAgICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7
CiAKICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2Fu
dCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgaWYg
KHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaAppbmRleCBiYzY4YmE1MjdhNWVjODJkMzA4YjgzMGY2
YmViZThjMGYyMDBjMzk0Li5iNmY5YzY4ZGIwM2E1YTVmYmI2OTViMmJjMWNjMzE0ZThjNTVjMjhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR2VzdHVyZUV2ZW50IDogcHVi
bGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJHZXN0dXJlRXZlbnQoKSB7IH0KLSAgICBX
ZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWVzdGFtcCwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGZsb2F0IGdlc3R1
cmVTY2FsZSwgZmxvYXQgZ2VzdHVyZVJvdGF0aW9uKQorICAgIFdlYkdlc3R1cmVFdmVudChXZWJF
dmVudDo6VHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAs
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0IGdl
c3R1cmVSb3RhdGlvbikKICAgICAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVz
dGFtcCkKICAgICAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQogICAgICAgICAsIG1fZ2VzdHVy
ZVNjYWxlKGdlc3R1cmVTY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dw
ZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50
RmFjdG9yeS5jcHAKaW5kZXggZTBhYzZlZjg1YTk0YTcyYjIyZWVkZTA3MDY4OWM3MmY1Y2VlZjk3
Ni4uOTQ3NDEzMDY2MzNhODNhOTRlNDBkYzgwZTQ1Yjk5ZDk5ZTViMTdhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTgxLDcgKzgxLDcgQEAg
V2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9rZXlib2EKICAgICAgICAgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBz
aW5nbGVDaGFyYWN0ZXJTdHJpbmcsIGlkZW50aWZpZXJTdHJpbmcsCiAgICAgICAgIHdwZV9pbnB1
dF93aW5kb3dzX2tleV9jb2RlX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0
X3NpbmdsZXRvbigpLCBldmVudCksCiAgICAgICAgIGV2ZW50LT5rZXlDb2RlLCAwLCBmYWxzZSwg
ZmFsc2UsIGZhbHNlLAotICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksIGV2ZW50LT50
aW1lKTsKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rv
cnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBl
dmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xMTksNyArMTE5LDcgQEAgV2ViTW91
c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW4KICAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+
eCwgZXZlbnQtPnkpOwogICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7
CiAgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRp
b24sCi0gICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpN
b2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7CisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQs
IHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCkBAIC0xNTQsNyArMTU0LDcgQEAgV2ViV2hlZWxFdmVu
dCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9h
eGlzX2V2ZW50KgogICAgIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKGV2ZW50LT54LCBldmVu
dC0+eSk7CiAgICAgcG9zaXRpb24uc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICBy
ZXR1cm4gV2ViV2hlZWxFdmVudChXZWJFdmVudDo6V2hlZWwsIHBvc2l0aW9uLCBwb3NpdGlvbiwK
LSAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxX
aGVlbEV2ZW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRp
bWUpOworICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQ
aXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogc3RhdGljIFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50
KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcq
IHBvaW50KQpAQCAtMjA5LDcgKzIwOSw3IEBAIFdlYlRvdWNoRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqCiAgICAg
ICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykpOwogICAgIH0K
IAotICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBX
ZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7CisgICAgcmV0dXJuIFdlYlRvdWNo
RXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCks
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhldmVudC0+dGltZSkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggNWRmM2RmYzNlNmUy
MGI0ZjM5YjFkZjU5ODQ0NDVhZjYxOGQ0YzBiZi4uMDdlZGFiZmI2ZmM3ZmZjYWYyZjA3NjU1OGZm
YTRjNTA5YTgyNTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTQ3OCwxNyAr
NDc4LDE3IEBAIHZvaWQgV0tCdW5kbGVQYWdlRm9yY2VSZXBhaW50KFdLQnVuZGxlUGFnZVJlZiBw
YWdlKQogCiB2b2lkIFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VEb3duKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tF
dmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdl
KS0+c2ltdWxhdGVNb3VzZURvd24oYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tD
b3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VE
b3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywg
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VT
aW11bGF0ZU1vdXNlVXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGludCBidXR0b24sIFdLUG9pbnQg
cG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgZG91
YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0
b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwgbW9kaWZpZXJzLCB0aW1lKTsKKyAgICB0
b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VVcChidXR0b24sIHRvSW50UG9pbnQocG9zaXRpb24p
LCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7
CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbihXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tQb2ludCBwb3NpdGlvbiwgZG91YmxlIHRpbWUpCiB7Ci0gICAgdG9JbXBsKHBh
Z2UpLT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCB0aW1lKTsKKyAg
ICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91c2VNb3Rpb24odG9JbnRQb2ludChwb3NpdGlvbiks
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHVpbnQ2NF90IFdLQnVuZGxl
UGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKaW5kZXggMjYxOGZlNmMyZWY4NTY2ZWUy
NzNjNmE3MzhmMDMxMDZjNjIyMjk5Yi4uZTdlZDdkODQ0YzZhZTY1NmNjYzdjOTM3MDE2YzczZGVl
YzkzMmMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCkBA
IC0zNjEsNyArMzYxLDcgQEAgZ3VpbnQzMiB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0YW1w
KFdlYktpdERPTUV2ZW50KiBzZWxmKQogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VWRU5UKHNl
bGYpLCAwKTsKICAgICBXZWJDb3JlOjpFdmVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBndWludDMyIHJlc3VsdCA9IGl0ZW0tPnRpbWVTdGFtcCgpOworICAgIGd1aW50MzIgcmVz
dWx0ID0gaXRlbS0+dGltZVN0YW1wKCkuYXBwcm94aW1hdGVXYWxsVGltZSgpLnNlY29uZHNTaW5j
ZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNj
YXBlUGx1Z2luWDExLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAKaW5kZXggZGIyNDVjY2Q0ZmI2NzIyOWFjMTky
YTNlMWFkMGQ3MDkyZmE4NTNjMi4uOWE1MTYzNGJkZTA2ZDg0Y2M5YTRiNWNkODMzYzM0ODRhNzhh
ODE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCkBAIC0zMjEsOSAr
MzIxLDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2ZW50JiBldmVu
dCkKICAgICBldmVudC54YW55LndpbmRvdyA9IDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdWludDY0
X3QgeFRpbWVTdGFtcChkb3VibGUgdGltZXN0YW1wSW5TZWNvbmRzKQorc3RhdGljIGlubGluZSB1
aW50NjRfdCB4VGltZVN0YW1wKFdhbGxUaW1lIHRpbWVzdGFtcCkKIHsKLSAgICByZXR1cm4gdGlt
ZXN0YW1wSW5TZWNvbmRzICogMTAwMDsKKyAgICByZXR1cm4gdGltZXN0YW1wLnNlY29uZHNTaW5j
ZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgeEtl
eU1vZGlmaWVycyhjb25zdCBXZWJFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCBhZmNmZmE1MTc0NWIyNWI5
ZTc0MDQyODMwN2ZhY2VkNTQ4ZGVjYWExLi44NmZlMzZiMWZmZDhhZDBjZWZlMjVhZDRkN2U4Y2E0
NTE4YzZhODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0KQEAgLTE1NzYsNyArMTU3Niw3IEBAIGJvb2wgUERGUGx1Z2luOjpzaG93
Q29udGV4dE1lbnVBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKICAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IHdlYkZyYW1lKCktPmNvcmVGcmFtZSgpLT52aWV3KCk7CiAgICAgSW50
UG9pbnQgY29udGVudHNQb2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHBvaW50
KTsKLSAgICBXZWJNb3VzZUV2ZW50IGV2ZW50KFdlYkV2ZW50OjpNb3VzZURvd24sIFdlYk1vdXNl
RXZlbnQ6OlJpZ2h0QnV0dG9uLCBjb250ZW50c1BvaW50LCBjb250ZW50c1BvaW50LCAwLCAwLCAw
LCAxLCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CisgICAgV2ViTW91c2VFdmVu
dCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1dHRvbiwg
Y29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nhc3Q8V2Vi
RXZlbnQ6Ok1vZGlmaWVycz4oMCksIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrKTsKICAgICByZXR1cm4gaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
YTY0OGY3ZWFiZmViZWVkMGE2ZTc1ZTg2YzYyZTBiNGEyYzFjY2Q1My4uZWNkNTY3ZmNjM2M1ZGU1
MmE1MGE4MjhmNmU2ODQ1MzU4MTIzZjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTg5Nyw3ICs4OTcsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViRXZlbnQ+IFBsdWdpblZpZXc6OmNyZWF0ZVdlYkV2ZW50KE1vdXNlRXZlbnQmIGV2
ZW50KSBjb25zdAogICAgIGlmIChldmVudC5tZXRhS2V5KCkpCiAgICAgICAgIG1vZGlmaWVycyB8
PSBXZWJFdmVudDo6TWV0YUtleTsKIAotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1v
dXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBv
aW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0
aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KG1vZGlmaWVycyksIDAsIDApOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYk1v
dXNlRXZlbnQ+KHR5cGUsIGJ1dHRvbiwgbV9wbHVnaW4tPmNvbnZlcnRUb1Jvb3RWaWV3KEludFBv
aW50KGV2ZW50Lm9mZnNldFgoKSwgZXZlbnQub2Zmc2V0WSgpKSksIGV2ZW50LnNjcmVlbkxvY2F0
aW9uKCksIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KG1vZGlmaWVycyksIFdhbGxUaW1lIHsgfSwgMCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6
aGFuZGxlRXZlbnQoRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCAwZWFiZTY1OTkwZDkxN2UxZDkxZDkxZTJiOWU0ZmIzMGQ4
NDJiMTVhLi5mZjhiYjk4MDQwNTAxYzE5MjAwNDAzY2U0ZjQ5YjM1OTgyMjRiN2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTI4MSw3ICsx
MjgxLDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGlj
ayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICAgICAgcmV0dXJuOwogCiAgICAg
Y29uc3QgaW50IHNpbmdsZUNsaWNrID0gMTsKLSAgICBSZWZQdHI8TW91c2VFdmVudD4gbW91c2VF
dmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwg
dHJ1ZSwgY3VycmVudFRpbWUoKSwgbnVsbHB0ciwgc2luZ2xlQ2xpY2ssIHNjcmVlblBvaW50Lngo
KSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50LngoKSwgZG9jdW1lbnRQb2ludC55KCks
CisgICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygp
LCBudWxscHRyLCBzaW5nbGVDbGljaywgc2NyZWVuUG9pbnQueCgpLCBzY3JlZW5Qb2ludC55KCks
IGRvY3VtZW50UG9pbnQueCgpLCBkb2N1bWVudFBvaW50LnkoKSwKICNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQogICAgICAgICAwLCAwLAogI2VuZGlmCkBAIC0yMTQ1LDExICsyMTQ1LDExIEBAIFdl
YkNvbnRleHRNZW51KiBXZWJQYWdlOjpjb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhjb25zdCBJ
bnRQb2ludCYgcG9pbnQpCiAgICAgY29yZVBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCku
Y2xlYXJDb250ZXh0TWVudSgpOwogCiAgICAgLy8gU2ltdWxhdGUgYSBtb3VzZSBjbGljayB0byBn
ZW5lcmF0ZSB0aGUgY29ycmVjdCBtZW51LgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVBy
ZXNzRXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQ
cmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2Vi
Q29yZTo6Rm9yY2VBdENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2
ZW50IG1vdXNlUHJlc3NFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGlt
ZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9UYXApOwogICAgIGNv
cmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZVBy
ZXNzRXZlbnQpOwogICAgIGJvb2wgaGFuZGxlZCA9IGNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRn
ZSgpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQobW91c2VQcmVzc0V2ZW50LCBjb3JlUGFnZSgpLT5t
YWluRnJhbWUoKSk7CiAgICAgYXV0byogbWVudSA9IGhhbmRsZWQgPyBjb250ZXh0TWVudSgpIDog
bnVsbHB0cjsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQs
IHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVJlbGVh
c2VFdmVudChwb2ludCwgcG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJl
bGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51
c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChtb3VzZVJlbGVhc2VFdmVu
dCk7CiAKICAgICByZXR1cm4gbWVudTsKQEAgLTM2NzQsNyArMzY3NCw3IEBAIHZvaWQgV2ViUGFn
ZTo6ZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJ
bnRQb2ludCBnbG9iCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm47CiAgICAgLy8gRklY
TUU6IFRoZXNlIGFyZSBmYWtlIG1vZGlmaWVyIGtleXMgaGVyZSwgYnV0IHRoZXkgc2hvdWxkIGJl
IHJlYWwgb25lcyBpbnN0ZWFkLgotICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChhZGp1c3Rl
ZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3Vy
cmVudFRpbWUoKSwgMCwgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBl
dmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVudCwgKERy
YWdPcGVyYXRpb24pb3BlcmF0aW9uKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkRW5kRHJhZ2dpbmcoKSk7CkBAIC00NjcwLDE3ICs0NjcwLDE3IEBAIHZvaWQgV2ViUGFn
ZTo6aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQpCiB9
CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlRG93bihpbnQgYnV0dG9uLCBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURv
d24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50
LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3Vz
ZUV2ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VEb3duLCBzdGF0aWNfY2Fz
dDxXZWJNb3VzZUV2ZW50OjpCdXR0b24+KGJ1dHRvbiksIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwg
MCwgMCwgY2xpY2tDb3VudCwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVudDo6TW9kaWZpZXJzPiht
b2RpZmllcnMpLCB0aW1lLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYk1vdXNlRXZlbnQ6Ok5v
VGFwKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdl
YkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXAo
aW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2
ZW50KFdlYk1vdXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VVcCwgc3RhdGljX2Nhc3Q8V2Vi
TW91c2VFdmVudDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZp
ZXJzKSwgdGltZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkp
OwogfQogCi12b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24sIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90
aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBXYWxsVGltZSB0aW1lKQogewogICAgIG1v
dXNlRXZlbnQoV2ViTW91c2VFdmVudChXZWJNb3VzZUV2ZW50OjpNb3VzZU1vdmUsIFdlYk1vdXNl
RXZlbnQ6Ok5vQnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIDAsIFdlYk1vdXNl
RXZlbnQ6Ok1vZGlmaWVycygpLCB0aW1lLCAwLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQzMTU0YTYx
NGI5M2MxMzdkNzI3NDliNDExYmQ1OTcyOWJiN2JiYjcuLmJiMWY1MTI2ZDZiZjQyOTlhMzk2Nzll
MjUxZDM4MWFlNDRkZDc0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUg
PHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKSAmJiBQTEFURk9STShHVEspCkBAIC04MDYsOSArODA3LDkgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlLgotICAgIHZvaWQg
c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlj
a0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0
ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBX
S0V2ZW50TW9kaWZpZXJzLCBkb3VibGUgdGltZSk7Ci0gICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90
aW9uKFdlYkNvcmU6OkludFBvaW50LCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1v
dXNlRG93bihpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdL
RXZlbnRNb2RpZmllcnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VVcChpbnQg
YnV0dG9uLCBXZWJDb3JlOjpJbnRQb2ludCwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmll
cnMsIFdhbGxUaW1lKTsKKyAgICB2b2lkIHNpbXVsYXRlTW91c2VNb3Rpb24oV2ViQ29yZTo6SW50
UG9pbnQsIFdhbGxUaW1lKTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZvaWQg
Y29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCBiY2RiMGJmMDZhMGNhOWMzOWZmNWYzYzViNGE1MjU0NTYxMmJjMDUxLi5kYmFmYTE1
Zjg3YmE0MDc3YTdhNzVmYWRkZjM4NWRmNDI0Mzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTI5LDcgKzUyOSw3
IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSogbm9kZVJlc3BvbmRp
bmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAKICAgICBXS0JlZ2luT2JzZXJ2aW5nQ29udGVu
dENoYW5nZXModHJ1ZSk7CiAKLSAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3Zl
ZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3Rl
ZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywg
V2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91c2VNb3Zl
ZChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3Rl
ZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNr
LCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVudCgpLT51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CiAKICAgICBXS1N0b3BPYnNlcnZpbmdDb250ZW50Q2hhbmdlcygpOwpAQCAt
NTgxLDExICs1ODEsMTEgQEAgdm9pZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5v
ZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZToKICAgICBib29sIHRhcFdh
c0hhbmRsZWQgPSBmYWxzZTsKICAgICBtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uID0gcm91bmRl
ZEFkanVzdGVkUG9pbnQ7CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1F
dmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVu
dFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAg
ICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVBy
ZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVk
QWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAx
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpG
b3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRl
ZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVJlbGVhc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3Vy
cmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsK
KyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJv
dW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVh
c2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOwogICAgIGlmIChtX2lzQ2xv
c2VkKQogICAgICAgICByZXR1cm47CiAKQEAgLTYzNyw3ICs2MzcsNyBAQCB2b2lkIFdlYlBhZ2U6
OnJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25zdCBJbnRQb2ludCYgY2xp
ZW50UG9zaXRpbwogICAgIC8vIFRvIGF1Z21lbnQgdGhlIHBsYXRmb3JtIGRyYWcgc2Vzc2lvbiB3
aXRoIGFkZGl0aW9uYWwgaXRlbXMsIGVuZCB0aGUgY3VycmVudCBkcmFnIHNlc3Npb24gYW5kIGJl
Z2luIGEgbmV3IGRyYWcgc2Vzc2lvbiB3aXRoIHRoZSBuZXcgZHJhZyBpdGVtLgogICAgIC8vIFRo
aXMgcHJvY2VzcyBpcyBvcGFxdWUgdG8gdGhlIFVJIHByb2Nlc3MsIHdoaWNoIHN0aWxsIG1haW50
YWlucyB0aGUgb2xkIGRyYWcgaXRlbSBpbiBpdHMgZHJhZyBzZXNzaW9uLiBTaW1pbGFybHksIHRo
aXMgcGVyc2lzdGVudCBkcmFnIHNlc3Npb24KICAgICAvLyBpcyBvcGFxdWUgdG8gdGhlIHdlYiBw
cm9jZXNzLCB3aGljaCBvbmx5IHNlZXMgdGhhdCB0aGUgY3VycmVudCBkcmFnIGhhcyBlbmRlZCwg
YW5kIHRoYXQgYSBuZXcgb25lIGlzIGJlZ2lubmluZy4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVu
dFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudChjbGllbnRQ
b3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAs
IE5vVGFwKTsKICAgICBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0VuZGVkKCk7CiAgICAg
bV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChldmVu
dCwgRHJhZ09wZXJhdGlvbk5vbmUsIE1heUV4dGVuZERyYWdTZXNzaW9uOjpZZXMpOwogCkBAIC04
MDMsNyArODAzLDcgQEAgdm9pZCBXZWJQYWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIEludFBvaW50IGFkanVzdGVk
UG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOwogICAgIEZyYW1lJiBtYWluZnJhbWUg
PSBtX3BhZ2UtPm1haW5GcmFtZSgpOwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1v
dXNlTW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQs
IE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgMCwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICBtYWluZnJhbWUuZXZlbnRI
YW5kbGVyKCkubW91c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoYWRqdXN0ZWRQb2ludCwgYWRq
dXN0ZWRQb2ludCwgTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB7IH0sIDAsIFdlYkNvcmU6Ok5vVGFwKSk7CiAgICAgbWFp
bmZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRl
ci5tbQppbmRleCA0OGFlOWY3OWNiOTI0NDA1MjRhN2ZmZjQ5ZGIwNWM2YTllMTQzM2Y2Li5jOTE1
ZmU0ZDg2N2UyMjcxM2NmZDQ1MWUzMmQ4Mzc5Zjk4M2MxY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRlci5tbQpA
QCAtNDgsNyArNDgsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYk5TVmlld0V4dHJhcy5o
PgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dlYlBERkRvY3VtZW50RXh0cmFzLmg+CiAjaW1wb3J0
IDxXZWJLaXRMZWdhY3kvV2ViVmlld1ByaXZhdGUuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorI2ltcG9ydCA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbXBvcnQgPHd0Zi9Tb2Z0TGlu
a2luZy5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCkBAIC00NzksNyArNDc5LDcgQEAgc3Rh
dGljIGNvbnN0IGZsb2F0IFBBR0VfSEVJR0hUX0lOU0VUID0gNC4wZiAqIDIuMGY7CiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIENvbnN0cnVjdCBhbiBldmVudCB0byBzaW11bGF0ZSBhIGNsaWNr
LgotICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIDAsIDEsIDAsIDAsIDAs
IDAsCisgICAgUmVmUHRyPEV2ZW50PiBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgTW9ub3RvbmljVGltZTo6bm93KCksIDAsIDEs
IDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgMCwgMCwKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCmluZGV4IDk1Zjg0ZGQy
NWE4NDNhZWJiYTQyMmQzYmRjODBkMTRmYTMwOGYyMWEuLjMyMWE3ZjAxNjgxZjIxYTQ4NjY5Y2Q5
ODNlZDU0NTcxMDg0ZjcxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01FdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQu
bW0KQEAgLTk3LDcgKzk3LDcgQEAKIC0gKERPTVRpbWVTdGFtcCl0aW1lU3RhbXAKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPnRp
bWVTdGFtcCgpOworICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKS5hcHByb3hpbWF0ZVdhbGxU
aW1lKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIH0KIAogLSAoQk9PTClk
ZWZhdWx0UHJldmVudGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQppbmRleCAwMDE2YzBhNDJjMDMwYmIzZWJjNGY0ZDFhYTVkYzdlZTFkYzc2MTQ1Li5mMzRk
Njk1OWQ0Y2FlMTUzN2Q1MjYxYzQxOGYwNDdkMzgyMjRiOWE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk2NCw3ICs5NjQsNyBAQCBzdGF0aWMg
aW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgZmFrZSBtb2RpZmllciBr
ZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5zdGVhZC4KICAgICBQbGF0
Zm9ybU1vdXNlRXZlbnQgZXZlbnQoSW50UG9pbnQod2luZG93TG9jKSwgSW50UG9pbnQoZ2xvYmFs
UG9pbnQod2luZG93TG9jLCBbdmlldy0+cGxhdGZvcm1XaWRnZXQoKSB3aW5kb3ddKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNl
TW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbik7
CiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3Lm1tCmluZGV4IGVjNTdj
ODhhNmNhZDFiZDJiNGM5YzIyYThjZjAxM2EwMTA3ZTAyNWEuLjE4ZTM1YTViZDA0ZjlhMDQwNTcx
NzExZTc3Nzg0NWYyNmM2Yzk5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlBERlZpZXcubW0KQEAgLTEwMTgsMTQgKzEwMTgsMTQgQEAgc3RhdGljIEJPT0wgaXNG
cmFtZUluUmFuZ2UoV2ViRnJhbWUgKmZyYW1lLCBET01SYW5nZSAqcmFuZ2UpCiAgICAgY2FzZSBO
U0V2ZW50VHlwZUtleURvd246IHsKICAgICAgICAgUGxhdGZvcm1LZXlib2FyZEV2ZW50IHBlID0g
UGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtS2V5Ym9hcmRFdmVudChuc0V2ZW50
KTsKICAgICAgICAgcGUuZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFBsYXRmb3JtRXZlbnQ6OlJh
d0tleURvd24pOwotICAgICAgICBldmVudCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgMCk7
CisgICAgICAgIGV2ZW50ID0gS2V5Ym9hcmRFdmVudDo6Y3JlYXRlKHBlLCBudWxscHRyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0K
ICAgICBpZiAoYnV0dG9uICE9IG5vQnV0dG9uKSB7Ci0gICAgICAgIGV2ZW50ID0gTW91c2VFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBjdXJyZW50VGlt
ZSgpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwgMCwKKyAgICAgICAgZXZlbnQg
PSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUs
IE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCBbbnNFdmVudCBjbGlja0NvdW50XSwgMCwgMCwgMCwg
MCwKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgMCwgMCwKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRHJvcFNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEcm9wU291cmNlLmNwcAppbmRleCBmNzRmM2QzYzgz
OTdlMjQ0YzJhOTNjMzFjOWFlNWZjZTNlZGMwZWQxLi4yMTVlNzFmNWU3ZWQwZjlhMzVmOTY1ZjU0
MDMwMDJiMzcwYjkxYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJE
cm9wU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEcm9wU291cmNl
LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIFBsYXRmb3JtTW91c2VFdmVudCBnZW5lcmF0ZU1vdXNl
RXZlbnQoV2ViVmlldyogd2ViVmlldywgYm9vbCBpc0RyYWcpCiAgICAgaWYgKFNVQ0NFRURFRCh3
ZWJWaWV3LT52aWV3V2luZG93KCZ2aWV3V2luZG93KSkpCiAgICAgICAgIDo6U2NyZWVuVG9DbGll
bnQodmlld1dpbmRvdywgcmVpbnRlcnByZXRfY2FzdDxMUFBPSU5UPigmbG9jYWxwdCkpOwogICAg
IHJldHVybiBQbGF0Zm9ybU1vdXNlRXZlbnQoSW50UG9pbnQobG9jYWxwdC54LCBsb2NhbHB0Lnkp
LCBJbnRQb2ludChwdC54LCBwdC55KSwKLSAgICAgICAgaXNEcmFnID8gTGVmdEJ1dHRvbiA6IE5v
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgICAgICBpc0RyYWcgPyBMZWZ0
QnV0dG9uIDogTm9CdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKIH0KIAogU1RE
TUVUSE9ESU1QIFdlYkRyb3BTb3VyY2U6OlF1ZXJ5Q29udGludWVEcmFnKF9Jbl8gQk9PTCBmRXNj
YXBlUHJlc3NlZCwgX0luXyBEV09SRCBncmZLZXlTdGF0ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDY1NzI3M2NmYzAwN2UxMjgwODM2MmFkMjRjMDIwYjI2NWYwZmFkNzguLjcy
Nzc1ZjkzMTMxY2Q4M2FkODQ3ZTEzZDA5MjJmM2I4NDYxYmNkZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTIxICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3Rh
bXAgZm9yIGV2ZW50IHRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NDI0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQzMzMzMDQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BU
IHRlc3Qgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9u
LWV4cGVjdGVkLnR4dDoKKwogMjAxNy0wOS0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVmcmVzaCBXUFQgdGVzdHMgdXAgdG8gZjY1YWY0MTFkNjNlYzEz
ZWU4ZmUyMDhiNGVmZmQ3MzBhNGE4YjdmZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTA3YTJkN2Mw
NzUxZDg3NDk0ZjQzNzQ2ZDM1OGFmMTEzN2E2ZDM3Yi4uYzE2NmQwMjE4MDBkODRiNDM2MTg2NTFl
ZmViNTE1NjI1NmU5ODBiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzYsNyArMTc2LDYgQEAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxv
dy0wMTIuaHRtbCBbIEltYWdlT25seUYKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ctMDE1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZs
b3ctMDE3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy11aS0zL3RleHQtb3ZlcmZsb3ctMDIxLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVu
dC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNvbnN0cnVjdG9yLXN2Zy5z
dmcgWyBUaW1lb3V0IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvc2Vj
dXJpdHkvZGFuZ2xpbmctbWFya3VwLW1pdGlnYXRpb24udGVudGF0aXZlLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9oci10aW1lL3RpbWVPcmln
aW4uaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdoLXJlc29sdXRpb24tZXhwZWN0
ZWQudHh0CmluZGV4IGY0N2ZhM2Q2ZjU2N2U0ZTk4YjEyODAxMjgyNWQ2MmQxODg2Y2VlM2YuLjJm
MDhiNDg1ZDQ1YTZlYjU4N2U5N2ZlNGQ2YWU1ZWFiZmQ1NzNjOTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10
aW1lc3RhbXAtaGlnaC1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1w
LWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKLUZBSUwgQ29u
c3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBh
bmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRf
bGVzc190aGFuX2VxdWFsOiBFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGxlc3MgdGhhbiBwZXJm
b3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4gYWZ0ZXIgaXRzIGNyZWF0aW9uIGV4cGVjdGVk
IGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1MjMuODAwMDAwMDAwMDAwMSBidXQgZ290
IDE1MDU3NzAxNTI1NjYKLUZBSUwgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0aW1lc3RhbXAg
c2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBh
cyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRfbGVzc190aGFuX2VxdWFsOiBFdmVudCB0aW1lc3Rh
bXAgc2hvdWxkIGJlIGxlc3MgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4g
YWZ0ZXIgaXRzIGNyZWF0aW9uIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0
byA1MjQuNCBidXQgZ290IDE1MDU3NzAxNTI1NjYKLUZBSUwgQ29uc3RydWN0ZWQgV2hlZWxFdmVu
dCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0
aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSBhc3NlcnRfbGVzc190aGFuX2VxdWFsOiBF
dmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGxlc3MgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1l
c3RhbXAgdGFrZW4gYWZ0ZXIgaXRzIGNyZWF0aW9uIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhh
biBvciBlcXVhbCB0byA1MjQuNTAwMDAwMDAwMDAwMSBidXQgZ290IDE1MDU3NzAxNTI1NjYKLUZB
SUwgQ29uc3RydWN0ZWQgR2FtZXBhZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNv
bHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygp
IE5vdCBlbm91Z2ggYXJndW1lbnRzCi1GQUlMIENvbnN0cnVjdGVkIEZvY3VzRXZlbnQgdGltZXN0
YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNhbWUgdGltZSBvcmln
aW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbDogRXZlbnQgdGlt
ZXN0YW1wIHNob3VsZCBiZSBsZXNzIHRoYW4gcGVyZm9ybWFuY2Uubm93KCkgdGltZXN0YW1wIHRh
a2VuIGFmdGVyIGl0cyBjcmVhdGlvbiBleHBlY3RlZCBhIG51bWJlciBsZXNzIHRoYW4gb3IgZXF1
YWwgdG8gNTI0LjYgYnV0IGdvdCAxNTA1NzcwMTUyNTY2CitQQVNTIENvbnN0cnVjdGVkIE1vdXNl
RXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUgdGhlIHNh
bWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVjdGVkIEtl
eWJvYXJkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhhdmUg
dGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0cnVj
dGVkIFdoZWVsRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgCitQQVNTIENvbnN0
cnVjdGVkIEdhbWVwYWRFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBh
bmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BBU1Mg
Q29uc3RydWN0ZWQgRm9jdXNFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlv
biBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321556</attachid>
            <date>2017-09-22 09:39:13 -0700</date>
            <delta_ts>2017-09-22 10:13:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154246-20170922093912.patch</filename>
            <type>text/plain</type>
            <size>119572</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ4MzUwYzEwMzY5MmRi
YmM2ZjhlYTgyNWRiZDFiOWJlOWE3ZjBiYy4uY2I5NDY1MDg4Y2Q1MWMyNjFhNTdmYjQ2Y2ZmYmI5
NTZiNWJlNDBlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNy0wOS0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRp
b24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMz
MzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBIYXZl
IGV2ZW50LnRpbWVTdGFtcCByZXR1cm4gYSBET01IaWdoUmVzVGltZVN0YW1wIGluc3RlYWQgb2Yg
YSBET01SZXNUaW1lU3RhbXAuIEl0IG5vdworICAgICAgICBoYXMgYmV0dGVyIHByZWNpc2lvbiwg
aXMgbW9ub3RvbmljIGFuZCBpcyByZWxhdGl2ZSB0byBQZXJmb3JtYW5jZVRpbWluZy5uYXZpZ2F0
aW9uU3RhcnQuCisKKyAgICAgICAgVGhpcyBpcyBhcyBwZXI6CisgICAgICAgIC0gaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNpbnRlcmZhY2UtZXZlbnQKKworICAgICAgICBDaHJvbWUsIEZp
cmVmb3ggYW5kIEVkZ2UgYWxsIGFscmVhZHkgc2hpcCB0aGlzIHNvIHRoZSBjb21wYXRpYmlsaXR5
IHJpc2sgc2hvdWxkIGJlIGxvdy4KKworICAgICAgICBBbHNvIHVzZSBXYWxsVGltZSAvIE1vbm90
b25pY1RpbWUgaW5zdGVhZCBvZiBkb3VibGUgdHlwZSBmb3IgY2xhcml0eS4KKworICAgICAgICBU
ZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGlt
ZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAuCisgICAg
ICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hNb3VzZUZvcmNlV2lsbEJlZ2luKToKKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnQ6OkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojp0aW1l
U3RhbXBGb3JCaW5kaW5ncyBjb25zdCk6CisgICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudDo6dGltZVN0YW1wIGNvbnN0KToKKyAgICAgICAgKiBkb20vRXZlbnQu
aWRsOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OktleWJvYXJkRXZlbnQ6OktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vdXNlRXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KToKKyAgICAgICAgKiBkb20vTW91c2VFdmVu
dC5oOgorICAgICAgICAqIGRvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb3VzZVJlbGF0ZWRFdmVudDo6TW91c2VSZWxhdGVkRXZlbnQpOgorICAgICAgICAqIGRv
bS9Nb3VzZVJlbGF0ZWRFdmVudC5oOgorICAgICAgICAqIGRvbS9TaW11bGF0ZWRDbGljay5jcHA6
CisgICAgICAgICogZG9tL1RvdWNoRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hF
dmVudDo6VG91Y2hFdmVudCk6CisgICAgICAgICogZG9tL1VJRXZlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VUlFdmVudDo6VUlFdmVudCk6CisgICAgICAgICogZG9tL1VJRXZlbnQuaDoKKyAg
ICAgICAgKiBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VUlF
dmVudFdpdGhLZXlTdGF0ZTo6VUlFdmVudFdpdGhLZXlTdGF0ZSk6CisgICAgICAgICogZG9tL1do
ZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2hlZWxFdmVudDo6V2hlZWxFdmVudCk6
CisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFo
ZWFkOjpUeXBlQWhlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VHlwZUFoZWFkOjpoYW5kbGVFdmVu
dCk6CisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDoKKyAgICAgICAgKiBwYWdlL0F1dG9zY3Jv
bGxDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dG9zY3JvbGxDb250cm9sbGVy
OjpBdXRvc2Nyb2xsQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpBdXRvc2Nyb2xsQ29u
dHJvbGxlcjo6dXBkYXRlRHJhZ0FuZERyb3ApOgorICAgICAgICAoV2ViQ29yZTo6QXV0b3Njcm9s
bENvbnRyb2xsZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdlL0F1dG9z
Y3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdCk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVNb3VzZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRHJhZ0V2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JL
ZXkpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRU
aW1lckZpcmVkKToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBh
Z2UvUGVyZm9ybWFuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6Om5vdyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6cmVsYXRpdmVUaW1lRnJvbVRp
bWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9uIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1BlcmZv
cm1hbmNlLmg6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2lu
dCk6CisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9QbGF0Zm9ybUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50
Ojp0aW1lc3RhbXAgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6UGxh
dGZvcm1FdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OlBsYXRmb3JtS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIv
RXZlbnRIYW5kbGVyR0xpYi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1h
dG9yR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yR3RrOjpjb21wdXRl
VmVsb2NpdHkpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JHdGs6OmhhbmRsZVdo
ZWVsRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2ZW50RmFjdG9yeUlP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtTW91c2VFdmVudEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2
ZW50QnVpbGRlcjo6UGxhdGZvcm1XaGVlbEV2ZW50QnVpbGRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtVG91Y2hFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50VGltZVN0YW1wU2luY2UxOTcwKToK
KwogMjAxNy0wOS0yMiAgTmFlbCBPdWVkcmFvZ28gIDxuYWVsLm91ZWRyYW9nb0BjcmYuY2Fub24u
ZnI+CiAKICAgICAgICAgW0dUS10gSFRNTE1lZGlhRWxlbWVudCByZXNpemUgZXZlbnQgbm90IGZp
cmVkIHdoZW4gdmlkZW8gc2l6ZSBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1MTNjMjI2YmE5YzlkOTM5
OGRhNzdhYjJiMTY2NmFmZjE0MzU3ZWMuLjExYjZkOGQyZDdiMjBiZDA1ZjNhNDFiZjZkNWNhMGQ1
MWEyMzQ3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTctMDktMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRp
bWVzdGFtcCBmb3IgZXZlbnQgdGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU0MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4K
KworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXNlIFdhbGxU
aW1lIC8gTW9ub3RvbmljVGltZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5Lgor
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8V2FsbFRpbWU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPFdhbGxUaW1lPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRXZlbnQ6OldlYkV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViRXZlbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnQ6OnRpbWVzdGFtcCBjb25zdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvdWNo
RXZlbnQ6OldlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudCk6CisgICAg
ICAgICogU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJl
ZC9pb3MvTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmF0aXZl
V2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL2lv
cy9XZWJJT1NFdmVudEZhY3RvcnkubW06CisgICAgICAgIChXZWJJT1NFdmVudEZhY3Rvcnk6OmNy
ZWF0ZVdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6
Ok5hdGl2ZVdlYkdlc3R1cmVFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJFdmVudEZh
Y3RvcnkubW06CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91
c2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hl
ZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VzdHVyZUV2ZW50OjpXZWJHZXN0dXJlRXZlbnQpOgorICAgICAg
ICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1
bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bik6CisgICAgICAgIChXS0J1bmRsZVBhZ2VTaW11bGF0
ZU1vdXNlVXApOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZU1vdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW06CisgICAgICAgIChX
ZWJLaXQ6OlBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51QXRQb2ludCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5W
aWV3OjpjcmVhdGVXZWJFdmVudCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlu
a1dpdGhTaW11bGF0ZWRDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRleHRN
ZW51QXRQb2ludEluV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhZ0VuZGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpzaW11bGF0ZU1vdXNlVXApOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2spOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Q
b3NpdGlvbik6CisKIDIwMTctMDktMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlA
c29ueS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViIEluc3BlY3RvcjogQ2FuJ3QgbG9hZCB0aHJl
ZS5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDZjNDE5YjBkMDgyNWMyZjRlYTAz
ZWRkNWE1MmVlN2Y4MjZkMzBlZGYuLjViMmVkOTQyNWEwZjQ2YTk5YTg2NWIxYTRlMWE4NjA4Mjdh
MTU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Ny0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBo
aWdoIHJlc29sdXRpb24gdGltZXN0YW1wIGZvciBldmVudCB0aW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyNDYKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM0MzMzMzA0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBVc2UgV2FsbFRpbWUgLyBNb25vdG9uaWNUaW1lIGluc3RlYWQgb2YgZG91YmxlIHR5
cGUgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBERlZpZXdQbGFjZWhvbGRl
ci5tbToKKyAgICAgICAgKC1bV2ViUERGVmlld1BsYWNlaG9sZGVyIHNpbXVsYXRlQ2xpY2tPbkxp
bmtUb1VSTDpdKToKKwogMjAxNy0wOC0wOSAgWW9zaGlha2kgSml0c3VrYXdhICA8WW9zaGlha2ku
Sml0c3VrYXdhQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdIE1vdmUgc3BpL2NvY29hIGFuZCBz
cGkvY2cgZGlyZWN0b3JpZXMgaW50byBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA1N2JmNjQ1YTIzMWE5NTA4ZDU0ZGQ5YzAzM2I2MGUxYWJjOTJmNDllLi5jZTg4Mjk5YjhhYzBh
ODMxNzJjN2VkYmMzOGJiYzliNTUwOTEyOTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDktMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgaGlnaCByZXNvbHV0aW9uIHRpbWVzdGFtcCBmb3IgZXZlbnQg
dGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
MjQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDMzMzMwND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVXNlIFdhbGxUaW1lIC8gTW9ub3RvbmljVGlt
ZSBpbnN0ZWFkIG9mIGRvdWJsZSB0eXBlIGZvciBjbGFyaXR5LgorCisgICAgICAgICogRE9NL0RP
TUV2ZW50Lm1tOgorICAgICAgICAoLVtET01FdmVudCB0aW1lU3RhbXBdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfZHJhZ1NvdXJjZUVuZGVk
QXQ6b3BlcmF0aW9uOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUERGVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViUERGVmlldyBQREZWaWV3V2lsbENsaWNrT25MaW5rOndpdGhVUkw6XSk6CisKIDIw
MTctMDktMjEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRW5h
YmxlIGRhdGFUcmFuc2Zlci5pdGVtcyBvbiBtYWNPUyBhbmQgaU9TCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWNiMTJiZjFlODlk
NzZkNGY0MjM1Y2MzODk5NDQ5MWU3OTZhNDU1Ny4uMGYxNDQ1ZTYzNzBmMDZlNjM1YzM3YTk3Y2E2
NTBhOGVkNDg2ZTYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTk1Nyw2ICsxOTU3LDcgQEAKIAkJNDYwQkI2MTYxRDBBMUJG
MDAwMjIxODEyIC8qIEJhc2U2NFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQkI2MTQxRDBBMUJFQzAwMjIxODEyIC8qIEJhc2U2NFV0
aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2MENCRjM1MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwQ0JGMzMx
RDRCQ0NGRTAwOTJFODhFIC8qIEpTRE9NV2luZG93UHJvcGVydGllcy5jcHAgKi87IH07CiAJCTQ2
MENCRjM2MUQ0QkNEMEUwMDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MENCRjM0MUQ0QkNDRkUw
MDkyRTg4RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuaCAqLzsgfTsKKwkJNDYyMThBQ0IxRjcy
RDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTAxNkFEMUY3MkQ2MUUwMDI4MkIyQyAvKiBE
T01IaWdoUmVzVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJN
YWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYz
NDU5MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovOyB9OwogCQk0
NjNFQjYyMjFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNFQjYyMDFCODc4OUNCMDA5NkVE
NTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1
MSAvKiBUYWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICov
OyB9OwpAQCAtOTgzNiw2ICs5ODM3LDcgQEAKIAkJNDZERkY0OTcxREMyNjAxMzAwQjgwQjQ4IC8q
IFNoYWRvd1Jvb3RNb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTaGFkb3dSb290TW9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REZGNDk5MURDMjYxRjkwMEI4
MEI0OCAvKiBKU1NoYWRvd1Jvb3RNb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2hhZG93Um9vdE1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkRGRjQ5QTFEQzI2MUY5MDBCODBCNDggLyogSlNTaGFkb3dSb290TW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NoYWRvd1Jvb3RNb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTAxNkFEMUY3MkQ2MUUwMDI4MkIyQyAvKiBET01IaWdo
UmVzVGltZVN0YW1wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhpZ2hS
ZXNUaW1lU3RhbXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQkVBMDExQjdE
NEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25UcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlvblRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NkVGQUYwRDFFNUZCOUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZp
ZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb3dQb3dl
ck1vZGVOb3RpZmllcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRkFG
MEYxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2MjQxLDYgKzI2MjQzLDcgQEAKIAkJCQlCQzYw
RDZFODBEMjhEODM0MDBCOTkxOEYgLyogRE9NRXhjZXB0aW9uLmggKi8sCiAJCQkJQkM2MEQ2RUIw
RDI4RDk5OTAwQjk5MThGIC8qIERPTUV4Y2VwdGlvbi5pZGwgKi8sCiAJCQkJQkM5QTYxNDExNDY4
NTlEOTAwNjA1N0ZEIC8qIERPTUV4Y2VwdGlvbnMuaW4gKi8sCisJCQkJNDZFMDE2QUQxRjcyRDYx
RTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLywKIAkJCQlBODE4NUYzNjA5NzY1
NzY1MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4MTg1RjMzMDk3
NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCTkzRUVDMUU5MDlD
Mjg3NzcwMEM1MTVEMSAvKiBET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCkBAIC0yNzY5Miw2ICsy
NzY5NSw3IEBACiAJCQkJQkM2MEQ2RTkwRDI4RDgzNDAwQjk5MThGIC8qIERPTUV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODM5OTQ3MEMxRjUwQjYzRTAwRTlEODZCIC8qIERPTUZpbGVT
eXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTJFRDYwOUJEMTE0NUIwNzEwMEM4Njg0RSAvKiBE
T01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJF
IC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNCMDk3
NjU3NjYwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMzE1MEVBNzFEQTcyMTkzMDAxOTQwMTIgLyogRE9NSklUSGVscGVycy5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSGlnaFJlc1RpbWVT
dGFtcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xMWI2Nzg2MDA5M2VhMDk2NTU3ZWZlNWY4NTFhMDY3ZTUzNjlkM2RjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAuaApAQCAtMCww
ICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordXNpbmcgRE9NSGlnaFJlc1RpbWVTdGFtcCA9IGRvdWJsZTsKKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDExMzVjOTQ3OTAwZWQzMmQ0ZGI4NjIzZWRkNjE5MTQ0ZWVmMWEzODEu
LjNjYzQ1ODM1ZWU4ZmExMWVjOTY5YjNhNTY3NDdiNjdlYmIyNGFjMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTI1MjUsNyArMjUyNSw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3Vz
ZUZvcmNlV2lsbEJlZ2luKCkKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50IHsgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLmxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSwgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLmxhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24oKSwgTm9CdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok5vVHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdURjo6Y3VycmVudFRp
bWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCB9OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0
Zm9ybU1vdXNlRXZlbnQgeyBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VQb3Np
dGlvbigpLCBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkubGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlv
bigpLCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6Tm9UeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwIH07CiAgICAg
YXV0byBtb3VzZUZvcmNlV2lsbEJlZ2luRXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmtpdG1vdXNlZm9yY2V3aWxsYmVnaW5FdmVudCwgZG9jdW1lbnQoKS5kZWZhdWx0
VmlldygpLCBwbGF0Zm9ybU1vdXNlRXZlbnQsIDAsIG51bGxwdHIpOwogICAgIG1vdXNlRm9yY2VX
aWxsQmVnaW5FdmVudC0+c2V0VGFyZ2V0KHRoaXMpOwogICAgIGRpc3BhdGNoRXZlbnQobW91c2VG
b3JjZVdpbGxCZWdpbkV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IDg3MDU5NTE4NGUxMzQx
M2EyZTI1ZWUwNzNjN2U1MzhiNThjYTY0OWUuLmI5N2QwMDM4ZmRmOWE3NWI2NGRhMzE1MWRmZDgx
MzYyMzIyNTFhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMjMsMTcgKzIzLDIxIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKIAorI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50UGF0aC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAi
UGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRXZlbnQ6OkV2ZW50KElzVHJ1c3RlZCBpc1RydXN0ZWQp
CiAgICAgOiBtX2lzVHJ1c3RlZChpc1RydXN0ZWQgPT0gSXNUcnVzdGVkOjpZZXMpCi0gICAgLCBt
X2NyZWF0ZVRpbWUoY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChjdXJyZW50VGltZSgpKSkK
KyAgICAsIG1fY3JlYXRlVGltZShNb25vdG9uaWNUaW1lOjpub3coKSkKIHsKIH0KIApAQCAtNDMs
MTcgKzQ3LDE3IEBAIEV2ZW50OjpFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Ym9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2VsYWJsZUFyCiAgICAgLCBtX2NhbkJ1YmJsZShj
YW5CdWJibGVBcmcpCiAgICAgLCBtX2NhbmNlbGFibGUoY2FuY2VsYWJsZUFyZykKICAgICAsIG1f
aXNUcnVzdGVkKHRydWUpCi0gICAgLCBtX2NyZWF0ZVRpbWUoY29udmVydFNlY29uZHNUb0RPTVRp
bWVTdGFtcChjdXJyZW50VGltZSgpKSkKKyAgICAsIG1fY3JlYXRlVGltZShNb25vdG9uaWNUaW1l
Ojpub3coKSkKIHsKIH0KIAotRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBkb3VibGUgdGltZXN0
YW1wKQorRXZlbnQ6OkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNh
bkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkK
ICAgICA6IG1fdHlwZShldmVudFR5cGUpCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQodHJ1ZSkKICAg
ICAsIG1fY2FuQnViYmxlKGNhbkJ1YmJsZUFyZykKICAgICAsIG1fY2FuY2VsYWJsZShjYW5jZWxh
YmxlQXJnKQogICAgICwgbV9pc1RydXN0ZWQodHJ1ZSkKLSAgICAsIG1fY3JlYXRlVGltZShjb252
ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKHRpbWVzdGFtcCkpCisgICAgLCBtX2NyZWF0ZVRpbWUo
dGltZXN0YW1wKQogewogfQogCkBAIC02NCw3ICs2OCw3IEBAIEV2ZW50OjpFdmVudChjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgRXZlbnRJbml0JiBpbml0aWFsaXplciwgSXNU
cnVzCiAgICAgLCBtX2NhbmNlbGFibGUoaW5pdGlhbGl6ZXIuY2FuY2VsYWJsZSkKICAgICAsIG1f
Y29tcG9zZWQoaW5pdGlhbGl6ZXIuY29tcG9zZWQpCiAgICAgLCBtX2lzVHJ1c3RlZChpc1RydXN0
ZWQgPT0gSXNUcnVzdGVkOjpZZXMpCi0gICAgLCBtX2NyZWF0ZVRpbWUoY29udmVydFNlY29uZHNU
b0RPTVRpbWVTdGFtcChjdXJyZW50VGltZSgpKSkKKyAgICAsIG1fY3JlYXRlVGltZShNb25vdG9u
aWNUaW1lOjpub3coKSkKIHsKIH0KIApAQCAtMjE2LDQgKzIyMCwxOCBAQCB2b2lkIEV2ZW50Ojpz
ZXRVbmRlcmx5aW5nRXZlbnQoRXZlbnQqIHVuZGVybHlpbmdFdmVudCkKICAgICBtX3VuZGVybHlp
bmdFdmVudCA9IHVuZGVybHlpbmdFdmVudDsKIH0KIAorRE9NSGlnaFJlc1RpbWVTdGFtcCBFdmVu
dDo6dGltZVN0YW1wRm9yQmluZGluZ3MoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkg
Y29uc3QKK3sKKyAgICBQZXJmb3JtYW5jZSogcGVyZm9ybWFuY2UgPSBudWxscHRyOworICAgIGlm
IChpczxXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpCisgICAgICAgIHBlcmZvcm1hbmNlID0g
JmRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS5wZXJmb3JtYW5jZSgpOworICAg
IGVsc2UgaWYgKGF1dG8qIHdpbmRvdyA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5kb21X
aW5kb3coKSkKKyAgICAgICAgcGVyZm9ybWFuY2UgPSB3aW5kb3ctPnBlcmZvcm1hbmNlKCk7CisK
KyAgICBpZiAoIXBlcmZvcm1hbmNlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBw
ZXJmb3JtYW5jZS0+cmVsYXRpdmVUaW1lRnJvbVRpbWVPcmlnaW5JblJlZHVjZWRSZXNvbHV0aW9u
KG1fY3JlYXRlVGltZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgK
aW5kZXggOWVkYjNhZjMxZWNmZjU1YTA3NzI1MGM1ZGY5ZGJjOWQzNDUxYzhkMi4uYzVkNGQ0MWQ2
Mzc4MTFmMjI0MmU3NTkwY2I0NzhjNzMzNjk5ZjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTIzLDEx
ICsyMywxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgor
I2luY2x1ZGUgIkRPTUhpZ2hSZXNUaW1lU3RhbXAuaCIKICNpbmNsdWRlICJFdmVudEluaXQuaCIK
ICNpbmNsdWRlICJFdmVudEludGVyZmFjZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgog
I2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3Rz
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC05Niw3ICs5Nyw4IEBA
IHB1YmxpYzoKICAgICBib29sIGNhbmNlbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2NhbmNlbGFi
bGU7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbXBvc2VkKCkgY29uc3Q7CiAKLSAgICBE
T01UaW1lU3RhbXAgdGltZVN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV9jcmVhdGVUaW1lOyB9Cisg
ICAgRE9NSGlnaFJlc1RpbWVTdGFtcCB0aW1lU3RhbXBGb3JCaW5kaW5ncyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0JikgY29uc3Q7CisgICAgTW9ub3RvbmljVGltZSB0aW1lU3RhbXAoKSBjb25zdCB7
IHJldHVybiBtX2NyZWF0ZVRpbWU7IH0KIAogICAgIHZvaWQgc2V0RXZlbnRQYXRoKGNvbnN0IEV2
ZW50UGF0aCYgcGF0aCkgeyBtX2V2ZW50UGF0aCA9ICZwYXRoOyB9CiAgICAgdm9pZCBjbGVhckV2
ZW50UGF0aCgpIHsgbV9ldmVudFBhdGggPSBudWxscHRyOyB9CkBAIC0xNzAsNyArMTcyLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIEV2ZW50KElzVHJ1c3RlZCA9IElzVHJ1c3RlZDo6Tm8p
OwogICAgIFdFQkNPUkVfRVhQT1JUIEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9v
bCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSk7Ci0gICAgRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0
YW1wKTsKKyAgICBFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxl
LCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wKTsKICAgICBFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEV2ZW50SW5pdCYsIElzVHJ1c3RlZCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRUYXJnZXQoKTsKQEAgLTE5NSw3ICsxOTcsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9jdXJyZW50VGFyZ2V0OwogICAgIGNv
bnN0IEV2ZW50UGF0aCogbV9ldmVudFBhdGggeyBudWxscHRyIH07CiAgICAgUmVmUHRyPEV2ZW50
VGFyZ2V0PiBtX3RhcmdldDsKLSAgICBET01UaW1lU3RhbXAgbV9jcmVhdGVUaW1lOworICAgIE1v
bm90b25pY1RpbWUgbV9jcmVhdGVUaW1lOwogCiAgICAgUmVmUHRyPEV2ZW50PiBtX3VuZGVybHlp
bmdFdmVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmlkbAppbmRleCA1MzNmMzFjYzhkNWZjMDJjYWEzNDMz
NTEwOTU5N2I4YWI1NDk4NzE1Li44N2FlMWZiNDljMjVhMmI4NjRhM2UyMjc4YzNmZjVmZDMxOTE2
MDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudC5pZGwKQEAgLTE4LDYgKzE4LDggQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgZG91YmxlIERPTUhpZ2hSZXNUaW1lU3Rh
bXA7CisKIFsKICAgICBDb25zdHJ1Y3RvcihET01TdHJpbmcgdHlwZSwgb3B0aW9uYWwgRXZlbnRJ
bml0IGV2ZW50SW5pdERpY3QpLAogICAgIEN1c3RvbVRvSlNPYmplY3QsCkBAIC00OCw3ICs1MCw3
IEBACiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9U2hhZG93RE9NXSByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBjb21wb3NlZDsKIAogICAgIFtVbmZvcmdlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gaXNUcnVzdGVkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01UaW1lU3RhbXAg
dGltZVN0YW1wOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1l
bnRlZEFzPXRpbWVTdGFtcEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NSGlnaFJl
c1RpbWVTdGFtcCB0aW1lU3RhbXA7CiAKICAgICB2b2lkIGluaXRFdmVudChET01TdHJpbmcgdHlw
ZSwgb3B0aW9uYWwgYm9vbGVhbiBidWJibGVzID0gZmFsc2UsIG9wdGlvbmFsIGJvb2xlYW4gY2Fu
Y2VsYWJsZSA9IGZhbHNlKTsgLy8gSGlzdG9yaWNhbC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0tleWJvYXJk
RXZlbnQuY3BwCmluZGV4IDJiZDkzMWZjNDgwMDg3ZWZkMzUwYjRkMThmMGYxZTA4ZGRiMmYxYWYu
LjQ4MDRjMWQwNWU1NmI3ODhjNjRhZTM3MmEyMWY3ZWQ0NDZmMzc0NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgS2V5Ym9hcmRFdmVudDo6S2V5
Ym9hcmRFdmVudCgpID0gZGVmYXVsdDsKIAogS2V5Ym9hcmRFdmVudDo6S2V5Ym9hcmRFdmVudChj
b25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleSwgRE9NV2luZG93KiB2aWV3KQogICAgIDog
VUlFdmVudFdpdGhLZXlTdGF0ZShldmVudFR5cGVGb3JLZXlib2FyZEV2ZW50VHlwZShrZXkudHlw
ZSgpKQotICAgICAgICAsIHRydWUsIHRydWUsIGtleS50aW1lc3RhbXAoKSwgdmlldywgMCwga2V5
LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQorICAgICAgICAsIHRydWUs
IHRydWUsIGtleS50aW1lc3RhbXAoKS5hcHByb3hpbWF0ZU1vbm90b25pY1RpbWUoKSwgdmlldywg
MCwga2V5LmN0cmxLZXkoKSwga2V5LmFsdEtleSgpLCBrZXkuc2hpZnRLZXkoKQogICAgICAgICAs
IGtleS5tZXRhS2V5KCksIGZhbHNlLCBrZXkubW9kaWZpZXJzKCkuY29udGFpbnMoUGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5KSkKICAgICAsIG1fa2V5RXZlbnQoc3RkOjptYWtl
X3VuaXF1ZTxQbGF0Zm9ybUtleWJvYXJkRXZlbnQ+KGtleSkpCiAjaWYgRU5BQkxFKEtFWUJPQVJE
X0tFWV9BVFRSSUJVVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5jcHAKaW5kZXggZWI3NmQ2YWY5
MWY5NTZkMjNkNDY3NTFkM2QzZjY2ZjdkNjVkZmQ4YS4uM2M3ODVhN2E0NDY2YTUwMjM4MmNlZTcx
MmRiOGVjMmRmY2Q2Y2ExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmNwcApAQCAtMzQsNyAr
MzQsNiBAQAogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXRDdXN0b20uaCIKICNpbmNsdWRlICJQbGF0
Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIK
LSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC01MSw3ICs1MCw3IEBAIFJlZjxNb3VzZUV2ZW50PiBNb3VzZUV2ZW50OjpjcmVhdGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogdmllCiAgICAgYm9vbCBpc0NhbmNl
bGFibGUgPSBldmVudFR5cGUgIT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50ICYmICFpc01v
dXNlRW50ZXJPckxlYXZlOwogICAgIGJvb2wgY2FuQnViYmxlID0gIWlzTW91c2VFbnRlck9yTGVh
dmU7CiAKLSAgICByZXR1cm4gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgY2FuQnViYmxl
LCBpc0NhbmNlbGFibGUsIGV2ZW50LnRpbWVzdGFtcCgpLCB2aWV3LAorICAgIHJldHVybiBNb3Vz
ZUV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBjYW5CdWJibGUsIGlzQ2FuY2VsYWJsZSwgZXZlbnQu
dGltZXN0YW1wKCkuYXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCksIHZpZXcsCiAgICAgICAgIGRl
dGFpbCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCku
eSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZl
bnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTYwLDcgKzU5LDcgQEAgUmVmPE1vdXNlRXZlbnQ+
IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2lu
ZG93KiB2aWUKICAgICAgICAgcmVsYXRlZFRhcmdldCwgZXZlbnQuZm9yY2UoKSwgZXZlbnQuc3lu
dGhldGljQ2xpY2tUeXBlKCkpOwogfQogCi1SZWY8TW91c2VFdmVudD4gTW91c2VFdmVudDo6Y3Jl
YXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3LCBpbnQgZGV0YWlsLCBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorUmVmPE1vdXNlRXZl
bnQ+IE1vdXNlRXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2Fu
QnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1wLCBET01XaW5k
b3cqIHZpZXcsIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VY
LCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICBpbnQgbW92ZW1lbnRY
LCBpbnQgbW92ZW1lbnRZLAogI2VuZGlmCkBAIC04Myw3ICs4Miw3IEBAIE1vdXNlRXZlbnQ6Ok1v
dXNlRXZlbnQoKQogewogfQogCi1Nb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUg
dGltZXN0YW1wLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBz
Y3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uLAorTW91c2VFdmVu
dDo6TW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyog
dmlldywgaW50IGRldGFpbCwgY29uc3QgSW50UG9pbnQmIHNjcmVlbkxvY2F0aW9uLCBjb25zdCBJ
bnRQb2ludCYgd2luZG93TG9jYXRpb24sCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCiAjZW5kaWYKQEAgLTEwMyw3ICsxMDIs
NyBAQCBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZQogfQogCiBNb3VzZUV2ZW50OjpNb3VzZUV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5j
ZWxhYmxlLCBET01XaW5kb3cqIHZpZXcsIGludCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3Jl
ZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudExvY2F0aW9uLCBib29sIGN0cmxLZXks
IGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIHVuc2lnbmVkIHNob3J0
IGJ1dHRvbiwgdW5zaWduZWQgc2hvcnQgc3ludGhldGljQ2xpY2tUeXBlLCBFdmVudFRhcmdldCog
cmVsYXRlZFRhcmdldCkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnVi
YmxlLCBjYW5jZWxhYmxlLCBXVEY6OmN1cnJlbnRUaW1lKCksIHZpZXcsIGRldGFpbCwgc2NyZWVu
TG9jYXRpb24sIHsgfSwKKyAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KGV2ZW50VHlwZSwgY2FuQnVi
YmxlLCBjYW5jZWxhYmxlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgdmlldywgZGV0YWlsLCBzY3Jl
ZW5Mb2NhdGlvbiwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIHsgfSwK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggZTMwMDgyYmQzYWY2YTRhZTVhYjcz
OTZkMWQxOTZmZTRiMDkwMTQ4OS4uNWYxYzAzYTQ1MWIzY2I1Njg5YTdiM2M3NmY5ODI5ZjkzZGJj
MTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTW91c2VFdmVudC5oCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFBs
YXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgTW91c2VFdmVudCA6IHB1YmxpYyBNb3VzZVJlbGF0
ZWRFdmVudCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNb3VzZUV2
ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJsZSwgYm9v
bCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0YWlsLCBp
bnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAorICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBSZWY8TW91c2VFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0
aW1lc3RhbXAsIERPTVdpbmRvdyosIGludCBkZXRhaWwsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVu
WSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgaW50IG1vdmVtZW50WCwgaW50IG1vdmVtZW50WSwKICNlbmRpZgpAQCAtNzEsNyArNzEsNyBA
QCBwdWJsaWM6CiAgICAgaW50IHdoaWNoKCkgY29uc3QgZmluYWw7CiAKIHByb3RlY3RlZDoKLSAg
ICBNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJv
b2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9NV2luZG93KiwKKyAgICBNb3VzZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2Vs
YWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyosCiAgICAgICAgIGludCBk
ZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQmIHdp
bmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIGNvbnN0IElu
dFBvaW50JiBtb3ZlbWVudERlbHRhLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01v
dXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5jcHAKaW5kZXggZWJhOWE3YTkyYWViMWI0MjAzNDI0YmE2OTg5NjI5Njg1OTNkM2Y0OC4uNjkx
NWU5YzMwNzY5N2QzOTBlM2MzYjhhYjc4OTMxMDhhYzJhMmY0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotTW91c2VSZWxhdGVkRXZlbnQ6Ok1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZSwgYm9vbCBjYW5jZWxhYmxlLCBk
b3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqIERPTVdpbmRvdywKK01vdXNlUmVsYXRlZEV2ZW50
OjpNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgYm9vbCBj
YW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdp
bmRvdyogRE9NV2luZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBkZXRhaWwsIGNvbnN0IEludFBvaW50JiBzY3JlZW5Mb2NhdGlvbiwgY29uc3QgSW50UG9pbnQm
IHdpbmRvd0xvY2F0aW9uLAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIG1vdmVtZW50RGVsdGEsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCmluZGV4IDgwYTczMGEyMDhhZjk0MTUy
MDFhNTI4ZDM0ODcwYjk2NjNhOTFkMGUuLmUzNWQyOTNjNDExNGYwNTkzZjNjOWVkZGVhZmIzMjAy
ZDAwMTBmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5oCkBAIC03Myw3
ICs3Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIE1vdXNlUmVsYXRlZEV2ZW50KCkg
PSBkZWZhdWx0OwotICAgIE1vdXNlUmVsYXRlZEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwgZG91YmxlIHRpbWVzdGFtcCwgRE9N
V2luZG93KiwKKyAgICBNb3VzZVJlbGF0ZWRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIE1vbm90b25pY1RpbWUgdGltZXN0YW1w
LCBET01XaW5kb3cqLAogICAgICAgICBpbnQgZGV0YWlsLCBjb25zdCBJbnRQb2ludCYgc2NyZWVu
TG9jYXRpb24sIGNvbnN0IEludFBvaW50JiB3aW5kb3dMb2NhdGlvbiwKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQogICAgICAgICBjb25zdCBJbnRQb2ludCYgbW92ZW1lbnREZWx0YSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2ltdWxhdGVkQ2xpY2suY3BwCmluZGV4IDZmYjNiNGQ3ZjcyMzYyZmE3ZTliNzIw
ZTU0MmJjNDZmYjc1MmNiNjAuLjQ1NDkzNjhiZTkyNzg3MmI5OWJlMDE3ZDFiOGUwNjgzMThiNzgw
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaW11bGF0ZWRDbGljay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NpbXVsYXRlZENsaWNrLmNwcApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU2ltdWxhdGVkTW91c2VFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB2aWV3LCBSZWZQdHI8RXZlbnQ+JiYgdW5k
ZXJseWluZ0V2ZW50LCBFbGVtZW50JiB0YXJnZXQsIFNpbXVsYXRlZENsaWNrU291cmNlIHNvdXJj
ZSkKLSAgICAgICAgOiBNb3VzZUV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwgdHJ1ZSwgdW5kZXJseWlu
Z0V2ZW50ID8gdW5kZXJseWluZ0V2ZW50LT50aW1lU3RhbXAoKSA6IGN1cnJlbnRUaW1lKCksIHZp
ZXcsIDAsIHsgfSwgeyB9LAorICAgICAgICA6IE1vdXNlRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCB0
cnVlLCB1bmRlcmx5aW5nRXZlbnQgPyB1bmRlcmx5aW5nRXZlbnQtPnRpbWVTdGFtcCgpIDogTW9u
b3RvbmljVGltZTo6bm93KCksIHZpZXcsIDAsIHsgfSwgeyB9LAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCiAgICAgICAgICAgICB7IH0sCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ub3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmNw
cAppbmRleCBmNWNlYzdjYzQwY2I3MjkyOTQyZTQwYTNiOWJiMGY5OWE0MDI4MjlkLi44NzNmMjk2
NGJkNDNiYzliMzNlMGJhNzc1MDI5YWRiMzJhYzgyYTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2hFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZl
bnQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiVG91Y2hFdmVudC5oIgogCiAjaW5j
bHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDIsNyBAQCBUb3VjaEV2ZW50OjpUb3Vj
aEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAg
ICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IAogICAgICAgICBET01XaW5kb3cqIHZpZXcsIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50
IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJv
b2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKLSAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUs
IHRydWUsIHRydWUsIGN1cnJlbnRUaW1lKCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNj
cmVlblkpLAorICAgIDogTW91c2VSZWxhdGVkRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgTW9ub3Rv
bmljVGltZTo6bm93KCksIHZpZXcsIDAsIEludFBvaW50KHNjcmVlblgsIHNjcmVlblkpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQocGFnZVgsIHBhZ2VZKSwKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQoMCwgMCksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVUlFdmVudC5jcHAKaW5kZXggNGNiMjIzOWVjNWJlMGRhODBkOWRkMThmMGVlNGU0Mjcw
MjJlYTU5NC4uZTgxNWFmOTdhZmU0ZDA4ZTVlYzBiNzdmMzEzY2FiNmFmODliZjllOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9VSUV2ZW50LmNwcApAQCAtMzksNyArMzksNyBAQCBVSUV2ZW50OjpVSUV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxh
YgogewogfQogCi1VSUV2ZW50OjpVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5jZWxhYmxlQXJnLCBkb3VibGUgdGltZXN0YW1w
LCBET01XaW5kb3cqIHZpZXdBcmcsIGludCBkZXRhaWxBcmcpCitVSUV2ZW50OjpVSUV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBib29sIGNhbkJ1YmJsZUFyZywgYm9vbCBjYW5j
ZWxhYmxlQXJnLCBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgRE9NV2luZG93KiB2aWV3QXJnLCBp
bnQgZGV0YWlsQXJnKQogICAgIDogRXZlbnQoZXZlbnRUeXBlLCBjYW5CdWJibGVBcmcsIGNhbmNl
bGFibGVBcmcsIHRpbWVzdGFtcCkKICAgICAsIG1fdmlldyh2aWV3QXJnKQogICAgICwgbV9kZXRh
aWwoZGV0YWlsQXJnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKaW5kZXggOTczZDczZWYzZmEzMzUzYzBmNzk2
M2NhMGZhOGUxZTc4NTZhZDdjYi4uYmFhNzMxZmNmODFlZWJhZjIzMTUzZGE1MWJhMGFlYWZkMjQ1
NWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBVSUV2ZW50KCk7CiAgICAgVUlFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIERPTVdpbmRvdyosIGludCBkZXRh
aWwpOwotICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGNhbkJ1YmJs
ZSwgYm9vbCBjYW5jZWxhYmxlLCBkb3VibGUgdGltZXN0YW1wLCBET01XaW5kb3cqLCBpbnQgZGV0
YWlsKTsKKyAgICBVSUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJi
bGUsIGJvb2wgY2FuY2VsYWJsZSwgTW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyos
IGludCBkZXRhaWwpOwogICAgIFVJRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgVUlF
dmVudEluaXQmLCBJc1RydXN0ZWQpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2
ZW50V2l0aEtleVN0YXRlLmgKaW5kZXggYmZlYTM4N2MyMTJjMjUxYWQ1MWYwNzBiZTM2YmU0NDU4
MTYyNGRlMi4uMGE4ZTQwMzEyNDhkNmY3MjY1NDQyZTViZjgwMDEyYmEzMGNjY2RlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1VJRXZlbnRXaXRoS2V5U3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5oCkBAIC00OSw3ICs0OSw3IEBAIHBy
b3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgVUlFdmVudFdpdGhLZXlTdGF0ZShjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJs
ZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKKyAgICBVSUV2ZW50V2l0aEtleVN0YXRlKGNv
bnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJsZSwg
TW9ub3RvbmljVGltZSB0aW1lc3RhbXAsIERPTVdpbmRvdyogdmlldywKICAgICAgICAgaW50IGRl
dGFpbCwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRh
S2V5LCBib29sIGFsdEdyYXBoS2V5LCBib29sIGNhcHNMb2NrS2V5KQogICAgICAgICAgICAgOiBV
SUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgdGltZXN0YW1wLCB2aWV3LCBkZXRh
aWwpCiAgICAgICAgICAgICAsIG1fY3RybEtleShjdHJsS2V5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1doZWVsRXZl
bnQuY3BwCmluZGV4IDUzMGU2YjAxMTkyOTI4OTJhNmQ4YTQ5Y2UyNzhiNTczZjZmMzcwODQuLjgw
ZGIwNWExNTUyODhiOTVlMzgyMGEyODdmOTE5YmFhZGJkMjUwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEluaXQmIGluaXRpYWxpemVyLCBJc1RydXMKIH0K
IAogV2hlZWxFdmVudDo6V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50
LCBET01XaW5kb3cqIHZpZXcpCi0gICAgOiBNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS53aGVlbEV2
ZW50LCB0cnVlLCB0cnVlLCBldmVudC50aW1lc3RhbXAoKSwgdmlldywgMCwgZXZlbnQuZ2xvYmFs
UG9zaXRpb24oKSwgZXZlbnQucG9zaXRpb24oKQorICAgIDogTW91c2VFdmVudChldmVudE5hbWVz
KCkud2hlZWxFdmVudCwgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVN
b25vdG9uaWNUaW1lKCksIHZpZXcsIDAsIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCksIGV2ZW50LnBv
c2l0aW9uKCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICAgICAsIHsgfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKaW5kZXggZDI2ZjU3ZDg0OWE2YmFlMDU5Njg2YjVk
Mjk0OTQ4MDBiZTVhNzM4OC4uZjFlY2I3Y2Q2MGZlMGRhMjQ4NmY4NzVmYWZiMjIzYTM3NTNkNDI1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApAQCAtMzcsMTIgKzM3LDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogVHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJj
ZSogZGF0YVNvdXJjZSkKICAgICA6IG1fZGF0YVNvdXJjZShkYXRhU291cmNlKQotICAgICwgbV9s
YXN0VHlwZVRpbWUoMCkKICAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogewogfQogCi1zdGF0aWMg
Y29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworc3RhdGljIGNvbnN0
IFNlY29uZHMgdHlwZUFoZWFkVGltZW91dCB7IDFfcyB9OwogCiBzdGF0aWMgU3RyaW5nIHN0cmlw
TGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CkBAIC02Myw3ICs2Miw3
IEBAIGludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50LCBNYXRj
aE1vZGVGbGFncyBtYXRjaE1vZGUpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBvcHRp
b25Db3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsKLSAgICBET01UaW1lU3RhbXAg
ZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGltZTsKKyAgICBTZWNvbmRz
IGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRpbWU7CiAgICAgbV9sYXN0
VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CiAKICAgICBVQ2hhciBjID0gZXZlbnQtPmNo
YXJDb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaAppbmRleCA2MTBhYzc4Mjg4Yjc2MDI0Nzk3
N2JmMmUyMzgyY2NhMmUyMmJkYTg5Li4wNDZjMDAxZTU3MTc0NWY3YmUxZjllNDYyN2M2Zjc0ZGU2
YWMyNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYvTW9u
b3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAgIERP
TVRpbWVTdGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBNb25vdG9uaWNUaW1lIG1fbGFzdFR5cGVU
aW1lOwogICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBTdHJpbmdCdWlsZGVyIG1fYnVm
ZmVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9sbENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAK
aW5kZXggZTM5OTZmZGVkNTBjNWIzZTY0ZDI0MTIzMWNlNDI2ZjQ1ZDg3ZTVlNS4uZTUyODdjMGNi
MjM3MDEyNmFlZTlmNGY1Y2Y4MzNhODA5YWRiYzVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5jcHAKQEAgLTM3LDEyICszNywxMSBAQAogI2luY2x1ZGUg
IlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBEZWxheSB0aW1lIGluIHNlY29uZCBmb3Igc3RhcnQgYXV0b3Njcm9sbCBpZiBwb2lu
dGVyIGlzIGluIGJvcmRlciBlZGdlIG9mIHNjcm9sbGFibGUgZWxlbWVudC4KLXN0YXRpYyBjb25z
dCBkb3VibGUgYXV0b3Njcm9sbERlbGF5ID0gMC4yOworc3RhdGljIGNvbnN0IFNlY29uZHMgYXV0
b3Njcm9sbERlbGF5IHsgMjAwX21zIH07CiAKIC8vIFdoZW4gdGhlIGF1dG9zY3JvbGwgb3IgdGhl
IHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0aGUgc2Nyb2xsIGV2ZXJ5IDUwbXMgdG8g
bWFrZSBpdCBzbW9vdGguCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBhdXRvc2Nyb2xsSW50ZXJ2YWwg
eyA1MF9tcyB9OwpAQCAtNTksNyArNTgsNiBAQCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6QXV0b3Nj
cm9sbENvbnRyb2xsZXIoKQogICAgIDogbV9hdXRvc2Nyb2xsVGltZXIoKnRoaXMsICZBdXRvc2Ny
b2xsQ29udHJvbGxlcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpCiAgICAgLCBtX2F1dG9zY3JvbGxS
ZW5kZXJlcihudWxscHRyKQogICAgICwgbV9hdXRvc2Nyb2xsVHlwZShOb0F1dG9zY3JvbGwpCi0g
ICAgLCBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSgwKQogewogfQogCkBAIC0xNDAs
NyArMTM4LDcgQEAgdm9pZCBBdXRvc2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlQXV0b3Njcm9sbFJl
bmRlcmVyKCkKICAgICBtX2F1dG9zY3JvbGxSZW5kZXJlciA9IGlzPFJlbmRlckJveD4ocmVuZGVy
ZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBudWxscHRyOwogfQogCi12b2lk
IEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiBkcm9wVGFyZ2V0
Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIGRvdWJsZSBldmVudFRpbWUpCit2
b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChOb2RlKiBkcm9wVGFy
Z2V0Tm9kZSwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zaXRpb24sIFdhbGxUaW1lIGV2ZW50VGlt
ZSkKIHsKICAgICBpZiAoIWRyb3BUYXJnZXROb2RlKSB7CiAgICAgICAgIHN0b3BBdXRvc2Nyb2xs
VGltZXIoKTsKQEAgLTI0MSw3ICsyMzksNyBAQCB2b2lkIEF1dG9zY3JvbGxDb250cm9sbGVyOjph
dXRvc2Nyb2xsVGltZXJGaXJlZCgpCiAgICAgRnJhbWUmIGZyYW1lID0gbV9hdXRvc2Nyb2xsUmVu
ZGVyZXItPmZyYW1lKCk7CiAgICAgc3dpdGNoIChtX2F1dG9zY3JvbGxUeXBlKSB7CiAgICAgY2Fz
ZSBBdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3A6Ci0gICAgICAgIGlmIChXVEY6OmN1cnJlbnRUaW1l
KCkgLSBtX2RyYWdBbmREcm9wQXV0b3Njcm9sbFN0YXJ0VGltZSA+IGF1dG9zY3JvbGxEZWxheSkK
KyAgICAgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fZHJhZ0FuZERyb3BBdXRvc2Nyb2xsU3Rh
cnRUaW1lID4gYXV0b3Njcm9sbERlbGF5KQogICAgICAgICAgICAgbV9hdXRvc2Nyb2xsUmVuZGVy
ZXItPmF1dG9zY3JvbGwobV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQb3NpdGlvbik7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXV0b3Njcm9sbEZvclNlbGVjdGlvbjogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9BdXRvc2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IDNjZDlkYmYzMzc5
Y2I3NzdhOGFhYmM3NWJiODNiOTY3MTM2MWNmNjQuLjcxMzYwYmE0NGRkYzk0NTE0ZjY5NDJkNDZi
ZGI4ZjBmOGQwNmJlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQXV0b3Njcm9s
bENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0F1dG9zY3JvbGxDb250cm9s
bGVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9s
bEZvclNlbGVjdGlvbihSZW5kZXJPYmplY3QqKTsKICAgICB2b2lkIHN0b3BBdXRvc2Nyb2xsVGlt
ZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CiAgICAgdm9pZCB1cGRh
dGVBdXRvc2Nyb2xsUmVuZGVyZXIoKTsKLSAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUq
IHRhcmdldE5vZGUsIGNvbnN0IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBkb3VibGUgZXZlbnRU
aW1lKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdBbmREcm9wKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0
IEludFBvaW50JiBldmVudFBvc2l0aW9uLCBXYWxsVGltZSBldmVudFRpbWUpOwogI2lmIEVOQUJM
RShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQoKTsKICAgICB2b2lk
IGRpZFBhblNjcm9sbFN0b3AoKTsKQEAgLTc5LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZW5k
ZXJCb3gqIG1fYXV0b3Njcm9sbFJlbmRlcmVyOwogICAgIEF1dG9zY3JvbGxUeXBlIG1fYXV0b3Nj
cm9sbFR5cGU7CiAgICAgSW50UG9pbnQgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxSZWZlcmVuY2VQ
b3NpdGlvbjsKLSAgICBkb3VibGUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7Cisg
ICAgV2FsbFRpbWUgbV9kcmFnQW5kRHJvcEF1dG9zY3JvbGxTdGFydFRpbWU7CiAjaWYgRU5BQkxF
KFBBTl9TQ1JPTExJTkcpCiAgICAgSW50UG9pbnQgbV9wYW5TY3JvbGxTdGFydFBvczsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4
IDgwMTFjNDJkNjAzYTFkZDkyNjk2ZjM3ZTYxNDEwOWRhODkyNmZiZjcuLjMyMmI0OTIzZmZiMjQy
N2MyYjg1YTljNmQ1ZDFjNzFlMGM2MDU2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlICJVc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKQEAg
LTE0NDAsNyArMTQ0MSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGljCiAgICAgY2xlYXJDb250
ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNl
RXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6
Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1l
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2
ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpN
b3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93
KCksIEZvcmNlQXRDbGljaywgTm9UYXApOwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5l
dmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAo
aGFuZGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZWY1NjY3
OTVhYWQwYmQwNDMzOGJkMzhkZjY2MDQ1ZGZhOWY2MzY0Ni4uM2Y4YTIwNmI1NTU5NjQ3YzA4ZTJi
NTFiYTVjNmNmZWRhYTY1ODRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBzdGF0aWMgUGxhdGZvcm1Nb3VzZUV2ZW50IGNyZWF0ZU1v
dXNlRXZlbnQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAgcmV0dXJuIFBsYXRmb3Jt
TW91c2VFdmVudChkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0YS5nbG9iYWxQb3Np
dGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVmdEJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFLZXksIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRD
bGljaywgTm9UYXApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleSwgV2Fs
bFRpbWU6Om5vdygpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKIH0KIAogRHJhZ0NvbnRyb2xsZXI6
OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1Yzg0OGFmZDliMDFkMWFlMzM5ZjQ2Y2VkNGEy
NDU4OGQzZjcwZTNhLi5lZjA2OWM0N2U3NDZiODEzNDRlOTI5Y2Y3NzRlMjkzNGQ0YTQ0Nzk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgY29u
c3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXMgPSA1OwogY29uc3QgaW50IFRleHREcmFnSHlzdGVy
ZXNpcyA9IDM7CiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJlc2lzID0gMzsKICNpZiBQTEFU
Rk9STShDT0NPQSkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAw
LjE1OworY29uc3QgU2Vjb25kcyBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgeyAxNTBfbXMg
fTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKQEAgLTIxOTAsNyAr
MjE5MCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgZHJhCiAKICAgICB2aWV3LT5kaXNhYmxlTGF5
ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCk7CiAgICAgUmVmPE1v
dXNlRXZlbnQ+IG1lID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwKLSAgICAgICAgdHJ1
ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZp
ZXcoKSwKKyAgICAgICAgdHJ1ZSwgdHJ1ZSwgZXZlbnQudGltZXN0YW1wKCkuYXBwcm94aW1hdGVN
b25vdG9uaWNUaW1lKCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAgICAg
ICAgMCwgZXZlbnQuZ2xvYmFsUG9zaXRpb24oKS54KCksIGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCku
eSgpLCBldmVudC5wb3NpdGlvbigpLngoKSwgZXZlbnQucG9zaXRpb24oKS55KCksCiAjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKICAgICAgICAgZXZlbnQubW92ZW1lbnREZWx0YSgpLngoKSwgZXZl
bnQubW92ZW1lbnREZWx0YSgpLnkoKSwKQEAgLTI5MzksNyArMjkzOSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAgUGxhdGZvcm1FdmVudDo6
VHlwZSBldmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAjZW5kaWYKIAot
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybU1vdXNlRXZlbnQocG9zaXRpb24sIGdsb2Jh
bFBvc2l0aW9uLCBSaWdodEJ1dHRvbiwgZXZlbnRUeXBlLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgV1RGOjpjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKKyAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgcGxhdGZvcm1Nb3VzZUV2ZW50KHBvc2l0aW9uLCBnbG9iYWxQb3Np
dGlvbiwgUmlnaHRCdXR0b24sIGV2ZW50VHlwZSwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIFdhbGxUaW1lOjpub3coKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7CiAKICAgICByZXR1cm4g
c2VuZENvbnRleHRNZW51RXZlbnQocGxhdGZvcm1Nb3VzZUV2ZW50KTsKIH0KQEAgLTMwMjEsNyAr
MzAyMSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVk
KCkKICAgICBib29sIGFsdEtleTsKICAgICBib29sIG1ldGFLZXk7CiAgICAgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5KTsKLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZmFrZU1vdXNlTW92ZUV2ZW50
KG1fbGFzdEtub3duTW91c2VQb3NpdGlvbiwgbV9sYXN0S25vd25Nb3VzZUdsb2JhbFBvc2l0aW9u
LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxL
ZXksIGFsdEtleSwgbWV0YUtleSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOworICAgIFBsYXRm
b3JtTW91c2VFdmVudCBmYWtlTW91c2VNb3ZlRXZlbnQobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9u
LCBtX2xhc3RLbm93bk1vdXNlR2xvYmFsUG9zaXRpb24sIE5vQnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZU1vdmVkLCAwLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxs
VGltZTo6bm93KCksIDAsIE5vVGFwKTsKICAgICBtb3VzZU1vdmVkKGZha2VNb3VzZU1vdmVFdmVu
dCk7CiB9CiAjZW5kaWYgLy8gIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmgKaW5kZXggNjY2M2M4ZjJhODlkM2YyMmMzYmVmNjJiMDk3YzQ2YWVkYmY2
NzY2My4uYTBhYTUzNWY1YTVkOGNhODExNzVhODkxMDE1YjZlOWJiZjQ4Nzk4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdT
dGF0ZSgpOwotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKKyAgICBzdGF0
aWMgY29uc3QgU2Vjb25kcyBUZXh0RHJhZ0RlbGF5OwogICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNy
ZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CiAjZW5kaWYKIApAQCAtNTY0LDcgKzU2
NCw3IEBAIHByaXZhdGU6CiAgICAgSW50UG9pbnQgbV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uOwog
ICAgIEludFBvaW50IG1fbGFzdEtub3duTW91c2VHbG9iYWxQb3NpdGlvbjsKICAgICBJbnRQb2lu
dCBtX21vdXNlRG93blBvczsgLy8gSW4gb3VyIHZpZXcncyBjb29yZHMuCi0gICAgZG91YmxlIG1f
bW91c2VEb3duVGltZXN0YW1wIHsgMCB9OworICAgIFdhbGxUaW1lIG1fbW91c2VEb3duVGltZXN0
YW1wOwogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtX21vdXNlRG93bjsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAppbmRleCAxYWZhMzY0NTkxMzEz
MTdhMDI2MzU4OTBlZDFiZWFlZTFkNGU0ZTlhLi42YzUyYWFmOWE2NGMyNWFjNTA0OTdmYmE4MDZk
NjcwODdkMDQ4OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcApAQCAtNjksNyAr
NjksNyBAQCB2b2lkIFBlcmZvcm1hbmNlOjpjb250ZXh0RGVzdHJveWVkKCkKICAgICBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpOwogfQogCi1kb3VibGUgUGVy
Zm9ybWFuY2U6Om5vdygpIGNvbnN0CitET01IaWdoUmVzVGltZVN0YW1wIFBlcmZvcm1hbmNlOjpu
b3coKSBjb25zdAogewogICAgIFNlY29uZHMgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBt
X3RpbWVPcmlnaW47CiAgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNvbHV0aW9uKG5vdykubWlsbGlz
ZWNvbmRzKCk7CkBAIC04Miw2ICs4MiwxMiBAQCBTZWNvbmRzIFBlcmZvcm1hbmNlOjpyZWR1Y2VU
aW1lUmVzb2x1dGlvbihTZWNvbmRzIHNlY29uZHMpCiAgICAgcmV0dXJuIFNlY29uZHMocmVkdWNl
ZCk7CiB9CiAKK0RPTUhpZ2hSZXNUaW1lU3RhbXAgUGVyZm9ybWFuY2U6OnJlbGF0aXZlVGltZUZy
b21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCkg
Y29uc3QKK3sKKyAgICBTZWNvbmRzIHNlY29uZHMgPSB0aW1lc3RhbXAgLSBtX3RpbWVPcmlnaW47
CisgICAgcmV0dXJuIHJlZHVjZVRpbWVSZXNvbHV0aW9uKHNlY29uZHMpLm1pbGxpc2Vjb25kcygp
OworfQorCiBQZXJmb3JtYW5jZU5hdmlnYXRpb24qIFBlcmZvcm1hbmNlOjpuYXZpZ2F0aW9uKCkK
IHsKICAgICBpZiAoIWlzPERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4IDlhNjBlYzBhYjJjYTU4YjdmMTBjNGI4ZGI5Y2Zm
NjEyMTA5ZDU4NWQuLjQzOGEwMDEyZTI4M2E2Y2IzYzM0ZDYwYzE2NWQ3N2MyOWQxNTk0M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJE
T01IaWdoUmVzVGltZVN0YW1wLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKQEAgLTU2LDcg
KzU3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGVyZm9ybWFuY2U+IGNyZWF0ZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNb25vdG9uaWNUaW1lIHRpbWVPcmlnaW4pIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVyZm9ybWFuY2UoY29udGV4dCwgdGltZU9yaWdpbikpOyB9
CiAgICAgflBlcmZvcm1hbmNlKCk7CiAKLSAgICBkb3VibGUgbm93KCkgY29uc3Q7CisgICAgRE9N
SGlnaFJlc1RpbWVTdGFtcCBub3coKSBjb25zdDsKIAogICAgIFBlcmZvcm1hbmNlTmF2aWdhdGlv
biogbmF2aWdhdGlvbigpOwogICAgIFBlcmZvcm1hbmNlVGltaW5nKiB0aW1pbmcoKTsKQEAgLTgy
LDYgKzgzLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNlY29uZHMgcmVkdWNlVGltZVJlc29s
dXRpb24oU2Vjb25kcyk7CiAKKyAgICBET01IaWdoUmVzVGltZVN0YW1wIHJlbGF0aXZlVGltZUZy
b21UaW1lT3JpZ2luSW5SZWR1Y2VkUmVzb2x1dGlvbihNb25vdG9uaWNUaW1lKSBjb25zdDsKKwog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KaW5kZXggOGYwZmI0ZTJlYWJhM2RkOTZj
ZWViNDQzOGY4ZjNiMDM5OTU4YjE0Mi4uOWY5NzU4YmYzNTAxN2ViYjRiNWQyZDcxYjIwZDdlOGQ5
OWNhYWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVy
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpA
QCAtNTg3LDggKzU4Nyw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp0cnlUb0JlZ2luRGF0YUludGVy
YWN0aW9uQXRQb2ludChjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpCiAgICAgSW50UG9pbnQg
YWRqdXN0ZWRDbGllbnRQb3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZENsaWVudFBv
c2l0aW9uQXNGbG9hdFBvaW50KTsKICAgICBJbnRQb2ludCBhZGp1c3RlZEdsb2JhbFBvc2l0aW9u
ID0gcHJvdGVjdGVkRnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhhZGp1c3RlZENsaWVu
dFBvc2l0aW9uKTsKIAotICAgIFBsYXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3VzZVByZXNz
RXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVm
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXApOwotICAgIFBsYXRmb3JtTW91c2VF
dmVudCBzeW50aGV0aWNNb3VzZU1vdmVFdmVudChhZGp1c3RlZENsaWVudFBvc2l0aW9uLCBhZGp1
c3RlZEdsb2JhbFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVk
LCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgMCwgTm9UYXAp
OworICAgIFBsYXRmb3JtTW91c2VFdmVudCBzeW50aGV0aWNNb3VzZVByZXNzRXZlbnQoYWRqdXN0
ZWRDbGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
V2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CisgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IHN5bnRo
ZXRpY01vdXNlTW92ZUV2ZW50KGFkanVzdGVkQ2xpZW50UG9zaXRpb24sIGFkanVzdGVkR2xvYmFs
UG9zaXRpb24sIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBXYWxsVGltZTo6bm93KCksIDAsIE5vVGFwKTsKIAogICAg
IEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RS
ZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQpOwogICAgIGF1dG8gZG9jdW1l
bnRQb2ludCA9IHByb3RlY3RlZEZyYW1lLT52aWV3KCkgPyBwcm90ZWN0ZWRGcmFtZS0+dmlldygp
LT53aW5kb3dUb0NvbnRlbnRzKHN5bnRoZXRpY01vdXNlTW92ZUV2ZW50LnBvc2l0aW9uKCkpIDog
c3ludGhldGljTW91c2VNb3ZlRXZlbnQucG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IGRjZWMwMzRkZmVjM2I2MWM1MWNhZGYyNzcy
YTU2NzU5MGFmY2RmMjQuLjQyMTA2YTY4ZmZiZDgxYWMxMDdmNTBiOTA3ODZiN2UwOWUwODMyN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcApAQCAtNDgs
NyArNDgsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7Citjb25z
dCBTZWNvbmRzIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSB7IDBfcyB9OwogI2VuZGlmCiAK
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaAppbmRleCA1Y2I0Nzg0NzFkNjZhOGVjOTZhNTQ4ZGY0
OTA4ZTU4N2U4MWQ4NWU3Li41MmNiOWM4NzQwMmYwNzEwMmRmNjM4YjE1MTA4MmQ3ODdhMTNiOGQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRl
IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04NiwyOSArODcs
MjcgQEAgcHVibGljOgogCiAgICAgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMoKSBjb25z
dCB7IHJldHVybiBtX21vZGlmaWVyczsgfQogCi0gICAgZG91YmxlIHRpbWVzdGFtcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGltZXN0YW1wOyB9CisgICAgV2FsbFRpbWUgdGltZXN0YW1wKCkgY29uc3Qg
eyByZXR1cm4gbV90aW1lc3RhbXA7IH0KIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtRXZlbnQo
KQogICAgICAgICA6IG1fdHlwZShOb1R5cGUpCi0gICAgICAgICwgbV90aW1lc3RhbXAoMCkKICAg
ICB7CiAgICAgfQogCiAgICAgZXhwbGljaXQgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUpCiAgICAg
ICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV90aW1lc3RhbXAoMCkKICAgICB7CiAgICAg
fQogCi0gICAgUGxhdGZvcm1FdmVudChUeXBlIHR5cGUsIE9wdGlvblNldDxNb2RpZmllcj4gbW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorICAgIFBsYXRmb3JtRXZlbnQoVHlwZSB0eXBlLCBP
cHRpb25TZXQ8TW9kaWZpZXI+IG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAg
ICA6IG1fdHlwZSh0eXBlKQogICAgICAgICAsIG1fbW9kaWZpZXJzKG1vZGlmaWVycykKICAgICAg
ICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgewogICAgIH0KIAotICAgIFBsYXRmb3Jt
RXZlbnQoVHlwZSB0eXBlLCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5
LCBib29sIG1ldGFLZXksIGRvdWJsZSB0aW1lc3RhbXApCisgICAgUGxhdGZvcm1FdmVudChUeXBl
IHR5cGUsIGJvb2wgc2hpZnRLZXksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgbWV0
YUtleSwgV2FsbFRpbWUgdGltZXN0YW1wKQogICAgICAgICA6IG1fdHlwZSh0eXBlKQogICAgICAg
ICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkKICAgICB7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHJv
dGVjdGVkOgogCiAgICAgdW5zaWduZWQgbV90eXBlOwogICAgIE9wdGlvblNldDxNb2RpZmllcj4g
bV9tb2RpZmllcnM7Ci0gICAgZG91YmxlIG1fdGltZXN0YW1wOworICAgIFdhbGxUaW1lIG1fdGlt
ZXN0YW1wOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAppbmRleCA4N2JhNTc2MDhkZjU3YmZk
OGJhNDBiNzhjMGQ5NjQzNGQwODdjMzBhLi45N2QwM2FmOTJhZDM4MTJiZTVlOWNlMTM5NGI4NWNj
MmNjN2E2NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaApAQCAtNzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5B
QkxFKEtFWUJPQVJEX0NPREVfQVRUUklCVVRFKQogICAgICAgICBjb25zdCBTdHJpbmcmIGNvZGUs
CiAjZW5kaWYKLSAgICAgICAgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93
c1ZpcnR1YWxLZXlDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBp
c1N5c3RlbUtleSwgT3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXApCisgICAgICAgIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0
ZW1LZXksIE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
CiAgICAgICAgICAgICA6IFBsYXRmb3JtRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXAp
CiAgICAgICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAgICAgLCBtX3VubW9kaWZpZWRU
ZXh0KHVubW9kaWZpZWRUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1v
dXNlRXZlbnQuaAppbmRleCAxMDRmNTM5NzA5MmE5MDdhMWU5ODUzODdkZmIzZDJhZGI3Mjg3YTcx
Li5hNGU3ZDU4OTI0YzBkMmMyYzQyNDEzZjRmMmVjMmVjNmZjY2IyYmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtNjEsNyArNjEsNyBAQCBj
b25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xpY2sgPSAyOwogICAgICAgICB9CiAKICAgICAgICAg
UGxhdGZvcm1Nb3VzZUV2ZW50KGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uLCBNb3VzZUJ1dHRvbiBidXR0b24sIFBsYXRmb3JtRXZlbnQ6OlR5
cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29s
IHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIGRvdWJs
ZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29s
IHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIFdhbGxU
aW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGlj
Q2xpY2tUeXBlKQogICAgICAgICAgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIHNoaWZ0S2V5LCBj
dHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIHRpbWVzdGFtcCkKICAgICAgICAgICAgICwgbV9wb3Np
dGlvbihwb3NpdGlvbikKICAgICAgICAgICAgICwgbV9nbG9iYWxQb3NpdGlvbihnbG9iYWxQb3Np
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5k
ZXggNmQ0NThiZWY0YjgwNGY1MmJkZTI5NGQxNjc5YjE2MTNmYzkwMjQ4MC4uMjk1ODgyMTBjODM4
ODNmNGRiN2Q5MGMxNmZlNGJkY2FmOWJmMTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIH0K
IAogICAgIFBsYXRmb3JtV2hlZWxFdmVudChJbnRQb2ludCBwb3NpdGlvbiwgSW50UG9pbnQgZ2xv
YmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCB3aGVlbFRpY2tz
WCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBsYXRmb3JtV2hlZWxFdmVudEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1l
dGFLZXkpCi0gICAgICAgIDogUGxhdGZvcm1FdmVudChQbGF0Zm9ybUV2ZW50OjpXaGVlbCwgc2hp
ZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgMCkKKyAgICAgICAgOiBQbGF0Zm9ybUV2
ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRh
S2V5LCB7IH0pCiAgICAgICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAgICAgLCBtX2ds
b2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9uKQogICAgICAgICAsIG1fZGVsdGFYKGRlbHRhWCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
CmluZGV4IGQzNzllMjQ3NGQxNjY2NTRhNGMxMjljY2NiMGYxZWRlM2U2MzI1ZTMuLjBiMmIyODE4
MGM0NDM2MzZiNTQ5YmFkYzU1YmNmYmE5YWJlNDU1ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTc5LDE0ICsxNzksMTQg
QEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAoIW1fbW9tZW50dW1TY3JvbGxJblByb2dy
ZXNzICYmIChtb21lbnR1bVBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwg
bW9tZW50dW1QaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQpKQogICAgICAg
ICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKLSAgICBDRlRpbWVJbnRlcnZh
bCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9tZW50dW1TY3Jv
bGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50
aW1lc3RhbXAoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBtX2xhc3RNb21lbnR1bVNj
cm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1bVNj
cm9sbEluUHJvZ3Jlc3MpIHsKICAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5n
VGltZW91dCkgewogICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50
Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CiAgICAgICAgICAgICBtX21vbWVu
dHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZsb2F0KXRpbWVE
ZWx0YSk7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVs
RXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVz
dGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1l
c3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICAgICAgbV9sYXN0TW9tZW50
dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpLnNlY29uZHNTaW5jZUVw
b2NoKCkudmFsdWUoKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9IEZsb2F0U2l6
ZSgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ds
aWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0V2
ZW50SGFuZGxlckdMaWIuY3BwCmluZGV4IGJmYTRjNmMxMGU0YjE5ZTUwNTEwMDgyMzU2OTBiZjNh
Yjc3MDRlOTguLmE1ZTY4NTNhZTJkYzYxMDFmMWQ2YzdhMmJjZWFkYTFiMzA2OTBkMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRXZlbnRIYW5kbGVyR0xpYi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9FdmVudEhhbmRsZXJHTGliLmNwcApA
QCAtNDksNyArNDksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKLWNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7
Citjb25zdCBTZWNvbmRzIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSB7IDBfcyB9OwogI2Vu
ZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRF
dmVudCYpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1LZXlib2FyZEV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnRHdGsuY3BwCmluZGV4IGQ5Yjk1YTk3ZGRiOTc2MWZkM2MwNzZh
ZjhhYTc5NmQ2M2YxMzU5YjUuLjRmYzEzYmVjYzNhYjJkNjFhZWQ0NGI5ZmU4YzJhMTcxOGUwZjFm
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybUtleWJv
YXJkRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRHdGsuY3BwCkBAIC0xMjU5LDcgKzEyNTksNyBAQCBzdGF0aWMgT3B0aW9u
U2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnNGb3JHZGtLZXlFdmVudChHZGtF
dmVudEtleSogZQogCiAvLyBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBvdGhlciBwbGF0Zm9y
bSBldmVudCBjb25zdHJ1Y3RvcnMKIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50KEdka0V2ZW50S2V5KiBldmVudCwgY29uc3QgQ29tcG9zaXRpb25SZXN1bHRzJiBj
b21wb3NpdGlvblJlc3VsdHMpCi0gICAgOiBQbGF0Zm9ybUV2ZW50KGV2ZW50VHlwZUZvckdka0tl
eUV2ZW50KGV2ZW50KSwgbW9kaWZpZXJzRm9yR2RrS2V5RXZlbnQoZXZlbnQpLCBjdXJyZW50VGlt
ZSgpKQorICAgIDogUGxhdGZvcm1FdmVudChldmVudFR5cGVGb3JHZGtLZXlFdmVudChldmVudCks
IG1vZGlmaWVyc0Zvckdka0tleUV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6Om5vdygpKQogICAgICwg
bV90ZXh0KGNvbXBvc2l0aW9uUmVzdWx0cy5zaW1wbGVTdHJpbmcubGVuZ3RoKCkgPyBjb21wb3Np
dGlvblJlc3VsdHMuc2ltcGxlU3RyaW5nIDogc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGV2ZW50LT5r
ZXl2YWwpKQogICAgICwgbV91bm1vZGlmaWVkVGV4dChtX3RleHQpCiAgICAgLCBtX2tleShrZXlW
YWx1ZUZvckdka0tleUNvZGUoZXZlbnQtPmtleXZhbCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1Nb3VzZUV2ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwCmluZGV4IGI2OTI0ODU2
Y2I4YjAzY2U2ODk5MWU0MmY1ZDUzYTMxYWQ2ZTU3OGQuLmVjOTFhZmVlZjdhNWJmMWRhMDVlOTQ5
MmJhYjAyNmM0ZGQwYTlhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9QbGF0Zm9ybU1vdXNlRXZlbnRHdGsuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIG90aGVyIHBsYXRmb3Jt
IGV2ZW50IGNvbnN0cnVjdG9ycwogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZl
bnQoR2RrRXZlbnRCdXR0b24qIGV2ZW50KQogewotICAgIG1fdGltZXN0YW1wID0gZXZlbnQtPnRp
bWU7CisgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRp
bWUpOwogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50LT54LCAoaW50KWV2ZW50
LT55KTsKICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQoKGludClldmVudC0+eF9yb290
LCAoaW50KWV2ZW50LT55X3Jvb3QpOwogICAgIG1fYnV0dG9uID0gTm9CdXR0b247CkBAIC04Nyw3
ICs4Nyw3IEBAIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KEdka0V2ZW50
QnV0dG9uKiBldmVudCkKIAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQo
R2RrRXZlbnRNb3Rpb24qIG1vdGlvbikKIHsKLSAgICBtX3RpbWVzdGFtcCA9IG1vdGlvbi0+dGlt
ZTsKKyAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtb3Rpb24tPnRp
bWUpOwogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KW1vdGlvbi0+eCwgKGludCltb3Rp
b24tPnkpOwogICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludCgoaW50KW1vdGlvbi0+eF9y
b290LCAoaW50KW1vdGlvbi0+eV9yb290KTsKICAgICBtX2J1dHRvbiA9IE5vQnV0dG9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtV2hlZWxFdmVudEd0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3Rr
LmNwcAppbmRleCAzYjBlNTkwNmZjZDUwMmNmOWM1ZDdkY2FhOWVjN2EyZDlhYzIzYzhlLi40ZTZk
NzkyNTIwYzQ4NDcxNzc4Yzk5MzNlYTYyNTQ5MjE0NzBhZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1XaGVlbEV2ZW50R3RrLmNwcApAQCAtMzMs
NyArMzMsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgPGdkay9nZGsuaD4K
ICNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5j
bHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyAr
NDMsNyBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChHZGtFdmVudFNj
cm9sbCogZXZlbnQpCiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGRlbHRhID0gMTsKIAogICAgIG1f
dHlwZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOwotICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRp
bWUoKTsKKyAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgIGlmIChldmVu
dC0+c3RhdGUgJiBHREtfU0hJRlRfTUFTSykKICAgICAgICAgbV9tb2RpZmllcnMgfD0gTW9kaWZp
ZXI6OlNoaWZ0S2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Nj
cm9sbEFuaW1hdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxB
bmltYXRvckd0ay5jcHAKaW5kZXggYzJhYTlkYzAxZjc2N2VlYTk4ZTMxM2E4NjRhNmEyNzgyYmE4
ZjA0Yi4uNDNkZjIzMDNmZDg3MTEwZDAwMTg5OTc1Yzk5YTFmZWJjNDQzYjI0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbEFuaW1hdG9yR3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsQW5pbWF0b3JHdGsuY3BwCkBAIC0x
MTIsOCArMTEyLDggQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvckd0azo6Y29tcHV0ZVZlbG9j
aXR5KCkKICAgICBpZiAobV9zY3JvbGxIaXN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIGRvdWJsZSBmaXJzdCA9IG1fc2Nyb2xsSGlzdG9yeVswXS50aW1lc3RhbXAo
KTsKLSAgICBkb3VibGUgbGFzdCA9IG1fc2Nyb2xsSGlzdG9yeS5yYmVnaW4oKS0+dGltZXN0YW1w
KCk7CisgICAgYXV0byBmaXJzdCA9IG1fc2Nyb2xsSGlzdG9yeVswXS50aW1lc3RhbXAoKTsKKyAg
ICBhdXRvIGxhc3QgPSBtX3Njcm9sbEhpc3RvcnkucmJlZ2luKCktPnRpbWVzdGFtcCgpOwogCiAg
ICAgaWYgKGxhc3QgPT0gZmlyc3QpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMjQsNyArMTI0
LDcgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvckd0azo6Y29tcHV0ZVZlbG9jaXR5KCkKIAog
ICAgIG1fc2Nyb2xsSGlzdG9yeS5jbGVhcigpOwogCi0gICAgcmV0dXJuIEZsb2F0UG9pbnQoYWNj
dW1EZWx0YS54KCkgKiAtMTAwMCAvIChsYXN0IC0gZmlyc3QpLCBhY2N1bURlbHRhLnkoKSAqIC0x
MDAwIC8gKGxhc3QgLSBmaXJzdCkpOworICAgIHJldHVybiBGbG9hdFBvaW50KGFjY3VtRGVsdGEu
eCgpICogLTEwMDAgLyAobGFzdCAtIGZpcnN0KS52YWx1ZSgpLCBhY2N1bURlbHRhLnkoKSAqIC0x
MDAwIC8gKGxhc3QgLSBmaXJzdCkudmFsdWUoKSk7CiB9CiAKIGJvb2wgU2Nyb2xsQW5pbWF0b3JH
dGs6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKQEAg
LTEzMiw3ICsxMzIsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9yR3RrOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgbV9raW5ldGljQW5pbWF0aW9u
LT5zdG9wKCk7CiAKICAgICBtX3Njcm9sbEhpc3RvcnkucmVtb3ZlQWxsTWF0Y2hpbmcoWyZldmVu
dF0gKFBsYXRmb3JtV2hlZWxFdmVudCYgb3RoZXJFdmVudCkgLT4gYm9vbCB7Ci0gICAgICAgIHJl
dHVybiBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGV2ZW50LnRpbWVzdGFtcCgpIC0gb3RoZXJF
dmVudC50aW1lc3RhbXAoKSkgPiBzY3JvbGxDYXB0dXJlVGhyZXNob2xkOworICAgICAgICByZXR1
cm4gKGV2ZW50LnRpbWVzdGFtcCgpIC0gb3RoZXJFdmVudC50aW1lc3RhbXAoKSkgPiBzY3JvbGxD
YXB0dXJlVGhyZXNob2xkOwogICAgIH0pOwogCiAgICAgaWYgKGV2ZW50LmlzRW5kT2ZOb25Nb21l
bnR1bVNjcm9sbCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0KaW5kZXggMDYyZjk4MjM3NzFiZGZhMzYwMjllMjU2
ODlmM2Q4ZjE2MzkyMzE0Ni4uNDhjODQwMzMyYjg5YmZhOTI2MTAxNzYwYjdmYjA4MWMyMTBkNTQ2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtRXZlbnRG
YWN0b3J5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeUlPUy5tbQpAQCAtMzIsNyArMzIsNyBAQAogI2ltcG9ydCAiV0FLQXBwS2l0U3R1
YnMuaCIKICNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oIgotI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnRCdWlsZGVyKFdlYkV2ZW50ICpldmVudCkKICAgICB7CiAgICAg
ICAgIG1fdHlwZSA9IG1vdXNlRXZlbnRUeXBlKGV2ZW50KTsKLSAgICAgICAgbV90aW1lc3RhbXAg
PSBjdXJyZW50VGltZSgpOworICAgICAgICBtX3RpbWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsK
IAogICAgICAgICBtX3Bvc2l0aW9uID0gcG9pbnRGb3JFdmVudChldmVudCk7CiAgICAgICAgIG1f
Z2xvYmFsUG9zaXRpb24gPSBnbG9iYWxQb2ludEZvckV2ZW50KGV2ZW50KTsKQEAgLTEwNiw3ICsx
MDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChldmVudC50eXBlID09IFdlYkV2ZW50U2Ny
b2xsV2hlZWwpOwogCiAgICAgICAgIG1fdHlwZSA9IFBsYXRmb3JtRXZlbnQ6OldoZWVsOwotICAg
ICAgICBtX3RpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgICAgIG1fdGltZXN0YW1wID0g
V2FsbFRpbWU6Om5vdygpOwogCiAgICAgICAgIG1fcG9zaXRpb24gPSBwb2ludEZvckV2ZW50KGV2
ZW50KTsKICAgICAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IGdsb2JhbFBvaW50Rm9yRXZlbnQoZXZl
bnQpOwpAQCAtMzY5LDcgKzM2OSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX3R5cGUgPSAoZXZl
bnQudHlwZSA9PSBXZWJFdmVudEtleVVwID8gUGxhdGZvcm1FdmVudDo6S2V5VXAgOiBQbGF0Zm9y
bUV2ZW50OjpLZXlEb3duKTsKICAgICAgICAgbV9tb2RpZmllcnMgPSBtb2RpZmllcnNGb3JFdmVu
dChldmVudCk7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAg
bV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAgICAgbV90ZXh0ID0gZXZlbnQu
Y2hhcmFjdGVyczsKICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IGV2ZW50LmNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyczsKQEAgLTQ3NSw3ICs0NzUsNyBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBtX3R5cGUgPSB0b3VjaEV2ZW50VHlwZShldmVudCk7CiAgICAgICAgIG1fbW9kaWZpZXJz
ID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgICAgICBtX3RpbWVzdGFtcCA9IGV2ZW50
LnRpbWVzdGFtcDsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoZXZlbnQudGltZXN0YW1wKTsKIAogICAgICAgICBtX2dlc3R1cmVTY2FsZSA9IGV2ZW50Lmdl
c3R1cmVTY2FsZTsKICAgICAgICAgbV9nZXN0dXJlUm90YXRpb24gPSBldmVudC5nZXN0dXJlUm90
YXRpb247CkBAIC00OTYsNyArNDk2LDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtVG91Y2hFdmVu
dEJ1aWxkZXIoUGxhdGZvcm1FdmVudDo6VHlwZSB0eXBlLCBJbnRQb2ludCBsb2NhdGlvbikKICAg
ICB7CiAgICAgICAgIG1fdHlwZSA9IHR5cGU7Ci0gICAgICAgIG1fdGltZXN0YW1wID0gY3VycmVu
dFRpbWUoKTsKKyAgICAgICAgbV90aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgICAg
IAogICAgICAgICBtX2dlc3R1cmVTY2FsZSA9IDE7CiAgICAgICAgIG1fZ2VzdHVyZVJvdGF0aW9u
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2
ZW50RmFjdG9yeU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZl
bnRGYWN0b3J5TWFjLmgKaW5kZXggZDIwYTJkOGVlOTBmNGMxODY3Yjk2ZTU5NDkyMTk1OWM0ZjZj
MDI2Zi4uYzQwZWMyMWYxMmExNzhkZjg4ZTliZjI5MDRhMGQ3ZmQ3Nzk1YjkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgV0VCQ09SRV9FWFBPUlQgaW50IHdpbmRvd3NLZXlDb2RlRm9y
S2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlJZGVudGlmaWVy
Rm9yS2V5RXZlbnQoTlNFdmVudCAqKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBrZXlGb3JLZXlF
dmVudChOU0V2ZW50ICopOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGNvZGVGb3JLZXlFdmVudChO
U0V2ZW50ICopOwotV0VCQ09SRV9FWFBPUlQgZG91YmxlIGV2ZW50VGltZVN0YW1wU2luY2UxOTcw
KE5TRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBldmVudFRpbWVTdGFtcFNpbmNl
MTk3MChOU0V2ZW50ICopOwogICAgIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRXaGVlbEV2ZW50
RGVsdGFzKE5TRXZlbnQgKiwgZmxvYXQmIGRlbHRhWCwgZmxvYXQmIGRlbHRhWSwgQk9PTCYgY29u
dGludW91cyk7CiBXRUJDT1JFX0VYUE9SVCBVSW50OCBrZXlDaGFyRm9yRXZlbnQoTlNFdmVudCAq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5tbQppbmRleCAyYjE4MjI0ZjgzNDlmZmJiNmUzYzE4YThkMTU0MTU0NWQ5YzJh
YjYyLi43OTQxY2Q2YzRkZDI4MjhjNmQ2ZjczOWMwYjI1MmE0Nzk4YzU2OTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0V2ZW50U1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU01lbnVTUEkuaD4KICNpbXBvcnQgPHd0Zi9BU0NJSUNU
eXBlLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02MTcsOSArNjE4LDkgQEAgc3RhdGljIENGVGltZUludGVydmFsIGNhY2hlZFN0YXJ0dXBU
aW1lSW50ZXJ2YWxTaW5jZTE5NzAoKQogICAgIHJldHVybiBzeXN0ZW1TdGFydHVwVGltZTsKIH0K
IAotZG91YmxlIGV2ZW50VGltZVN0YW1wU2luY2UxOTcwKE5TRXZlbnQqIGV2ZW50KQorV2FsbFRp
bWUgZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoTlNFdmVudCogZXZlbnQpCiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4oY2FjaGVkU3RhcnR1cFRpbWVJbnRlcnZhbFNpbmNlMTk3MCgp
ICsgW2V2ZW50IHRpbWVzdGFtcF0pOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoc3RhdGljX2Nhc3Q8ZG91YmxlPihjYWNoZWRTdGFydHVwVGltZUludGVydmFsU2luY2UxOTcw
KCkgKyBbZXZlbnQgdGltZXN0YW1wXSkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNLZXlV
cEV2ZW50KE5TRXZlbnQgKmV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0tleUV2ZW50V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9LZXlF
dmVudFdpbi5jcHAKaW5kZXggNjU1NWFlZjA5OGZkYjBkMDMwODQyNDFlYzc4ZjE4ZDI0MTAzMGM0
YS4uNjJjY2FjM2I4ODUxMjdlMjZjMGM5ZWM1ZWU3YTI3YzczNGY2MWI0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0tleUV2ZW50V2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vS2V5RXZlbnRXaW4uY3BwCkBAIC0yMjAsNyArMjIwLDcgQEAg
c3RhdGljIGlubGluZSBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nKFVDaGFyIGMpCiB9CiAK
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6UGxhdGZvcm1LZXlib2FyZEV2ZW50KEhXTkQsIFdQQVJB
TSBjb2RlLCBMUEFSQU0ga2V5RGF0YSwgVHlwZSB0eXBlLCBib29sIHN5c3RlbUtleSkKLSAgICA6
IFBsYXRmb3JtRXZlbnQodHlwZSwgR2V0S2V5U3RhdGUoVktfU0hJRlQpICYgSElHSF9CSVRfTUFT
S19TSE9SVCwgR2V0S2V5U3RhdGUoVktfQ09OVFJPTCkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBH
ZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIGZhbHNlLCA6OkdldFRp
Y2tDb3VudCgpICogMC4wMDEpCisgICAgOiBQbGF0Zm9ybUV2ZW50KHR5cGUsIEdldEtleVN0YXRl
KFZLX1NISUZUKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX0NPTlRST0wp
ICYgSElHSF9CSVRfTUFTS19TSE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9N
QVNLX1NIT1JULCBmYWxzZSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0VGlja0NvdW50
KCkgKiAwLjAwMSkpCiAgICAgLCBtX3RleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikg
PyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAsIG1fdW5tb2Rp
ZmllZFRleHQoKHR5cGUgPT0gUGxhdGZvcm1FdmVudDo6Q2hhcikgPyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmcoY29kZSkgOiBTdHJpbmcoKSkKICAgICAsIG1fa2V5SWRlbnRpZmllcigodHlwZSA9PSBQ
bGF0Zm9ybUV2ZW50OjpDaGFyKSA/IFN0cmluZygpIDoga2V5SWRlbnRpZmllckZvcldpbmRvd3NL
ZXlDb2RlKGNvZGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bs
YXRmb3JtTW91c2VFdmVudFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxh
dGZvcm1Nb3VzZUV2ZW50V2luLmNwcAppbmRleCAwMDBmZDNhYzMzMTg1NTgyNDE5OTMyZDVjMjU3
ZjY4ZTkzNjY2NzZkLi5lYTI0N2M5ZTZjNThmNDJmZWY0ZGZhYTMxMmNhZGRlYTBhODZjMWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2ZW50
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGxhdGZvcm1Nb3VzZUV2
ZW50V2luLmNwcApAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgUGxhdGZvcm1FdmVudDo6VHlwZSBt
ZXNzYWdlVG9FdmVudFR5cGUoVUlOVCBtZXNzYWdlKQogfQogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6
OlBsYXRmb3JtTW91c2VFdmVudChIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIGxQYXJhbSwgYm9vbCBkaWRBY3RpdmF0ZVdlYlZpZXcpCi0gICAgOiBQbGF0Zm9y
bUV2ZW50KG1lc3NhZ2VUb0V2ZW50VHlwZShtZXNzYWdlKSwgd1BhcmFtICYgTUtfU0hJRlQsIHdQ
YXJhbSAmIE1LX0NPTlRST0wsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9CSVRfTUFTS19T
SE9SVCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNLX1NIT1JULCBjdXJyZW50
VGltZSgpKQorICAgIDogUGxhdGZvcm1FdmVudChtZXNzYWdlVG9FdmVudFR5cGUobWVzc2FnZSks
IHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0ZShWS19N
RU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYgSElHSF9C
SVRfTUFTS19TSE9SVCwgV2FsbFRpbWU6Om5vdygpKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlv
bkZvckV2ZW50KGhXbmQsIGxQYXJhbSkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBv
c2l0aW9uRm9yRXZlbnQoaFduZCwgbFBhcmFtKSkKICAgICAsIG1fY2xpY2tDb3VudCgwKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCmluZGV4IDllZjI0
OGJjNzRmNmQ1MDVlZWI3ZWQ2NzJiZTkzZmUzODc1YzUxMjguLjZkYmVhMjBlNDYyZjA0Y2I3MGE3
ZmQzNTg1MTU5ODZjOGE4NmIwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9XaGVlbEV2ZW50V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
V2hlZWxFdmVudFdpbi5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIGludCB2ZXJ0aWNhbFNj
cm9sbExpbmVzKCkKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQo
SFdORCBoV25kLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFBvaW50JiBsb2Nh
dGlvbikKLSAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6V2hlZWwsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlLCA6OkdldFRpY2tDb3VudCgpICogMC4wMDEpCisgICAgOiBQbGF0
Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz
ZSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0VGlja0NvdW50KCkgKiAwLjAwMSkpCiAg
ICAgLCBtX2RpcmVjdGlvbkludmVydGVkRnJvbURldmljZShmYWxzZSkKIHsKICAgICBtX2RlbHRh
WCA9IGRlbHRhLndpZHRoKCk7CkBAIC05NSw3ICs5NSw3IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6
UGxhdGZvcm1XaGVlbEV2ZW50KEhXTkQgaFduZCwgY29uc3QgRmxvYXRTaXplJiBkZWx0YSwgY29u
c3QKIH0KIAogUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSFdORCBoV25k
LCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtLCBib29sIGlzTW91c2VIV2hlZWwpCi0gICAg
OiBQbGF0Zm9ybUV2ZW50KFBsYXRmb3JtRXZlbnQ6OldoZWVsLCB3UGFyYW0gJiBNS19TSElGVCwg
d1BhcmFtICYgTUtfQ09OVFJPTCwgR2V0S2V5U3RhdGUoVktfTUVOVSkgJiBISUdIX0JJVF9NQVNL
X1NIT1JULCBHZXRLZXlTdGF0ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIDo6R2V0
VGlja0NvdW50KCkgKiAwLjAwMSkKKyAgICA6IFBsYXRmb3JtRXZlbnQoUGxhdGZvcm1FdmVudDo6
V2hlZWwsIHdQYXJhbSAmIE1LX1NISUZULCB3UGFyYW0gJiBNS19DT05UUk9MLCBHZXRLZXlTdGF0
ZShWS19NRU5VKSAmIEhJR0hfQklUX01BU0tfU0hPUlQsIEdldEtleVN0YXRlKFZLX01FTlUpICYg
SElHSF9CSVRfTUFTS19TSE9SVCwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKDo6R2V0VGlja0Nv
dW50KCkgKiAwLjAwMSkpCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uRm9yRXZlbnQoaFduZCwg
bFBhcmFtKSkKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb25Gb3JFdmVudCho
V25kLCBsUGFyYW0pKQogICAgICwgbV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UoZmFsc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBlN2Q0MWM3MTAzOWQxOTM2NDJiMTI5YTIyOGQ5ZWQ5MGFmMTg1NTM4Li5hYTk5ODBjMzQyNDdj
NmVhODlmOTU1OWEyZGY5NWE0ZjI4YzE5MWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRl
IDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAg
LTE2MCw2ICsxNjEsMjEgQEAgYm9vbCBBcmd1bWVudENvZGVyPE1vbm90b25pY1RpbWU+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgTW9ub3RvbmljVGltZSYgdGltZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFdhbGxUaW1lPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdhbGxUaW1lJiB0aW1lKQoreworICAgIGVuY29kZXIgPDwgdGltZS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxXYWxsVGlt
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXYWxsVGltZSYgdGltZSkKK3sKKyAgICBkb3Vi
bGUgdmFsdWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModmFsdWUpOwor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8U2Vjb25kcz46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZWNvbmRzJiBzZWNvbmRzKQogewogICAgIGVuY29k
ZXIgPDwgc2Vjb25kcy52YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCA1YjVmZDM5NzQxMzRhOWQ0YTk5NDQ5YjViOTk3NTk4NjM5MTI0
YzZlLi4wOGMzODM5MGI4NGNlNDg3NDFjZDQ0ZmUxNDFlZTU2Yjg0YjkyYzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDMsNiArNDMsNyBA
QAogbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBNb25vdG9uaWNUaW1lOwogY2xhc3MgU2Vjb25kczsK
K2NsYXNzIFdhbGxUaW1lOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjIsNiArMTYz
LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpNb25vdG9uaWNUaW1l
PiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXVEY6Ok1vbm90b25pY1RpbWUm
KTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V1RGOjpXYWxsVGltZT4g
eworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV1RGOjpXYWxsVGltZSYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV1RGOjpXYWxsVGltZSYpOworfTsK
KwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXVEY6OlNlY29uZHM+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdURjo6U2Vjb25kcyYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV1RGOjpTZWNvbmRzJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJFdmVudC5jcHAKaW5kZXggNTA3YmMxNjYyODllZDVlMjYyNDZmYjljNWI3ZTcwN2U4MDJkMTli
Yy4uNWEwODZmOTdiODM5NGE4Yzg4NGZmNjBmZjc5NTdmYWNkZTVkZjU3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkV2ZW50LmNwcApAQCAtMjgsMTcgKzI4LDE3IEBACiAKICNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViRXZlbnQ6OldlYkV2ZW50KCkKICAgICA6
IG1fdHlwZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oTm9UeXBlKSkKICAgICAsIG1fbW9kaWZpZXJz
KDApCi0gICAgLCBtX3RpbWVzdGFtcCgwKQogewogfQogCi1XZWJFdmVudDo6V2ViRXZlbnQoVHlw
ZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViRXZlbnQ6
OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX21vZGlmaWVycyhtb2RpZmllcnMpCiAg
ICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCAy
MTAxODZkYzBmZGMwZjY2MjA1NDJiYWRhYWMyYTYzZGM4YmYzZTIxLi4yZDQ1OWY2YTEwNmY2ODFh
Zjg4YTM3NWUzZWU2NWY1YjJiZTM5NzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbmNsdWRl
IDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIElQQyB7CkBAIC0xMDQsMTIgKzEwNSwxMiBAQCBwdWJsaWM6CiAKICAgICBNb2RpZmll
cnMgbW9kaWZpZXJzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TW9kaWZpZXJzPihtX21v
ZGlmaWVycyk7IH0KIAotICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVzdGFtcDsgfQorICAgIFdhbGxUaW1lIHRpbWVzdGFtcCgpIGNvbnN0IHsgcmV0dXJuIG1fdGlt
ZXN0YW1wOyB9CiAKIHByb3RlY3RlZDoKICAgICBXZWJFdmVudCgpOwogCi0gICAgV2ViRXZlbnQo
VHlwZSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJFdmVudChUeXBlLCBN
b2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVu
Y29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVyJiwgV2Vi
RXZlbnQmKTsKQEAgLTExNyw3ICsxMTgsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVp
bnQzMl90IG1fdHlwZTsgLy8gVHlwZQogICAgIHVpbnQzMl90IG1fbW9kaWZpZXJzOyAvLyBNb2Rp
ZmllcnMKLSAgICBkb3VibGUgbV90aW1lc3RhbXA7CisgICAgV2FsbFRpbWUgbV90aW1lc3RhbXA7
CiB9OwogCiAvLyBGSVhNRTogTW92ZSB0aGlzIGNsYXNzIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUu
CkBAIC0xMzUsOSArMTM2LDkgQEAgcHVibGljOgogICAgIFdlYk1vdXNlRXZlbnQoKTsKIAogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBj
bGlja0NvdW50LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3lu
dGhldGljQ2xpY2tUeXBlID0gTm9UYXAsIGludCBldmVudE51bWJlciA9IC0xLCBpbnQgbWVudVR5
cGUgPSAwKTsKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0Nv
dW50LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0
aWNDbGlja1R5cGUgPSBOb1RhcCwgaW50IGV2ZW50TnVtYmVyID0gLTEsIGludCBtZW51VHlwZSA9
IDApOwogI2Vsc2UKLSAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlj
a0NvdW50LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSA9IDAsIFN5
bnRoZXRpY0NsaWNrVHlwZSA9IE5vVGFwKTsKKyAgICBXZWJNb3VzZUV2ZW50KFR5cGUsIEJ1dHRv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBk
ZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91
YmxlIGZvcmNlID0gMCwgU3ludGhldGljQ2xpY2tUeXBlID0gTm9UYXApOwogI2VuZGlmCiAKICAg
ICBCdXR0b24gYnV0dG9uKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QnV0dG9uPihtX2J1
dHRvbik7IH0KQEAgLTE5NywxMSArMTk4LDExIEBAIHB1YmxpYzoKIAogICAgIFdlYldoZWVsRXZl
bnQoKSB7IH0KIAotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYg
d2hlZWxUaWNrcywgR3JhbnVsYXJpdHksIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7Cisg
ICAgV2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBH
cmFudWxhcml0eSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hl
ZWxUaWNrcywgR3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQ
aGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFz
LCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2Vs
ZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CisgICAg
V2ViV2hlZWxFdmVudChUeXBlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBkZWx0YSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB3aGVlbFRpY2tzLCBHcmFu
dWxhcml0eSwgYm9vbCBkaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UsIFBoYXNlLCBQaGFzZSBt
b21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMsIHVpbnQzMl90IHNj
cm9sbENvdW50LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxp
bmdEZWx0YSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VsaWYgUExBVEZPUk0o
R1RLKQotICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgd2hlZWxU
aWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFyaXR5LCBNb2RpZmllcnMs
IGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYldoZWVsRXZlbnQoVHlwZSwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgd2hlZWxUaWNrcywgUGhhc2UsIFBoYXNlIG1vbWVudHVtUGhhc2UsIEdyYW51bGFy
aXR5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZW5kaWYKIAogICAgIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbjsg
fQpAQCAtMjUwLDEzICsyNTEsMTMgQEAgcHVibGljOgogICAgIH5XZWJLZXlib2FyZEV2ZW50KCk7
CiAKICNpZiBVU0UoQVBQS0lUKQotICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29s
IGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJv
YXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZp
ZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYsIGJvb2wgaXNBdXRvUmVw
ZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1l
IHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShHVEspCi0gICAgV2ViS2V5Ym9hcmRFdmVudChU
eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5
Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9k
LCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIGRv
dWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4m
JiBjb21tYW5kcywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXAp
OwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGlu
dCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1h
Y0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3Rl
bUtleSwgTW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKKyAgICBXZWJLZXlib2FyZEV2ZW50
KFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwg
Y29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJ
ZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtl
eUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQs
IGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKTsKICNlbHNl
Ci0gICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdp
bmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hh
ckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5
LCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYktleWJvYXJkRXZlbnQoVHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwg
Ym9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApOwogI2VuZGlmCiAKICAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVy
biBtX3RleHQ7IH0KQEAgLTM4Miw3ICszODMsNyBAQCBwcml2YXRlOgogY2xhc3MgV2ViVG91Y2hF
dmVudCA6IHB1YmxpYyBXZWJFdmVudCB7CiBwdWJsaWM6CiAgICAgV2ViVG91Y2hFdmVudCgpIHsg
fQotICAgIFdlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlm
aWVycywgZG91YmxlIHRpbWVzdGFtcCwgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2lu
dD4mIHRvdWNoUG9pbnRzLCBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbiwgYm9vbCBpc1BvdGVu
dGlhbFRhcCwgYm9vbCBpc0dlc3R1cmUsIGZsb2F0IGdlc3R1cmVTY2FsZSwgZmxvYXQgZ2VzdHVy
ZVJvdGF0aW9uKQorICAgIFdlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlwZSwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBjb25zdCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYgdG91Y2hQb2ludHMsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBi
b29sIGlzUG90ZW50aWFsVGFwLCBib29sIGlzR2VzdHVyZSwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBm
bG9hdCBnZXN0dXJlUm90YXRpb24pCiAgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJz
LCB0aW1lc3RhbXApCiAgICAgICAgICwgbV90b3VjaFBvaW50cyh0b3VjaFBvaW50cykKICAgICAg
ICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQpAQCAtNDcxLDcgKzQ3Miw3IEBAIHByaXZhdGU6CiBj
bGFzcyBXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYkV2ZW50IHsKIHB1YmxpYzoKICAgICBXZWJU
b3VjaEV2ZW50KCkgeyB9Ci0gICAgV2ViVG91Y2hFdmVudChUeXBlLCBWZWN0b3I8V2ViUGxhdGZv
cm1Ub3VjaFBvaW50PiYmLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOworICAgIFdlYlRv
dWNoRXZlbnQoVHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mJiwgTW9kaWZpZXJz
LCBXYWxsVGltZSB0aW1lc3RhbXApOwogCiAgICAgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91
Y2hQb2ludD4mIHRvdWNoUG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBvaW50czsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IGViNDc3MWZk
YTUzNjhlN2ZhZDJhZDJmMTc0YzQ0NzJiNTI2YTI2ZmMuLjBjZjI3MTk5NjIxY2Y2ZGVkYTBlYTRl
ZDY2MDNhOTE5NmUxY2VlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktl
eWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCkBAIC0zNyw3ICszNyw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZl
bnQoKQogCiAjaWYgVVNFKEFQUEtJVCkKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRF
dmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlm
aWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3Ry
aW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZl
VmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhv
ZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzLCBib29s
IGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJz
IG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCkKK1dlYktleWJvYXJkRXZlbnQ6OldlYktleWJv
YXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5t
b2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcywg
Ym9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9k
aWZpZWRUZXh0KHVubW9kaWZpZWRUZXh0KQpAQCAtNjIsNyArNjIsNyBAQCBXZWJLZXlib2FyZEV2
ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25z
dCBTdHJpbmcmCiAKICNlbGlmIFBMQVRGT1JNKEdUSykKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2Vi
S2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29uc3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBp
bnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmlydHVhbEtleUNvZGUsIGJvb2wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIFZlY3RvcjxTdHJpbmc+JiYgY29tbWFuZHMsIGJvb2wgaXNL
ZXlwYWQsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApCitXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5k
cywgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1w
KQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgLCBtX3Rl
eHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodGV4dCkKQEAgLTgzLDcgKzgzLDcgQEAg
V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogCiAjZWxpZiBQTEFURk9STShJT1MpCiAKLVdlYktleWJv
YXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0
dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJv
b2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmll
cnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQorV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5
Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1
bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgY29kZSwgY29u
c3QgU3RyaW5nJiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQg
bmF0aXZlVmlydHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQs
IGJvb2wgaXNLZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIFdh
bGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0
YW1wKQogICAgICwgbV90ZXh0KHRleHQpCiAgICAgLCBtX3VubW9kaWZpZWRUZXh0KHVubW9kaWZp
ZWRUZXh0KQpAQCAtMTA2LDcgKzEwNiw3IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJk
RXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKIAogI2Vs
c2UKIAotV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0
IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5n
JiBrZXlJZGVudGlmaWVyLCBpbnQgd2luZG93c1ZpcnR1YWxLZXlDb2RlLCBpbnQgbmF0aXZlVmly
dHVhbEtleUNvZGUsIGludCBtYWNDaGFyQ29kZSwgYm9vbCBpc0F1dG9SZXBlYXQsIGJvb2wgaXNL
ZXlwYWQsIGJvb2wgaXNTeXN0ZW1LZXksIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJp
bmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVW
aXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBp
c0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUg
dGltZXN0YW1wKQogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAg
ICAgLCBtX3RleHQodGV4dCkKICAgICAsIG1fdW5tb2RpZmllZFRleHQodW5tb2RpZmllZFRleHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCmluZGV4IDhkYThkM2ZlODMzNjBh
NTcwZmRjNDcyMzgyNzlmMTlkYWEwNWYzODkuLjBmNzdmYWUzZDBkZjc4Yjc1M2RlYzU4OWYwODVj
NzZlYWZiZmI4MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC00
Nyw5ICs0Nyw5IEBAIFdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoKQogfQogCiAjaWYgUExB
VEZPUk0oTUFDKQotV2ViTW91c2VFdmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRv
biBidXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBmbG9hdCBkZWx0YVgsIGZsb2F0IGRlbHRhWSwgZmxvYXQgZGVsdGFaLCBpbnQg
Y2xpY2tDb3VudCwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCwgZG91Ymxl
IGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBpbnQgZXZlbnRO
dW1iZXIsIGludCBtZW51VHlwZSkKK1dlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0
eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBv
aW50JiBnbG9iYWxQb3NpdGlvbiwgZmxvYXQgZGVsdGFYLCBmbG9hdCBkZWx0YVksIGZsb2F0IGRl
bHRhWiwgaW50IGNsaWNrQ291bnQsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBl
LCBpbnQgZXZlbnROdW1iZXIsIGludCBtZW51VHlwZSkKICNlbHNlCi1XZWJNb3VzZUV2ZW50OjpX
ZWJNb3VzZUV2ZW50KFR5cGUgdHlwZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxv
YXQgZGVsdGFZLCBmbG9hdCBkZWx0YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgZm9yY2UsIFN5bnRoZXRpY0NsaWNrVHlwZSBz
eW50aGV0aWNDbGlja1R5cGUpCitXZWJNb3VzZUV2ZW50OjpXZWJNb3VzZUV2ZW50KFR5cGUgdHlw
ZSwgQnV0dG9uIGJ1dHRvbiwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2lu
dCYgZ2xvYmFsUG9zaXRpb24sIGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZLCBmbG9hdCBkZWx0
YVosIGludCBjbGlja0NvdW50LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkK
ICNlbmRpZgogICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAg
LCBtX2J1dHRvbihidXR0b24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJU
b3VjaEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCmlu
ZGV4IGI5YWFjYmFmNmU3ZDA3YWQ5Yzk3ZjMzZjUzMDAzNDUyYmQ3OTJjYWYuLjdhZWEwZTczZDlj
NTU2YTYyNzc3MTM3ZDQyNzIzYjA3MWVkZGVhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlRv
dWNoRXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1X
ZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIFZlY3RvcjxX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYgdG91Y2hQb2ludHMsIE1vZGlmaWVycyBtb2RpZmllcnMs
IGRvdWJsZSB0aW1lc3RhbXApCitXZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2ZW50KFdlYkV2ZW50
OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYgdG91Y2hQb2ludHMs
IE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50
KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV90b3VjaFBvaW50cyhXVEZNb3Zl
KHRvdWNoUG9pbnRzKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYldo
ZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKaW5k
ZXggMTNmZTQ4ZGU5OWQ5OGRjOWY2ZWFhYmY2Zjg0NTJjZmFiMTQ0ZDI0ZC4uNGUxM2U4OTY1MjFj
MzRjOGUxYmMzYzczY2M4ZjIzYTUyNDU5ZjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViV2hl
ZWxFdmVudC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgeyAgICAKIAotV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChU
eXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2Jh
bFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVs
VGlja3MsIEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3Vi
bGUgdGltZXN0YW1wKQorV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBj
b25zdCBGbG9hdFNpemUmIGRlbHRhLCBjb25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3Rh
bXApCiAgICAgOiBXZWJFdmVudCh0eXBlLCBtb2RpZmllcnMsIHRpbWVzdGFtcCkKICAgICAsIG1f
cG9zaXRpb24ocG9zaXRpb24pCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvc2l0aW9u
KQpAQCAtNTAsNyArNTAsNyBAQCBXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlw
ZSwgY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludAogfQogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi1XZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29u
c3QgSW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNv
bnN0IEZsb2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVs
YXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFz
ZSBwaGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVs
dGFzLCB1aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFj
Y2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1l
c3RhbXApCitXZWJXaGVlbEV2ZW50OjpXZWJXaGVlbEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIGNvbnN0IEZs
b2F0U2l6ZSYgZGVsdGEsIGNvbnN0IEZsb2F0U2l6ZSYgd2hlZWxUaWNrcywgR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGJvb2wgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBQaGFzZSBwaGFz
ZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzLCB1
aW50MzJfdCBzY3JvbGxDb3VudCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2VsZXJh
dGVkU2Nyb2xsaW5nRGVsdGEsIE1vZGlmaWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFt
cCkKICAgICA6IFdlYkV2ZW50KHR5cGUsIG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9w
b3NpdGlvbihwb3NpdGlvbikKICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24p
CkBAIC02Nyw3ICs2Nyw3IEBAIFdlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBl
LCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50CiAgICAgQVNTRVJUKGlz
V2hlZWxFdmVudFR5cGUodHlwZSkpOwogfQogI2VsaWYgUExBVEZPUk0oR1RLKQotV2ViV2hlZWxF
dmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwg
Y29uc3QgSW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCBjb25zdCBGbG9hdFNpemUmIGRlbHRhLCBj
b25zdCBGbG9hdFNpemUmIHdoZWVsVGlja3MsIFBoYXNlIHBoYXNlLCBQaGFzZSBtb21lbnR1bVBo
YXNlLCBHcmFudWxhcml0eSBncmFudWxhcml0eSwgTW9kaWZpZXJzIG1vZGlmaWVycywgZG91Ymxl
IHRpbWVzdGFtcCkKK1dlYldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgY29u
c3QgRmxvYXRTaXplJiBkZWx0YSwgY29uc3QgRmxvYXRTaXplJiB3aGVlbFRpY2tzLCBQaGFzZSBw
aGFzZSwgUGhhc2UgbW9tZW50dW1QaGFzZSwgR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCkKICAgICA6IFdlYkV2ZW50KHR5cGUs
IG1vZGlmaWVycywgdGltZXN0YW1wKQogICAgICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAs
IG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCmluZGV4IDY4ZDZkMzg4NTlhMDIwNzNlOThhN2M4YTdl
ZTYyNmUzMDlhZGQ1ZGIuLmJjZWEzMjlkMjI4M2NhOTg0NTY2NjM3YTFkOGQ3NWQ1MTYwODRhOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0x
NDAsNyArMTQwLDcgQEAgV2ViTW91c2VFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1v
dXNlRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50LCBpbnQgY3UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAwIC8qIGRlbHRhWiAqLywKICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50
Q2xpY2tDb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnNGb3JFdmVudChl
dmVudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGdk
a19ldmVudF9nZXRfdGltZShldmVudCkpKTsKIH0KIAogV2ViV2hlZWxFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgR2RrRXZlbnQqIGV2ZW50KQpAQCAtMjEw
LDcgKzIxMCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwgV2ViV2hlCiAgICAgICAgIG1vbWVudHVtUGhh
c2UsCiAgICAgICAgIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50LAogICAg
ICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCksCi0gICAgICAgIGdka19ldmVudF9nZXRfdGlt
ZShldmVudCkpOworICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dl
dF90aW1lKGV2ZW50KSkpOwogfQogCiBXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIGNvbnN0IFdlYkNv
cmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYgY29tcG9zaXRpb25SZXN1bHRzLCBWZWN0b3I8U3RyaW5n
PiYmIGNvbW1hbmRzKQpAQCAtMjI3LDcgKzIyNyw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEdka0V2ZW50KiBldmVudCwK
ICAgICAgICAgV1RGTW92ZShjb21tYW5kcyksCiAgICAgICAgIGlzR2RrS2V5Q29kZUZyb21LZXlQ
YWQoZXZlbnQtPmtleS5rZXl2YWwpLAogICAgICAgICBtb2RpZmllcnNGb3JFdmVudChldmVudCks
Ci0gICAgICAgIGdka19ldmVudF9nZXRfdGltZShldmVudCkpOworICAgICAgICBXYWxsVGltZTo6
ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkpOwogfQogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKQEAgLTI0OSw3ICsyNDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChjb25zdCBHZGtFdmVudCogZXZlbnQsIFZl
Y3RvcgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICByZXR1cm4g
V2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZl
bnQoZXZlbnQpLCBnZGtfZXZlbnRfZ2V0X3RpbWUoZXZlbnQpKTsKKyAgICByZXR1cm4gV2ViVG91
Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgbW9kaWZpZXJzRm9yRXZlbnQoZXZl
bnQpLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZ2RrX2V2ZW50X2dldF90aW1lKGV2ZW50KSkp
OwogI2Vsc2UKICAgICByZXR1cm4gV2ViVG91Y2hFdmVudCgpOwogI2VuZGlmIC8vIEdUS19BUElf
VkVSU0lPTl8yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvTmF0aXZlV2Vi
VG91Y2hFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3Vj
aEV2ZW50SU9TLm1tCmluZGV4IDY4ZTBlNmNhZmRmNWRjNTVhZjg3ZGE4MzgzYTE3ZjUzZmIxOTZj
ZDUuLjdmYzc3N2UxZjIwZjgyODlhMTk0NWYzOGJlZmNkNjk2ZTAyZmFmYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9OYXRpdmVXZWJUb3VjaEV2ZW50SU9TLm1tCkBAIC0x
MjIsNyArMTIyLDcgQEAgTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudChj
b25zdCBfVUlXZWJUb3VjaEV2ZW50KiBldmVudCkKICAgICA6IFdlYlRvdWNoRXZlbnQoCiAgICAg
ICAgIHdlYkV2ZW50VHlwZUZvclVJV2ViVG91Y2hFdmVudFR5cGUoZXZlbnQtPnR5cGUpLAogICAg
ICAgICBzdGF0aWNfY2FzdDxNb2RpZmllcnM+KDApLAotICAgICAgICBldmVudC0+dGltZXN0YW1w
LAorICAgICAgICBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoZXZlbnQtPnRpbWVzdGFtcCksCiAg
ICAgICAgIGV4dHJhY3RXZWJUb3VjaFBvaW50KGV2ZW50KSwKICAgICAgICAgcG9zaXRpb25Gb3JD
R1BvaW50KGV2ZW50LT5sb2NhdGlvbkluRG9jdW1lbnRDb29yZGluYXRlcyksCiAjaWYgZGVmaW5l
ZCBVSV9XRUJfVE9VQ0hfRVZFTlRfSEFTX0lTX1BPVEVOVElBTF9UQVAgJiYgVUlfV0VCX1RPVUNI
X0VWRU5UX0hBU19JU19QT1RFTlRJQUxfVEFQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9z
L1dlYklPU0V2ZW50RmFjdG9yeS5tbQppbmRleCA0ZTAyNTliZGFlNzE3NTQ3NTZiZmEyYTNlNjlh
Yzk4NWYwNzNhODVlLi45MGZiYzI4YTY3ODM4NTU2MGM4YzkzZTg2YzYxMzcwMzEwMzRiYzdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvV2ViSU9TRXZlbnRGYWN0b3J5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9XZWJJT1NFdmVudEZhY3RvcnkubW0KQEAg
LTg1LDcgKzg1LDcgQEAgV2ViS2l0OjpXZWJLZXlib2FyZEV2ZW50IFdlYklPU0V2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICoKICAgICAgICAgdW5tb2RpZmll
ZFRleHQgPSB0ZXh0OwogICAgIH0KIAotICAgIHJldHVybiBXZWJLaXQ6OldlYktleWJvYXJkRXZl
bnQodHlwZSwgdGV4dCwgdW5tb2RpZmllZFRleHQsIGtleSwgY29kZSwga2V5SWRlbnRpZmllciwg
d2luZG93c1ZpcnR1YWxLZXlDb2RlLCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgbWFjQ2hhckNvZGUs
IGF1dG9SZXBlYXQsIGlzS2V5cGFkLCBpc1N5c3RlbUtleSwgbW9kaWZpZXJzLCB0aW1lc3RhbXAp
OworICAgIHJldHVybiBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQodHlwZSwgdGV4dCwgdW5tb2Rp
ZmllZFRleHQsIGtleSwgY29kZSwga2V5SWRlbnRpZmllciwgd2luZG93c1ZpcnR1YWxLZXlDb2Rl
LCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgbWFjQ2hhckNvZGUsIGF1dG9SZXBlYXQsIGlzS2V5cGFk
LCBpc1N5c3RlbUtleSwgbW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZXN0
YW1wKSk7CiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9tYWMvTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL05hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbQppbmRleCAzYjU1Y2U4
MDkyZmRhM2NhMmE5ODYyMDNlMDE4MmI2NTY1MTlhMjM4Li4wYzQ1YmZmYjFmNjRhNDJkZjVlMzhj
NmYyOWRkZWVmZGM0OWQ4Y2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMv
TmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9OYXRpdmVXZWJHZXN0dXJlRXZlbnRNYWMubW0KQEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQg
IldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXZWJHZXN0dXJlRXZlbnQuaCIKICNpbXBvcnQgPFdlYkNv
cmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNjMsNyArNjMsNyBAQCBOYXRpdmVXZWJHZXN0dXJlRXZlbnQ6Ok5hdGl2ZVdlYkdlc3R1cmVF
dmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp2aWV3KQogICAgIDogV2ViR2VzdHVyZUV2ZW50
KAogICAgICAgICB3ZWJFdmVudFR5cGVGb3JOU0V2ZW50KGV2ZW50KSwKICAgICAgICAgc3RhdGlj
X2Nhc3Q8TW9kaWZpZXJzPigwKSwKLSAgICAgICAgZXZlbnQudGltZXN0YW1wLAorICAgICAgICBX
ZWJDb3JlOjpldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCksCiAgICAgICAgIFdlYkNvcmU6
OkludFBvaW50KHBvaW50Rm9yRXZlbnQoZXZlbnQsIHZpZXcpKSwKICAgICAgICAgZXZlbnQudHlw
ZSA9PSBOU0V2ZW50VHlwZU1hZ25pZnkgPyBldmVudC5tYWduaWZpY2F0aW9uIDogMCwKICAgICAg
ICAgZXZlbnQudHlwZSA9PSBOU0V2ZW50VHlwZVJvdGF0ZSA/IGV2ZW50LnJvdGF0aW9uIDogMCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJFdmVudEZhY3RvcnkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViRXZlbnRGYWN0b3J5Lm1tCmluZGV4IDBkYjNi
ZThjNjQ3NGM3NjMyOTg1ZmUzZWEyMjE1YjQ4YzZhZmMwNWIuLjlkODU1OTRhMzY2YzY1ZGYyZmNk
MTdmM2QwODVmMTNlMWQ2MTNlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9XZWJFdmVudEZhY3RvcnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkV2
ZW50RmFjdG9yeS5tbQpAQCAtMzYwLDcgKzM2MCw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KE5TRXZlbnQgKmV2ZW50LCBOU0V2ZW50ICpsYXN0
CiAgICAgZmxvYXQgZGVsdGFaID0gW2V2ZW50IGRlbHRhWl07CiAgICAgaW50IGNsaWNrQ291bnQg
PSBjbGlja0NvdW50Rm9yRXZlbnQoZXZlbnQpOwogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9k
aWZpZXJzID0gbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpOwotICAgIGRvdWJsZSB0aW1lc3RhbXAg
PSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0byB0aW1lc3RhbXAgPSBl
dmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CiAgICAgaW50IGV2ZW50TnVtYmVyID0gW2V2
ZW50IGV2ZW50TnVtYmVyXTsKICAgICBpbnQgbWVudVR5cGVGb3JFdmVudCA9IHR5cGVGb3JFdmVu
dChldmVudCk7CiAKQEAgLTQxOCw3ICs0MTgsNyBAQCBXZWJXaGVlbEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChOU0V2ZW50ICpldmVudCwgTlNWaWV3ICp3aW5kbwog
ICAgIH0KIAogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgICAgICAgICA9IG1v
ZGlmaWVyc0ZvckV2ZW50KGV2ZW50KTsKLSAgICBkb3VibGUgdGltZXN0YW1wICAgICAgICAgICAg
ICAgICAgICAgICAgPSBldmVudFRpbWVTdGFtcFNpbmNlMTk3MChldmVudCk7CisgICAgYXV0byB0
aW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5
NzAoZXZlbnQpOwogICAgIAogICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVl
bCwgSW50UG9pbnQocG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQb3NpdGlvbiksIEZsb2F0U2l6
ZShkZWx0YVgsIGRlbHRhWSksIEZsb2F0U2l6ZSh3aGVlbFRpY2tzWCwgd2hlZWxUaWNrc1kpLCBn
cmFudWxhcml0eSwgZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlLCBwaGFzZSwgbW9tZW50dW1Q
aGFzZSwgaGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcywgc2Nyb2xsQ291bnQsIHVuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApOwogfQpAQCAtNDM4LDcgKzQz
OCw3IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2Fy
ZEV2ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGhhCiAgICAgYm9vbCBpc0tleXBhZCAgICAgICAg
ICAgICAgICAgICA9IGlzS2V5cGFkRXZlbnQoZXZlbnQpOwogICAgIGJvb2wgaXNTeXN0ZW1LZXkg
ICAgICAgICAgICAgICAgPSBmYWxzZTsgLy8gU3lzdGVtS2V5IGlzIGFsd2F5cyBmYWxzZSBvbiB0
aGUgTWFjLgogICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzICAgPSBtb2RpZmllcnNG
b3JFdmVudChldmVudCk7Ci0gICAgZG91YmxlIHRpbWVzdGFtcCAgICAgICAgICAgICAgICA9IGV2
ZW50VGltZVN0YW1wU2luY2UxOTcwKGV2ZW50KTsKKyAgICBhdXRvIHRpbWVzdGFtcCAgICAgICAg
ICAgICAgICAgID0gZXZlbnRUaW1lU3RhbXBTaW5jZTE5NzAoZXZlbnQpOwogCiAgICAgLy8gQWx3
YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJuIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtp
dCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIEVudGVyLgogICAgIGlmICh3aW5kb3dzVmlydHVh
bEtleUNvZGUgPT0gVktfUkVUVVJOKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViR2VzdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViR2Vz
dHVyZUV2ZW50LmgKaW5kZXggYmM2OGJhNTI3YTVlYzgyZDMwOGI4MzBmNmJlYmU4YzBmMjAwYzM5
NC4uYjZmOWM2OGRiMDNhNWE1ZmJiNjk1YjJiYzFjYzMxNGU4YzU1YzI4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYkdlc3R1cmVFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL21hYy9XZWJHZXN0dXJlRXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdlc3R1cmVFdmVudCA6IHB1YmxpYyBXZWJFdmVudCB7
CiBwdWJsaWM6CiAgICAgV2ViR2VzdHVyZUV2ZW50KCkgeyB9Ci0gICAgV2ViR2VzdHVyZUV2ZW50
KFdlYkV2ZW50OjpUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lc3Rh
bXAsIFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBmbG9hdCBnZXN0dXJlU2NhbGUsIGZsb2F0
IGdlc3R1cmVSb3RhdGlvbikKKyAgICBXZWJHZXN0dXJlRXZlbnQoV2ViRXZlbnQ6OlR5cGUgdHlw
ZSwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wLCBXZWJDb3JlOjpJbnRQ
b2ludCBwb3NpdGlvbiwgZmxvYXQgZ2VzdHVyZVNjYWxlLCBmbG9hdCBnZXN0dXJlUm90YXRpb24p
CiAgICAgICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCiAgICAgICAg
ICwgbV9wb3NpdGlvbihwb3NpdGlvbikKICAgICAgICAgLCBtX2dlc3R1cmVTY2FsZShnZXN0dXJl
U2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCmlu
ZGV4IGUwYWM2ZWY4NWE5NGE3MmIyMmVlZGUwNzA2ODljNzJmNWNlZWY5NzYuLjk0NzQxMzA2NjMz
YTgzYTk0ZTQwZGM4MGU0NWI5OWQ5OWU1YjE3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC04MSw3ICs4MSw3IEBAIFdlYktleWJvYXJkRXZl
bnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5w
dXRfa2V5Ym9hCiAgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAogICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlf
Y29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwg
ZXZlbnQpLAogICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwK
LSAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7CisgICAgICAg
IG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50
LT50aW1lKSk7CiB9CiAKIFdlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJN
b3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKQpAQCAtMTE5LDcgKzExOSw3IEBAIFdlYk1vdXNlRXZlbnQgV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVuCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsK
ICAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwogICAgIHJldHVybiBX
ZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRpb24sIHBvc2l0aW9uLAotICAgICAgICAw
LCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwg
ZXZlbnQtPnRpbWUpOworICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxX
ZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKGV2ZW50LT50
aW1lKSk7CiB9CiAKIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQpAQCAtMTU0LDcgKzE1NCw3IEBAIFdlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCoKICAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwogICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgcmV0dXJuIFdlYldoZWVs
RXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCi0gICAgICAgIGRlbHRh
LCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3Rh
dGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKKyAgICAgICAg
ZGVsdGEsIHdoZWVsVGlja3MsIFdlYldoZWVsRXZlbnQ6OlNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50
LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKGV2ZW50LT50aW1lKSk7CiB9CiAKIHN0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50
SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKQEAgLTIw
OSw3ICsyMDksNyBAQCBXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91
Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KgogICAgICAgICAgICAgICAgIHBv
aW50Q29vcmRpbmF0ZXMsIHBvaW50Q29vcmRpbmF0ZXMpKTsKICAgICB9CiAKLSAgICByZXR1cm4g
V2ViVG91Y2hFdmVudCh0eXBlLCBXVEZNb3ZlKHRvdWNoUG9pbnRzKSwgV2ViRXZlbnQ6Ok1vZGlm
aWVycygwKSwgZXZlbnQtPnRpbWUpOworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdU
Rk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHMoZXZlbnQtPnRpbWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDVkZjNkZmMzZTZlMjBiNGYzOWIxZGY1OTg0
NDQ1YWY2MThkNGMwYmYuLjA3ZWRhYmZiNmZjN2ZmY2FmMmYwNzY1NThmZmE0YzUwOWE4MjUzMDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC00NzgsMTcgKzQ3OCwxNyBAQCB2b2lk
IFdLQnVuZGxlUGFnZUZvcmNlUmVwYWludChXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIAogdm9pZCBX
S0J1bmRsZVBhZ2VTaW11bGF0ZU1vdXNlRG93bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgaW50IGJ1
dHRvbiwgV0tQb2ludCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMg
bW9kaWZpZXJzLCBkb3VibGUgdGltZSkKIHsKLSAgICB0b0ltcGwocGFnZSktPnNpbXVsYXRlTW91
c2VEb3duKGJ1dHRvbiwgdG9JbnRQb2ludChwb3NpdGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVy
cywgdGltZSk7CisgICAgdG9JbXBsKHBhZ2UpLT5zaW11bGF0ZU1vdXNlRG93bihidXR0b24sIHRv
SW50UG9pbnQocG9zaXRpb24pLCBjbGlja0NvdW50LCBtb2RpZmllcnMsIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2ltdWxhdGVNb3VzZVVw
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgYnV0dG9uLCBXS1BvaW50IHBvc2l0aW9uLCBpbnQg
Y2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJsZSB0aW1lKQogewot
ICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVNb3VzZVVwKGJ1dHRvbiwgdG9JbnRQb2ludChwb3Np
dGlvbiksIGNsaWNrQ291bnQsIG1vZGlmaWVycywgdGltZSk7CisgICAgdG9JbXBsKHBhZ2UpLT5z
aW11bGF0ZU1vdXNlVXAoYnV0dG9uLCB0b0ludFBvaW50KHBvc2l0aW9uKSwgY2xpY2tDb3VudCwg
bW9kaWZpZXJzLCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHModGltZSkpOwogfQogCiB2b2lkIFdL
QnVuZGxlUGFnZVNpbXVsYXRlTW91c2VNb3Rpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLUG9p
bnQgcG9zaXRpb24sIGRvdWJsZSB0aW1lKQogewotICAgIHRvSW1wbChwYWdlKS0+c2ltdWxhdGVN
b3VzZU1vdGlvbih0b0ludFBvaW50KHBvc2l0aW9uKSwgdGltZSk7CisgICAgdG9JbXBsKHBhZ2Up
LT5zaW11bGF0ZU1vdXNlTW90aW9uKHRvSW50UG9pbnQocG9zaXRpb24pLCBXYWxsVGltZTo6ZnJv
bVJhd1NlY29uZHModGltZSkpOwogfQogCiB1aW50NjRfdCBXS0J1bmRsZVBhZ2VHZXRSZW5kZXJU
cmVlU2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRXZlbnQuY3BwCmluZGV4IDI2MThmZTZjMmVmODU2NmVlMjczYzZhNzM4ZjAzMTA2
YzYyMjI5OWIuLmU3ZWQ3ZDg0NGM2YWU2NTZjY2M3YzkzNzAxNmM3M2RlZWM5MzJjM2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcApAQCAtMzYxLDcgKzM2MSw3
IEBAIGd1aW50MzIgd2Via2l0X2RvbV9ldmVudF9nZXRfdGltZV9zdGFtcChXZWJLaXRET01FdmVu
dCogc2VsZikKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FVkVOVChzZWxmKSwgMCk7CiAgICAg
V2ViQ29yZTo6RXZlbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ3VpbnQzMiBy
ZXN1bHQgPSBpdGVtLT50aW1lU3RhbXAoKTsKKyAgICBndWludDMyIHJlc3VsdCA9IGl0ZW0tPnRp
bWVTdGFtcCgpLmFwcHJveGltYXRlV2FsbFRpbWUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2Nh
cGVQbHVnaW5YMTEuY3BwCmluZGV4IGRiMjQ1Y2NkNGZiNjcyMjlhYzE5MmEzZTFhZDBkNzA5MmZh
ODUzYzIuLjlhNTE2MzRiZGUwNmQ4NGNjOWE0YjVjZDgzM2MzNDg0YTc4YTgxOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2Fw
ZVBsdWdpblgxMS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcApAQCAtMzIxLDkgKzMyMSw5IEBAIHN0YXRp
YyBpbmxpbmUgdm9pZCBpbml0aWFsaXplWEV2ZW50KFhFdmVudCYgZXZlbnQpCiAgICAgZXZlbnQu
eGFueS53aW5kb3cgPSAwOwogfQogCi1zdGF0aWMgaW5saW5lIHVpbnQ2NF90IHhUaW1lU3RhbXAo
ZG91YmxlIHRpbWVzdGFtcEluU2Vjb25kcykKK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgeFRpbWVT
dGFtcChXYWxsVGltZSB0aW1lc3RhbXApCiB7Ci0gICAgcmV0dXJuIHRpbWVzdGFtcEluU2Vjb25k
cyAqIDEwMDA7CisgICAgcmV0dXJuIHRpbWVzdGFtcC5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpOwogfQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHhLZXlNb2RpZmllcnMoY29u
c3QgV2ViRXZlbnQmIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggYWZjZmZhNTE3NDViMjViOWU3NDA0MjgzMDdmYWNl
ZDU0OGRlY2FhMS4uODZmZTM2YjFmZmQ4YWQwY2VmZTI1YWQ0ZDdlOGNhNDUxOGM2YTg5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
CkBAIC0xNTc2LDcgKzE1NzYsNyBAQCBib29sIFBERlBsdWdpbjo6c2hvd0NvbnRleHRNZW51QXRQ
b2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcg
PSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+dmlldygpOwogICAgIEludFBvaW50IGNvbnRlbnRz
UG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhwb2ludCk7Ci0gICAgV2ViTW91
c2VFdmVudCBldmVudChXZWJFdmVudDo6TW91c2VEb3duLCBXZWJNb3VzZUV2ZW50OjpSaWdodEJ1
dHRvbiwgY29udGVudHNQb2ludCwgY29udGVudHNQb2ludCwgMCwgMCwgMCwgMSwgc3RhdGljX2Nh
c3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
LCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2spOworICAgIFdlYk1vdXNlRXZlbnQgZXZlbnQoV2ViRXZl
bnQ6Ok1vdXNlRG93biwgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b24sIGNvbnRlbnRzUG9pbnQs
IGNvbnRlbnRzUG9pbnQsIDAsIDAsIDAsIDEsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljayk7CiAgICAgcmV0
dXJuIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IGE2NDhmN2VhYmZlYmVl
ZDBhNmU3NWU4NmM2MmUwYjRhMmMxY2NkNTMuLmVjZDU2N2ZjYzNjNWRlNTJhNTBhODI4ZjZlNjg0
NTM1ODEyM2YyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCkBAIC04OTcsNyArODk3LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYkV2ZW50
PiBQbHVnaW5WaWV3OjpjcmVhdGVXZWJFdmVudChNb3VzZUV2ZW50JiBldmVudCkgY29uc3QKICAg
ICBpZiAoZXZlbnQubWV0YUtleSgpKQogICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1l
dGFLZXk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBl
LCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZz
ZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAw
LCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMp
LCAwLCAwKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJNb3VzZUV2ZW50Pih0eXBl
LCBidXR0b24sIG1fcGx1Z2luLT5jb252ZXJ0VG9Sb290VmlldyhJbnRQb2ludChldmVudC5vZmZz
ZXRYKCksIGV2ZW50Lm9mZnNldFkoKSkpLCBldmVudC5zY3JlZW5Mb2NhdGlvbigpLCAwLCAwLCAw
LCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMp
LCBXYWxsVGltZSB7IH0sIDApOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2
ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggMGVhYmU2NTk5MGQ5MTdlMWQ5MWQ5MWUyYjllNGZiMzBkODQyYjE1YS4uZmY4YmI5
ODA0MDUwMWMxOTIwMDQwM2NlNGY0OWIzNTk4MjI0YjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEyODEsNyArMTI4MSw3IEBAIHZvaWQg
V2ViUGFnZTo6bmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5n
JiB1cmwsIEludFBvaW50IGRvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IGludCBzaW5n
bGVDbGljayA9IDE7Ci0gICAgUmVmUHRyPE1vdXNlRXZlbnQ+IG1vdXNlRXZlbnQgPSBNb3VzZUV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZlbnQsIHRydWUsIHRydWUsIGN1cnJlbnRU
aW1lKCksIG51bGxwdHIsIHNpbmdsZUNsaWNrLCBzY3JlZW5Qb2ludC54KCksIHNjcmVlblBvaW50
LnkoKSwgZG9jdW1lbnRQb2ludC54KCksIGRvY3VtZW50UG9pbnQueSgpLAorICAgIFJlZlB0cjxN
b3VzZUV2ZW50PiBtb3VzZUV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgc2lu
Z2xlQ2xpY2ssIHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpLCBkb2N1bWVudFBvaW50
LngoKSwgZG9jdW1lbnRQb2ludC55KCksCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgMCwgMCwKICNlbmRpZgpAQCAtMjE0NSwxMSArMjE0NSwxMSBAQCBXZWJDb250ZXh0TWVudSog
V2ViUGFnZTo6Y29udGV4dE1lbnVBdFBvaW50SW5XaW5kb3coY29uc3QgSW50UG9pbnQmIHBvaW50
KQogICAgIGNvcmVQYWdlKCktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29udGV4dE1l
bnUoKTsKIAogICAgIC8vIFNpbXVsYXRlIGEgbW91c2UgY2xpY2sgdG8gZ2VuZXJhdGUgdGhlIGNv
cnJlY3QgbWVudS4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VQcmVzc0V2ZW50KHBvaW50
LCBwb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgV2ViQ29yZTo6Tm9UYXApOworICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZVByZXNz
RXZlbnQocG9pbnQsIHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCBXZWJD
b3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKICAgICBjb3JlUGFnZSgpLT51c2Vy
SW5wdXRCcmlkZ2UoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VQcmVzc0V2ZW50KTsKICAg
ICBib29sIGhhbmRsZWQgPSBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5oYW5kbGVDb250
ZXh0TWVudUV2ZW50KG1vdXNlUHJlc3NFdmVudCwgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkpOwog
ICAgIGF1dG8qIG1lbnUgPSBoYW5kbGVkID8gY29udGV4dE1lbnUoKSA6IG51bGxwdHI7Ci0gICAg
UGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlUmVsZWFzZUV2ZW50KHBvaW50LCBwb2ludCwgUmlnaHRC
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6
Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VSZWxlYXNlRXZlbnQocG9pbnQs
IHBvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VB
dENsaWNrLCBXZWJDb3JlOjpOb1RhcCk7CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdl
KCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQobW91c2VSZWxlYXNlRXZlbnQpOwogCiAgICAgcmV0
dXJuIG1lbnU7CkBAIC0zNjc0LDcgKzM2NzQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYWdFbmRlZChX
ZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYgog
ICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUg
ZmFrZSBtb2RpZmllciBrZXlzIGhlcmUsIGJ1dCB0aGV5IHNob3VsZCBiZSByZWFsIG9uZXMgaW5z
dGVhZC4KLSAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRDbGllbnRQb3NpdGlv
biwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAs
IFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoYWRqdXN0ZWRD
bGllbnRQb3NpdGlvbiwgYWRqdXN0ZWRHbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxU
aW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApOwogICAgIG1fcGFnZS0+bWFpbkZyYW1lKCku
ZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIChEcmFnT3BlcmF0aW9uKW9w
ZXJhdGlvbik7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEVuZERyYWdn
aW5nKCkpOwpAQCAtNDY3MCwxNyArNDY3MCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmhhbmRsZUFsdGVy
bmF0aXZlVGV4dFVJUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0KQogfQogI2VuZGlmCiAKLXZv
aWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZURvd24oaW50IGJ1dHRvbiwgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24sIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
ZG91YmxlIHRpbWUpCit2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VEb3duKGludCBidXR0b24s
IFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlm
aWVycyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3Vz
ZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlRG93biwgc3RhdGljX2Nhc3Q8V2ViTW91c2VFdmVu
dDo6QnV0dG9uPihidXR0b24pLCBwb3NpdGlvbiwgcG9zaXRpb24sIDAsIDAsIDAsIGNsaWNrQ291
bnQsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKSwgdGlt
ZSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBXZWJNb3VzZUV2ZW50OjpOb1RhcCkpOwogfQogCi12
b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VVcChpbnQgYnV0dG9uLCBXZWJDb3JlOjpJbnRQb2lu
dCBwb3NpdGlvbiwgaW50IGNsaWNrQ291bnQsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBk
b3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZVVwKGludCBidXR0b24sIFdl
YkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdhbGxUaW1lIHRpbWUpCiB7CiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2
ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlVXAsIHN0YXRpY19jYXN0PFdlYk1vdXNlRXZlbnQ6OkJ1
dHRvbj4oYnV0dG9uKSwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCBjbGlja0NvdW50LCBz
dGF0aWNfY2FzdDxXZWJNb3VzZUV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyksIHRpbWUsIFdl
YkNvcmU6OkZvcmNlQXRDbGljaywgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uLCBk
b3VibGUgdGltZSkKK3ZvaWQgV2ViUGFnZTo6c2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJ
bnRQb2ludCBwb3NpdGlvbiwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtb3VzZUV2ZW50KFdlYk1v
dXNlRXZlbnQoV2ViTW91c2VFdmVudDo6TW91c2VNb3ZlLCBXZWJNb3VzZUV2ZW50OjpOb0J1dHRv
biwgcG9zaXRpb24sIHBvc2l0aW9uLCAwLCAwLCAwLCAwLCBXZWJNb3VzZUV2ZW50OjpNb2RpZmll
cnMoKSwgdGltZSwgMCwgV2ViTW91c2VFdmVudDo6Tm9UYXApKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MzE1NGE2MTRiOTNjMTM3ZDcyNzQ5
YjQxMWJkNTk3MjliYjdiYmI3Li5iYjFmNTEyNmQ2YmY0Mjk5YTM5Njc5ZTI1MWQzODFhZTQ0ZGQ3
NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02
Niw2ICs2Niw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgUExBVEZPUk0oR1RLKQpAQCAtODA2LDkgKzgwNyw5IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZS4KLSAgICB2b2lkIHNpbXVsYXRlTW91c2VE
b3duKGludCBidXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVu
dE1vZGlmaWVycywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZVVwKGludCBi
dXR0b24sIFdlYkNvcmU6OkludFBvaW50LCBpbnQgY2xpY2tDb3VudCwgV0tFdmVudE1vZGlmaWVy
cywgZG91YmxlIHRpbWUpOwotICAgIHZvaWQgc2ltdWxhdGVNb3VzZU1vdGlvbihXZWJDb3JlOjpJ
bnRQb2ludCwgZG91YmxlIHRpbWUpOworICAgIHZvaWQgc2ltdWxhdGVNb3VzZURvd24oaW50IGJ1
dHRvbiwgV2ViQ29yZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJz
LCBXYWxsVGltZSk7CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlVXAoaW50IGJ1dHRvbiwgV2ViQ29y
ZTo6SW50UG9pbnQsIGludCBjbGlja0NvdW50LCBXS0V2ZW50TW9kaWZpZXJzLCBXYWxsVGltZSk7
CisgICAgdm9pZCBzaW11bGF0ZU1vdXNlTW90aW9uKFdlYkNvcmU6OkludFBvaW50LCBXYWxsVGlt
ZSk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGNvbnRleHRNZW51U2hv
d2luZygpIHsgbV9pc1Nob3dpbmdDb250ZXh0TWVudSA9IHRydWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYmNkYjBi
ZjA2YTBjYTljMzlmZjVmM2M1YjRhNTI1NDU2MTJiYzA1MS4uZGJhZmExNWY4N2JhNDA3N2E3YTc1
ZmFkZGYzODVkZjQyNDM4OGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTUyOSw3ICs1MjksNyBAQCB2b2lkIFdlYlBh
Z2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUqIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29u
c3QgV2ViQ29yZTo6RgogCiAgICAgV0tCZWdpbk9ic2VydmluZ0NvbnRlbnRDaGFuZ2VzKHRydWUp
OwogCi0gICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3Vz
ZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFw
KSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNlTW92ZWQoUGxhdGZvcm1Nb3Vz
ZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTm9CdXR0
b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6Tm9U
YXApKTsKICAgICBtYWluZnJhbWUuZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwog
CiAgICAgV0tTdG9wT2JzZXJ2aW5nQ29udGVudENoYW5nZXMoKTsKQEAgLTU4MSwxMSArNTgxLDEx
IEBAIHZvaWQgV2ViUGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljayhOb2RlKiBub2RlUmVzcG9u
ZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6CiAgICAgYm9vbCB0YXBXYXNIYW5kbGVkID0gZmFs
c2U7CiAgICAgbV9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHJvdW5kZWRBZGp1c3RlZFBvaW50
OwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxl
TW91c2VQcmVzc0V2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwg
cm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJl
c3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdlYkNv
cmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFuZGxl
ZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KFBsYXRm
b3JtTW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQs
IExlZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBz
eW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxl
TW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50
LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VS
ZWxlYXNlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIFdl
YkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlKSk7CisgICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQo
UGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAg
cmV0dXJuOwogCkBAIC02MzcsNyArNjM3LDcgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWRkaXRp
b25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW8KICAg
ICAvLyBUbyBhdWdtZW50IHRoZSBwbGF0Zm9ybSBkcmFnIHNlc3Npb24gd2l0aCBhZGRpdGlvbmFs
IGl0ZW1zLCBlbmQgdGhlIGN1cnJlbnQgZHJhZyBzZXNzaW9uIGFuZCBiZWdpbiBhIG5ldyBkcmFn
IHNlc3Npb24gd2l0aCB0aGUgbmV3IGRyYWcgaXRlbS4KICAgICAvLyBUaGlzIHByb2Nlc3MgaXMg
b3BhcXVlIHRvIHRoZSBVSSBwcm9jZXNzLCB3aGljaCBzdGlsbCBtYWludGFpbnMgdGhlIG9sZCBk
cmFnIGl0ZW0gaW4gaXRzIGRyYWcgc2Vzc2lvbi4gU2ltaWxhcmx5LCB0aGlzIHBlcnNpc3RlbnQg
ZHJhZyBzZXNzaW9uCiAgICAgLy8gaXMgb3BhcXVlIHRvIHRoZSB3ZWIgcHJvY2Vzcywgd2hpY2gg
b25seSBzZWVzIHRoYXQgdGhlIGN1cnJlbnQgZHJhZyBoYXMgZW5kZWQsIGFuZCB0aGF0IGEgbmV3
IG9uZSBpcyBiZWdpbm5pbmcuCi0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGNsaWVudFBv
c2l0aW9uLCBnbG9iYWxQb3NpdGlvbiwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VN
b3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIDAsIE5v
VGFwKTsKKyAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoY2xpZW50UG9zaXRpb24sIGdsb2Jh
bFBvc2l0aW9uLCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiAgICAg
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbmRlZCgpOwogICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuZHJhZ1NvdXJjZUVuZGVkQXQoZXZlbnQsIERyYWdPcGVyYXRp
b25Ob25lLCBNYXlFeHRlbmREcmFnU2Vzc2lvbjo6WWVzKTsKIApAQCAtODAzLDcgKzgwMyw3IEBA
IHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbikKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRl
ZEludFBvaW50KHBvc2l0aW9uKTsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWlu
RnJhbWUoKTsKIAotICAgIG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5tb3VzZU1vdmVkKFBsYXRm
b3JtTW91c2VFdmVudChhZGp1c3RlZFBvaW50LCBhZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAs
IDAsIFdlYkNvcmU6Ok5vVGFwKSk7CisgICAgbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLm1vdXNl
TW92ZWQoUGxhdGZvcm1Nb3VzZUV2ZW50KGFkanVzdGVkUG9pbnQsIGFkanVzdGVkUG9pbnQsIE5v
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBmYWxzZSwgeyB9LCAwLCBXZWJDb3JlOjpOb1RhcCkpOwogICAgIG1haW5mcmFtZS5kb2N1bWVu
dCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViUERGVmlld1BsYWNlaG9sZGVyLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KaW5kZXggNDhh
ZTlmNzljYjkyNDQwNTI0YTdmZmY0OWRiMDVjNmE5ZTE0MzNmNi4uYzkxNWZlNGQ4NjdlMjI3MTNj
ZmQ0NTFlMzJkODM3OWY5ODNjMWNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvV2ViVmlldy9XZWJQREZWaWV3UGxhY2Vob2xkZXIubW0KQEAgLTQ4LDcgKzQ4LDcg
QEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdl
YktpdExlZ2FjeS9XZWJQREZEb2N1bWVudEV4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5
L1dlYlZpZXdQcml2YXRlLmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBv
cnQgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBjb25zdCBmbG9h
dCBQQUdFX0hFSUdIVF9JTlNFVCA9IDQuMGYgKiAyLjBmOwogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBDb25zdHJ1Y3QgYW4gZXZlbnQgdG8gc2ltdWxhdGUgYSBjbGljay4KLSAgICBSZWZQdHI8
RXZlbnQ+IGV2ZW50ID0gTW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50
LCB0cnVlLCB0cnVlLCBjdXJyZW50VGltZSgpLCAwLCAxLCAwLCAwLCAwLCAwLAorICAgIFJlZlB0
cjxFdmVudD4gZXZlbnQgPSBNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmNsaWNrRXZl
bnQsIHRydWUsIHRydWUsIE1vbm90b25pY1RpbWU6Om5vdygpLCAwLCAxLCAwLCAwLCAwLCAwLAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0RPTS9ET01FdmVudC5tbQppbmRleCA5NWY4NGRkMjVhODQzYWViYmE0MjJk
M2JkYzgwZDE0ZmEzMDhmMjFhLi4zMjFhN2YwMTY4MWYyMWE0ODY2OWNkOTgzZWQ1NDU3MTA4NGY3
MWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRXZlbnQubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUV2ZW50Lm1tCkBAIC05Nyw3ICs5
Nyw3IEBACiAtIChET01UaW1lU3RhbXApdGltZVN0YW1wCiB7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT50aW1lU3RhbXAoKTsKKyAg
ICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCkuYXBwcm94aW1hdGVXYWxsVGltZSgpLnNlY29uZHNT
aW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiB9CiAKIC0gKEJPT0wpZGVmYXVsdFByZXZlbnRl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggMDAx
NmMwYTQyYzAzMGJiM2ViYzRmNGQxYWE1ZGM3ZWUxZGM3NjE0NS4uZjM0ZDY5NTlkNGNhZTE1Mzdk
NTI2MWM0MThmMDQ3ZDM4MjI0YjlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCkBAIC05NjQsNyArOTY0LDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRh
U291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIHJldHVy
bjsKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIGZha2UgbW9kaWZpZXIga2V5cyBoZXJlLCBidXQg
dGhleSBzaG91bGQgYmUgcmVhbCBvbmVzIGluc3RlYWQuCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50
IGV2ZW50KEludFBvaW50KHdpbmRvd0xvYyksIEludFBvaW50KGdsb2JhbFBvaW50KHdpbmRvd0xv
YywgW3ZpZXctPnBsYXRmb3JtV2lkZ2V0KCkgd2luZG93XSkpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxz
ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBXZWJDb3JlOjpOb1RhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlZnRC
dXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgV2ViQ29yZTo6
Tm9UYXApOwogICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmRyYWdTb3Vy
Y2VFbmRlZEF0KGV2ZW50LCAoRHJhZ09wZXJhdGlvbilvcGVyYXRpb24pOwogfQogI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViUERGVmlldy5tbQppbmRleCBlYzU3Yzg4YTZjYWQxYmQyYjRj
OWMyMmE4Y2YwMTNhMDEwN2UwMjVhLi4xOGUzNWE1YmQwNGY5YTA0MDU3MTcxMWU3Nzc4NDVmMjZj
NmM5OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBE
RlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQREZWaWV3
Lm1tCkBAIC0xMDE4LDE0ICsxMDE4LDE0IEBAIHN0YXRpYyBCT09MIGlzRnJhbWVJblJhbmdlKFdl
YkZyYW1lICpmcmFtZSwgRE9NUmFuZ2UgKnJhbmdlKQogICAgIGNhc2UgTlNFdmVudFR5cGVLZXlE
b3duOiB7CiAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBwZSA9IFBsYXRmb3JtRXZlbnRG
YWN0b3J5OjpjcmVhdGVQbGF0Zm9ybUtleWJvYXJkRXZlbnQobnNFdmVudCk7CiAgICAgICAgIHBl
LmRpc2FtYmlndWF0ZUtleURvd25FdmVudChQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKTsKLSAg
ICAgICAgZXZlbnQgPSBLZXlib2FyZEV2ZW50OjpjcmVhdGUocGUsIDApOworICAgICAgICBldmVu
dCA9IEtleWJvYXJkRXZlbnQ6OmNyZWF0ZShwZSwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAgICAgaWYgKGJ1dHRv
biAhPSBub0J1dHRvbikgewotICAgICAgICBldmVudCA9IE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuY2xpY2tFdmVudCwgdHJ1ZSwgdHJ1ZSwgY3VycmVudFRpbWUoKSwgMCwgW25zRXZl
bnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCisgICAgICAgIGV2ZW50ID0gTW91c2VFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50LCB0cnVlLCB0cnVlLCBNb25vdG9uaWNUaW1l
Ojpub3coKSwgMCwgW25zRXZlbnQgY2xpY2tDb3VudF0sIDAsIDAsIDAsIDAsCiAjaWYgRU5BQkxF
KFBPSU5URVJfTE9DSykKICAgICAgICAgICAgIDAsIDAsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRyb3BTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViRHJvcFNvdXJjZS5jcHAKaW5kZXggZjc0ZjNkM2M4Mzk3ZTI0NGMyYTkzYzMx
YzlhZTVmY2UzZWRjMGVkMS4uMjE1ZTcxZjVlN2VkMGY5YTM1Zjk2NWY1NDAzMDAyYjM3MGI5MWE3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRHJvcFNvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRHJvcFNvdXJjZS5jcHAKQEAgLTEwMSw3
ICsxMDEsNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQgZ2VuZXJhdGVNb3VzZUV2ZW50KFdlYlZpZXcq
IHdlYlZpZXcsIGJvb2wgaXNEcmFnKQogICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+dmlld1dp
bmRvdygmdmlld1dpbmRvdykpKQogICAgICAgICA6OlNjcmVlblRvQ2xpZW50KHZpZXdXaW5kb3cs
IHJlaW50ZXJwcmV0X2Nhc3Q8TFBQT0lOVD4oJmxvY2FscHQpKTsKICAgICByZXR1cm4gUGxhdGZv
cm1Nb3VzZUV2ZW50KEludFBvaW50KGxvY2FscHQueCwgbG9jYWxwdC55KSwgSW50UG9pbnQocHQu
eCwgcHQueSksCi0gICAgICAgIGlzRHJhZyA/IExlZnRCdXR0b24gOiBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJl
bnRUaW1lKCksIDAsIE5vVGFwKTsKKyAgICAgICAgaXNEcmFnID8gTGVmdEJ1dHRvbiA6IE5vQnV0
dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkLCAwLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgV2FsbFRpbWU6Om5vdygpLCAwLCBOb1RhcCk7CiB9CiAKIFNURE1FVEhPRElNUCBXZWJE
cm9wU291cmNlOjpRdWVyeUNvbnRpbnVlRHJhZyhfSW5fIEJPT0wgZkVzY2FwZVByZXNzZWQsIF9J
bl8gRFdPUkQgZ3JmS2V5U3RhdGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5
MWNjOGI5ZTMyYjI5MDJhMTAzYTkyOGE2NmU5MDBlYTBlMmVhY2FiLi5lNzliZjlkMDNkOTQ5MGU5
NjNjNGZiNmRiOTZkODFlN2VhMmIxYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNy0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZSBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1wIGZvciBldmVudCB0
aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQy
NDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0MzMzMzA0PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IG5vdyB0aGF0
IG1vcmUgY2hlY2tzIGFyZSBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6
CisKIDIwMTctMDktMjIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgV1BFIGdhcmRlbmluZy4gVXBkYXRpbmcgdGhlIFdQVCBFTUUgaWRs
aGFybmVzcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjMDhlNmNlNThkOGViZDE4OTZiOWMx
MmFlYTZhYjRmZWYzNjhkZjNkLi5jYTBmY2RkYjQ0MGFhMjlhNTE1MmRhOWRiMGE5ZTdlMjc2NWE2
OTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3Niw3ICsxNzYsNiBAQCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdWktMy90ZXh0LW92ZXJmbG93LTAxMi5odG1sIFsg
SW1hZ2VPbmx5RgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMv
dGV4dC1vdmVyZmxvdy0wMTUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMTcuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXVpLTMvdGV4dC1vdmVyZmxvdy0wMjEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1o
aWdoLXJlc29sdXRpb24uaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29uc3RydWN0b3Itc3ZnLnN2ZyBbIFRpbWVvdXQg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9zZWN1cml0eS9kYW5nbGlu
Zy1tYXJrdXAtbWl0aWdhdGlvbi50ZW50YXRpdmUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hyLXRpbWUvdGltZU9yaWdpbi5odG1sIFsgRmFp
bHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9l
dmVudHMvRXZlbnQtdGltZXN0YW1wLWhpZ2gtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKaW5kZXgg
ZjQ3ZmEzZDZmNTY3ZTRlOThiMTI4MDEyODI1ZDYyZDE4ODZjZWUzZi4uMmYwOGI0ODVkNDVhNmVi
NTg3ZTk3ZmU0ZDZhZTVlYWJmZDU3M2M5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LXRpbWVzdGFtcC1oaWdo
LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC10aW1lc3RhbXAtaGlnaC1yZXNvbHV0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAotRkFJTCBDb25zdHJ1Y3RlZCBNb3Vz
ZUV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBz
YW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygp
IHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIDUyMy44MDAwMDAwMDAwMDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2
NgotRkFJTCBDb25zdHJ1Y3RlZCBLZXlib2FyZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGln
aCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNl
Lm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUg
bGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBhZnRlciBpdHMgY3Jl
YXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUyNC40IGJ1dCBn
b3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3RlZCBXaGVlbEV2ZW50IHRpbWVzdGFtcCBz
aG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBzYW1lIHRpbWUgb3JpZ2luIGFz
IHBlcmZvcm1hbmNlLm5vdygpIGFzc2VydF9sZXNzX3RoYW5fZXF1YWw6IEV2ZW50IHRpbWVzdGFt
cCBzaG91bGQgYmUgbGVzcyB0aGFuIHBlcmZvcm1hbmNlLm5vdygpIHRpbWVzdGFtcCB0YWtlbiBh
ZnRlciBpdHMgY3JlYXRpb24gZXhwZWN0ZWQgYSBudW1iZXIgbGVzcyB0aGFuIG9yIGVxdWFsIHRv
IDUyNC41MDAwMDAwMDAwMDAxIGJ1dCBnb3QgMTUwNTc3MDE1MjU2NgotRkFJTCBDb25zdHJ1Y3Rl
ZCBHYW1lcGFkRXZlbnQgdGltZXN0YW1wIHNob3VsZCBiZSBoaWdoIHJlc29sdXRpb24gYW5kIGhh
dmUgdGhlIHNhbWUgdGltZSBvcmlnaW4gYXMgcGVyZm9ybWFuY2Uubm93KCkgTm90IGVub3VnaCBh
cmd1bWVudHMKLUZBSUwgQ29uc3RydWN0ZWQgRm9jdXNFdmVudCB0aW1lc3RhbXAgc2hvdWxkIGJl
IGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdpbiBhcyBwZXJmb3Jt
YW5jZS5ub3coKSBhc3NlcnRfbGVzc190aGFuX2VxdWFsOiBFdmVudCB0aW1lc3RhbXAgc2hvdWxk
IGJlIGxlc3MgdGhhbiBwZXJmb3JtYW5jZS5ub3coKSB0aW1lc3RhbXAgdGFrZW4gYWZ0ZXIgaXRz
IGNyZWF0aW9uIGV4cGVjdGVkIGEgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1MjQuNiBi
dXQgZ290IDE1MDU3NzAxNTI1NjYKK1BBU1MgQ29uc3RydWN0ZWQgTW91c2VFdmVudCB0aW1lc3Rh
bXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1lIG9yaWdp
biBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgS2V5Ym9hcmRFdmVudCB0
aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0aW1l
IG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgV2hlZWxFdmVu
dCB0aW1lc3RhbXAgc2hvdWxkIGJlIGhpZ2ggcmVzb2x1dGlvbiBhbmQgaGF2ZSB0aGUgc2FtZSB0
aW1lIG9yaWdpbiBhcyBwZXJmb3JtYW5jZS5ub3coKSAKK1BBU1MgQ29uc3RydWN0ZWQgR2FtZXBh
ZEV2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRoZSBz
YW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAorUEFTUyBDb25zdHJ1Y3RlZCBG
b2N1c0V2ZW50IHRpbWVzdGFtcCBzaG91bGQgYmUgaGlnaCByZXNvbHV0aW9uIGFuZCBoYXZlIHRo
ZSBzYW1lIHRpbWUgb3JpZ2luIGFzIHBlcmZvcm1hbmNlLm5vdygpIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>