<?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>198124</bug_id>
          
          <creation_ts>2019-05-22 09:24:32 -0700</creation_ts>
          <short_desc>[iOS] Compatibility mouse events aren&apos;t prevented by calling preventDefault() on pointerdown</short_desc>
          <delta_ts>2019-06-21 13:32:02 -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=198172</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1538211</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 09:24:32 -0700</bug_when>
    <thetext>Followup work after the fix for https://bugs.webkit.org/show_bug.cgi?id=198072 which was for macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538212</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 09:24:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/50410863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538244</commentid>
    <comment_count>2</comment_count>
      <attachid>370415</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 10:23:06 -0700</bug_when>
    <thetext>Created attachment 370415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538247</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-22 10:25:31 -0700</bug_when>
    <thetext>Attachment 370415 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/PlatformMouseEvent.h:74:  Wrong number of spaces before statement. (expected: 31)  [whitespace/indent] [4]
Total errors found: 2 in 21 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>1538255</commentid>
    <comment_count>4</comment_count>
      <attachid>370417</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 10:34:39 -0700</bug_when>
    <thetext>Created attachment 370417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538257</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-22 10:36:42 -0700</bug_when>
    <thetext>Attachment 370417 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformMouseEvent.h:65:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/platform/PlatformMouseEvent.h:74:  Wrong number of spaces before statement. (expected: 31)  [whitespace/indent] [4]
Total errors found: 2 in 22 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>1538266</commentid>
    <comment_count>6</comment_count>
      <attachid>370417</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-05-22 10:47:13 -0700</bug_when>
    <thetext>Comment on attachment 370417
Patch

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

&gt; Source/WebKit/ChangeLog:376
&gt; -        * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp.
&gt; +        * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.pp.

This seems wrong

&gt; Source/WebCore/page/PointerCaptureController.cpp:149
&gt; +void PointerCaptureController::forgetPointer(PointerID pointerId)

Forget! Interesting. Remove? DidRemove? Forget is fine too.

&gt; Source/WebCore/platform/PlatformMouseEvent.h:65
&gt; -                           int clickCount, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, WallTime timestamp, double force, SyntheticClickType syntheticClickType)
&gt; +                           int clickCount, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, WallTime timestamp, double force, SyntheticClickType syntheticClickType, PointerID pointerId = mousePointerID())

This is getting ridiculous

&gt; Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.h:40
&gt; +@property (nonatomic, weak) UIWebTouchEventsGestureRecognizer* supportingWebTouchEventsGestureRecognizer;
&gt; +@property (nonatomic, readonly) NSNumber* lastActiveTouchIdentifier;

Stars are on the wrong side 🤷‍♂️

&gt; Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.m:89
&gt; +            return;

Should this just `break` out of the for() instead of returning from the function entirely? (just imagining someone coming along later and wanting to add code to touchesEnded)

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1040
&gt; +void WebPage::forgetPointer(WebCore::PointerID pointerId)

The name is still bothering me. Maybe it&apos;s the super generic &quot;pointer&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538287</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 11:22:50 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #6)
&gt; Comment on attachment 370417 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370417&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:376
&gt; &gt; -        * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp.
&gt; &gt; +        * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.pp.
&gt; 
&gt; This seems wrong

It is. Will fix in commit.

&gt; &gt; Source/WebCore/page/PointerCaptureController.cpp:149
&gt; &gt; +void PointerCaptureController::forgetPointer(PointerID pointerId)
&gt; 
&gt; Forget! Interesting. Remove? DidRemove? Forget is fine too.

Instead of being so directive about the action to perform, I will update the method to be something more indicative about what happened and will rename to &quot;touchWithIdentifierWasRemoved()&quot;.

&gt; &gt; Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.h:40
&gt; &gt; +@property (nonatomic, weak) UIWebTouchEventsGestureRecognizer* supportingWebTouchEventsGestureRecognizer;
&gt; &gt; +@property (nonatomic, readonly) NSNumber* lastActiveTouchIdentifier;
&gt; 
&gt; Stars are on the wrong side 🤷‍♂️

Will fix in commit.

&gt; &gt; Source/WebKit/UIProcess/ios/WKSyntheticTapGestureRecognizer.m:89
&gt; &gt; +            return;
&gt; 
&gt; Should this just `break` out of the for() instead of returning from the
&gt; function entirely? (just imagining someone coming along later and wanting to
&gt; add code to touchesEnded)

Good point! Will fix in commit.

&gt; &gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:1040
&gt; &gt; +void WebPage::forgetPointer(WebCore::PointerID pointerId)
&gt; 
&gt; The name is still bothering me. Maybe it&apos;s the super generic &quot;pointer&quot;.

Yeah, see above, this is getting renamed to WebPage::touchWithIdentifierWasRemoved().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538300</commentid>
    <comment_count>8</comment_count>
      <attachid>370417</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-05-22 12:02:47 -0700</bug_when>
    <thetext>Comment on attachment 370417
Patch

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

&gt;&gt;&gt; Source/WebKit/ChangeLog:376
&gt;&gt;&gt; +        * NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.pp.
&gt;&gt; 
&gt;&gt; This seems wrong
&gt; 
&gt; It is. Will fix in commit.

We just announced Apple&apos;s new programming language! WWDC leak!

&gt;&gt; Source/WebCore/platform/PlatformMouseEvent.h:65
&gt;&gt; +                           int clickCount, bool shiftKey, bool ctrlKey, bool altKey, bool metaKey, WallTime timestamp, double force, SyntheticClickType syntheticClickType, PointerID pointerId = mousePointerID())
&gt; 
&gt; This is getting ridiculous

Yeah, can we make a PlatformMouseEventInfo or Data? Which would be a subclass of PlatformEventInfo?

&gt; Source/WebCore/platform/PointerID.h:32
&gt; +inline PointerID mousePointerID() { return 1; }

Why is this a function rather than a static PointerID mousePointerID = 1; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538320</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 12:54:51 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #8)
&gt; Comment on attachment 370417 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=370417&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PointerID.h:32
&gt; &gt; +inline PointerID mousePointerID() { return 1; }
&gt; 
&gt; Why is this a function rather than a static PointerID mousePointerID = 1; ?

Will fix in commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538321</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 12:58:24 -0700</bug_when>
    <thetext>Committed r245639: &lt;https://trac.webkit.org/changeset/245639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538580</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-05-22 22:56:57 -0700</bug_when>
    <thetext>This broke the tvOS build, see https://bugs.webkit.org/show_bug.cgi?id=198172. This was fixed in https://trac.webkit.org/changeset/245673.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546547</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-06-20 09:48:36 -0700</bug_when>
    <thetext>Reopening, this doesn&apos;t work when the synthetic tap is delayed due to double-tap-to-zoom. So the patch worked fine on iPadOS but not with iOS on an iPhone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546853</commentid>
    <comment_count>13</comment_count>
      <attachid>372625</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-06-21 03:29:46 -0700</bug_when>
    <thetext>Created attachment 372625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546969</commentid>
    <comment_count>14</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-06-21 13:32:02 -0700</bug_when>
    <thetext>Committed r246693: &lt;https://trac.webkit.org/changeset/246693&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370415</attachid>
            <date>2019-05-22 10:23:06 -0700</date>
            <delta_ts>2019-05-22 10:34:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198124-20190522192304.patch</filename>
            <type>text/plain</type>
            <size>48833</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU5NTdhODZiMjIwNDE4
YTlhMTVhMDhlNzg1MzE5YjBlYzFiNjY3OS4uM2NhYWI4MjhlZDEwY2Y2NWM4Y2RjMTliZDgyNmUy
YTgxZTVlZTkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA1LTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ29tcGF0aWJp
bGl0eSBtb3VzZSBldmVudHMgYXJlbid0IHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZh
dWx0KCkgb24gcG9pbnRlcmRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODEyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA0MTA4NjM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBmaXgg
YnVpbGRzIGF0b3AgdGhlIG9uZSBtYWRlIGZvciB3a2IudWcvMTk4MDcyIHdoaWNoIGZpeGVzIHRo
aXMgYnVnIG9uIG1hY09TIGFsb25lLgorCisgICAgICAgIEluIG9yZGVyIHRvIGNvcnJlY3RseSBw
cmV2ZW50ICJjb21wYXRpYmlsaXR5IiBtb3VzZSBldmVudHMgZnJvbSBiZWluZyBkaXNwYXRjaGVk
IHdoZW4gdGhlIGluaXRpYWwgInBvaW50ZXJkb3duIiBldmVudCBoYWQgcHJldmVudERlZmF1bHQo
KQorICAgICAgICBjYWxsZWQgd2hpbGUgaGFuZGxlZCwgd2UgbmVlZCB0byBwYXNzIHRoZSBQb2lu
dGVySUQgZm9yIHRoZSB0b3VjaCB0aGF0IHRyaWdnZXJlZCBhIHRhcCBnZXN0dXJlIGluIHRoZSBV
SSBwcm9jZXNzIGRvd24gaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGFuZCBpbnRvIHRoZSBy
ZXN1bHRpbmcgUGxhdGZvcm1Nb3VzZUV2ZW50LiBUaGlzIHdpbGwgYWxsb3cgdXBvbiBkaXNwYXRj
aCBvZiBhIFBsYXRmb3JtTW91c2VFdmVudCB0byBjYWxsIGludG8gUG9pbnRlckNhcHR1cmVDb250
cm9sbGVyCisgICAgICAgIHRvIGlkZW50aWZ5IGlmIHRoZSBkaXNwYXRjaCBvZiBtb3VzZSBldmVu
dHMgaXMgYWxsb3dlZCBmb3IgdGhlIGV2ZW50J3MgUG9pbnRlcklELgorCisgICAgICAgIFRvIHN1
cHBvcnQgdGhpcywgc29tZSByZWZhY3RvcmluZyB3YXMgcmVxdWlyZWQuIFRoZSBQb2ludGVySUQg
aGVhZGVyIGlzIG5vdyB1bmRlciBwbGF0Zm9ybS8gc3VjaCB0aGF0IFBsYXRmb3JtTW91c2VFdmVu
dCBtYXkgc2FmZWx5IHVzZSBpdC4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBQb2ludGVyRXZlbnQ6
OmRlZmF1bHRNb3VzZVBvaW50ZXJJZGVudGlmaWVyKCkgaXMgbm93IGEgZ2xvYmFsIG1vdXNlUG9p
bnRlcklEKCkgZGVmaW5lZCBpbiBQb2ludGVySUQuaC4KKworICAgICAgICBGaW5hbGx5LCBQb2lu
dGVyQ2FwdHVyZUNvbnRyb2xsZXI6OnRvdWNoRW5kZWRPcldhc0NhbmNlbGxlZEZvcklkZW50aWZp
ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6Zm9yZ2V0
UG9pbnRlcigpIGFuZAorICAgICAgICBoYXMgV0VCQ09SRV9FWFBPUlQgc3VjaCB0aGF0IGl0IG1h
eSBiZSBjYWxsZWQgZnJvbSBXZWJLaXQgYXMgdGhlIGluZGljYXRpb24gdGhhdCBhIHBvaW50ZXIg
aXMgbm8gbG9uZ2VyIGFjdGl2ZSB3aWxsIG5vdyBiZSBpbml0aWF0ZWQgaW4gV2ViS2l0CisgICAg
ICAgIG9uIHRoZSBVSSBwcm9jZXNzIHNpZGUuCisKKyAgICAgICAgVGVzdGluZyBpcyBjb3ZlcmVk
IGJ5IHRoZSBwcmUtZXhpc3RpbmcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2lu
dGVyZXZlbnRzL3BvaW50ZXJldmVudF9zdXBwcmVzc19jb21wYXRfZXZlbnRzX29uX2NsaWNrLmh0
bWwKKyAgICAgICAgd2hpY2ggd2lsbCBub3cgcnVuIG9uIGlPUyB0aHJvdWdoIGEgY2hhbmdlIHRv
IFdlYktpdEFkZGl0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBXaGVuIGRlYWxpbmcgd2l0aCBhIG1vdXNlIGV2
ZW50IG9uIGlPUywgY2hlY2sgd2hldGhlciB0aGUgbW91c2UgZXZlbnQncyBQb2ludGVySUQgYWxs
b3dzIGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgIG1vdXNlIGV2ZW50cyB0byBiZSBkaXNwYXRj
aGVkIHVzaW5nIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6cHJldmVudHNDb21wYXRpYmlsaXR5
TW91c2VFdmVudHNGb3JJZGVudGlmaWVyKCkuIFRoZSAiY2xpY2siIGV2ZW50IGlzIG5vdCBhIGNv
bXBhdGliaWxpdHkKKyAgICAgICAgbW91c2UgZXZlbnQuCisgICAgICAgICogZG9tL1BvaW50ZXJF
dmVudC5oOgorICAgICAgICAqIHBhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6UG9pbnRlckNhcHR1cmVD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6
Zm9yZ2V0UG9pbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXI6OnRvdWNoRW5kZWRPcldhc0NhbmNlbGxlZEZvcklkZW50aWZpZXIpOiBEZWxldGVkLgorICAg
ICAgICAqIHBhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vUGxhdGZvcm1Nb3VzZUV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNl
RXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1v
dXNlRXZlbnQ6OnBvaW50ZXJJZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vUG9pbnRlcklE
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vUG9pbnRlcklELmguCisgICAgICAg
IChXZWJDb3JlOjptb3VzZVBvaW50ZXJJRCk6CisKIDIwMTktMDUtMjEgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgY29udHJvbHMgZG9uJ3Qgc2hvdyBp
biBXSzIgdmlkZW8gZnVsbHNjcmVlbiBzb21ldGltZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzFkMjg2ODdjYjBm
ZTAyZGE0NmRmYTk2NmY5ZDg5OWYwNTExZTM1ZS4uNjBkZWU5Mjc1YmVhZDNkMGM1NDQxNDY0ZTdh
NDdmNTlmNzNmYmI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxOS0wNS0yMiAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBhdGli
aWxpdHkgbW91c2UgZXZlbnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVm
YXVsdCgpIG9uIHBvaW50ZXJkb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTgxMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDEwODYzPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVy
IHRvIGNvcnJlY3RseSBwcmV2ZW50ICJjb21wYXRpYmlsaXR5IiBtb3VzZSBldmVudHMgZnJvbSBi
ZWluZyBkaXNwYXRjaGVkIHdoZW4gdGhlIGluaXRpYWwgInBvaW50ZXJkb3duIiBldmVudCBoYWQg
cHJldmVudERlZmF1bHQoKQorICAgICAgICBjYWxsZWQgd2hpbGUgaGFuZGxlZCwgd2UgbmVlZCB0
byBwYXNzIHRoZSBQb2ludGVySUQgZm9yIHRoZSB0b3VjaCB0aGF0IHRyaWdnZXJlZCBhIHRhcCBn
ZXN0dXJlIGluIHRoZSBVSSBwcm9jZXNzIGRvd24gaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgICAg
IGFuZCBpbnRvIHRoZSByZXN1bHRpbmcgUGxhdGZvcm1Nb3VzZUV2ZW50LgorCisgICAgICAgIFRo
aXMgbWVhbnMgd2UgbmVlZCB0byBpZGVudGlmeSB0aGUgdG91Y2ggaWRlbnRpZmllciwgd2hpY2gg
aXMgdGhlIHNhbWUgYXMgdGhlIFBvaW50ZXJJRCB1c2VkIGZvciBQb2ludGVyIEV2ZW50cywgaW4g
dGhlIHNpbmdsZSB0YXAgZ2VzdHVyZQorICAgICAgICByZWNvZ25pemVyLCBhbiBpbnN0YW5jZSBv
ZiBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLiBUbyBkbyB0aGlzLCB3ZSBzdWJjbGFz
cyB0aGUgLVtVSVJlc3BvbmRlciB0b3VjaGVzRW5kZWQ6d2l0aEV2ZW50Ol0gbWV0aG9kIGFuZAor
ICAgICAgICB0cmFjayB0aGUgdG91Y2ggaWRlbnRpZmllciBhcyB0aGUgbGFzdEFjdGl2ZVRvdWNo
SWRlbnRpZmllciwgYSBuZXcgcHVibGljIHByb3BlcnR5IG9mIFdLU3ludGhldGljVGFwR2VzdHVy
ZVJlY29nbml6ZXIuIFRvIGFsbG93IGZvciB0aGlzLAorICAgICAgICB3ZSBuZWVkIHRoZSBzdXBw
b3J0IG9mIHRoZSBjb250ZW50IHZpZXcncyBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6
ZXIgd2hpY2ggaXMgZXhwb3NlZCB0byB0aGUgV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXpl
ciBhcyBpdHMKKyAgICAgICAgc3VwcG9ydGluZ1dlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6
ZXIgcHJvcGVydHkuIFRoaXMgbGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllciBwcm9wZXJ0eSBpcyBj
bGVhcmVkIGFzIHRoZSBnZXN0dXJlIHJlY29nbml6ZXIgaXMgcmVzZXQuCisKKyAgICAgICAgVGhp
cyBhbGxvd3MgdGhlIGNvbnRlbnQgdmlldyB0byBwYXNzIHRoZSBQb2ludGVySUQgZG93biB0byB0
aGUgV2ViIHByb2Nlc3Mgc3RhcnRpbmcgZnJvbSAtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRhcFJl
Y29nbml6ZWQ6XSwgZ29pbmcKKyAgICAgICAgdGhyb3VnaCBXZWJQYWdlUHJveHk6OmNvbW1pdFBv
dGVudGlhbFRhcCgpIGFuZCBldmVudHVhbGx5IFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xp
Y2soKS4KKworICAgICAgICBXaGlsZSB3ZSB1c2VkIHRvIHRlbGwgdGhlIFBvaW50ZXJDYXB0dXJl
Q29udHJvbGxlciB0aGF0IGEgUG9pbnRlcklEIHdhcyBubyBsb25nZXIgYWN0aXZlIHdoZW4gYSBn
aXZlbiB0b3VjaCBlbmRlZCBvciB3YXMgY2FuY2VsZWQgKGluCisgICAgICAgIFdlYktpdEFkZGl0
aW9ucyBjb2RlKSwgd2UgY2FuIG5vIGxvbmdlciBkbyB0aGlzIGFzIHRoZSBkaXNwYXRjaCBvZiBh
IHN5bnRoZXRpYyB0YXAgaXMgcGVyZm9ybWVkIGFzeW5jaHJvbm91c2x5IGFuZCB3aWxsIGhhcHBl
biBwYXN0IHRoZQorICAgICAgICBkaXNwYXRjaCBvZiAicG9pbnRlcnVwIiBhbmQgInBvaW50ZXJj
YW5jZWwiIFBvaW50ZXIgRXZlbnRzLiBUbyBjbGVhciBpbmFjdGl2ZSBQb2ludGVySURzIGZyb20g
dGhlIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlciwgd2UgYWRkIGEgbmV3CisgICAgICAgIGZvcmdl
dFBvaW50ZXIoKSBtZXRob2Qgb24gdGhlIFdlYlBhZ2UgYW5kIGl0cyBwcm94eS4gV2hlbiB0aGUg
V0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplciByZXNldHMgYW5kIC1bV0tDb250ZW50Vmll
dyBfc2luZ2xlVGFwRGlkUmVzZXQ6XQorICAgICAgICBpcyBjYWxsZWQsIHdlIGNhbGwgdGhhdCBt
ZXRob2Qgd2hpY2ggYWxsb3dzIGZvciBvbmx5IGFjdGl2ZSBQb2ludGVySURzIHRvIGJlIHRyYWNr
ZWQgYnkgdGhlIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlci4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXR1cEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRhcERpZFJlc2V0Ol0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9zaW5nbGVUYXBSZWNvZ25pemVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tOgorICAgICAgICAoLVtX
S1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyIHJlc2V0XSk6CisgICAgICAgICgtW1dLU3lu
dGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIgdG91Y2hlc0VuZGVkOndpdGhFdmVudDpdKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojpmb3JnZXRQb2ludGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpjb21taXRQb3RlbnRpYWxUYXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpkaXNwYXRjaFN5bnRoZXRpY01vdXNlTW92ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y29tcGxldGVQZW5kaW5nU3ludGhldGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Zm9yZ2V0UG9pbnRlcik6CisKIDIwMTktMDUtMjIgIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
Zml4IGZvciBub24tdW5pZmllZCBidWlsZCBhZnRlciByMjQ1MzIwLgpAQCAtMzIzLDcgKzM3Myw3
IEBACiAgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlOjp1cGRhdGVEYXRhYmFz
ZVdpdGhDaGFuZ2VkSXRlbXMpOgogICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFz
ZTo6ZGF0YWJhc2VJc0VtcHR5KToKICAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdl
L0xvY2FsU3RvcmFnZURhdGFiYXNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlLmguCi0gICAgICAgICogTmV0d29y
a1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VE
YXRhYmFzZVRyYWNrZXIuY3BwLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2Uv
TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyLnBwLgog
ICAgICAgICAoV2ViS2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6OmNyZWF0ZSk6CiAg
ICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcjo6TG9jYWxTdG9yYWdl
RGF0YWJhc2VUcmFja2VyKToKICAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyOjp+TG9jYWxTdG9yYWdlRGF0YWJhc2VUcmFja2VyKToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MjJiNmQwOGNjMGQz
OWEzNGQ1YzE1NDI2NjY4MDA2ZDBlMWJhODkyLi5lYWRlZjMzYmY4NTI0M2Y2ZGU4MWJkMjI4MGZk
OWQ4NGM1YWY0NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC05MzEsNyArOTMxLDcgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAw
QkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRB
bmltYXRpb24uaCAqLzsgfTsKIAkJMzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1l
QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTZGRTExMDBFNkUxREE3MDBCRjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLzsgfTsK
IAkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3NDFBQUIxNjYz
NUU0NTAwOEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxN0QzRkYzMjE1NTk5RjQwMDM0RTNC
OSAvKiBQb2ludGVyRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxN0QzRkYyMjE1NTk5RTMwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuaCAqLzsg
fTsKKwkJMzE3RDNGRjMyMTU1OTlGNDAwMzRFM0I5IC8qIFBvaW50ZXJFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3RDNGRjIyMTU1OTlFMzAw
MzRFM0I5IC8qIFBvaW50ZXJFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTMxODE1QTMxMUY5QTZDOEYwMEZDQkY4OSAvKiBJbWFnZUJpdG1h
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFEMjZC
QkYxRjg2RDE4OTAwOEZGMjU1IC8qIEltYWdlQml0bWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE4NDM2REUyMUI5REFBRjAwRUQzODNFIC8q
IFdlYkdQVUxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTg0MzZEQjIxQjlEQUEwMDBFRDM4M0UgLyogV2ViR1BVTGF5ZXIuaCAqLzsgfTsKIAkJ
MzE4ODkxNjExQUI3RUVBMTAwRUE2MjdCIC8qIG1pc3NpbmdJbWFnZUAzeC5wbmcgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjQxOTk5MUFCMERBMTQw
MDRFNjRFMSAvKiBtaXNzaW5nSW1hZ2VAM3gucG5nICovOyB9OwpAQCAtMTY5OTgsMTEgKzE2OTk4
LDExIEBACiAJCTFDQTBDMkY2MjFFRURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUyMTU4NjJDMjI5Mzc3QjcwMDU5MjVF
RiAvKiBXSExTTEFTVC5oICovLAogCQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExT
TEFkZHJlc3NTcGFjZS5oICovLAogCQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExT
TEFycmF5UmVmZXJlbmNlVHlwZS5oICovLAogCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAv
KiBXSExTTEFycmF5VHlwZS5oICovLAogCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBX
SExTTEFzc2lnbm1lbnRFeHByZXNzaW9uLmggKi8sCisJCQkJNTIxNTg2MkMyMjkzNzdCNzAwNTky
NUVGIC8qIFdITFNMQVNULmggKi8sCiAJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdI
TFNMQmFzZUZ1bmN0aW9uQXR0cmlidXRlLmggKi8sCiAJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3
OTc5IC8qIFdITFNMQmFzZVNlbWFudGljLmggKi8sCiAJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3
OTc5IC8qIFdITFNMQmxvY2suaCAqLywKQEAgLTI1Mjk2LDYgKzI1Mjk2LDcgQEAKIAkJCQlCQ0JC
OEFCNTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWwuaCAqLywKIAkJCQlCQ0JCOEFCNjEz
RjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggKi8sCiAJCQkJQkNCQjhBQjcxM0Yx
QUZCMDAwNzM0REYwIC8qIFBPRFJlZEJsYWNrVHJlZS5oICovLAorCQkJCTcxRUFEQ0Q2MjIwODdF
NkQwMDY1QTQ1RiAvKiBQb2ludGVySUQuaCAqLywKIAkJCQkwNjY4RTE4OTBBREQ5NjI0MDA0MTI4
RTAgLyogUG9wdXBNZW51LmggKi8sCiAJCQkJQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBv
cHVwTWVudUNsaWVudC5oICovLAogCQkJCUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1
cE1lbnVTdHlsZS5oICovLApAQCAtMjc0NTcsNyArMjc0NTgsNiBAQAogCQkJCTMxN0QzRkYxMjE1
NTk5RTIwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuY3BwICovLAogCQkJCTMxN0QzRkYyMjE1NTk5
RTMwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuaCAqLywKIAkJCQkzMTdEM0ZFRjIxNTU5OUUxMDAz
NEUzQjkgLyogUG9pbnRlckV2ZW50LmlkbCAqLywKLQkJCQk3MUVBRENENjIyMDg3RTZEMDA2NUE0
NUYgLyogUG9pbnRlcklELmggKi8sCiAJCQkJNTE4OUYwREQxMEI0NkIwRTAwRjNDNzM5IC8qIFBv
cFN0YXRlRXZlbnQuY3BwICovLAogCQkJCTUxNzRFMjA4MTBBMUY0NEYwMEY5NUU2RiAvKiBQb3BT
dGF0ZUV2ZW50LmggKi8sCiAJCQkJNTE3NEUyMEIxMEExRjQ5QTAwRjk1RTZGIC8qIFBvcFN0YXRl
RXZlbnQuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDZhYzliYzMxMTUyMjJjMzA2
ZTVlNzlhMDA5MjRkMDcwOGYzNmYyMTIuLjU0MGE4NjFhY2ZjZjRhNWUxNmNiZDc2MzUzODEwNDRl
NGRkN2FlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMwMyw4ICszMDMsMTQgQEAgYm9v
bCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBw
bGF0Zm9ybUV2ZW50LCBjb25zdAogCiAgICAgYm9vbCBkaWROb3RTd2FsbG93RXZlbnQgPSB0cnVl
OwogCi0jaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkucG9pbnRlckV2ZW50c0VuYWJsZWQoKSkgeworI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCkpIHsKKyAgICAgICAgICAgIGlmIChtb3VzZUV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygp
LmNsaWNrRXZlbnQgJiYgcGFnZS0+cG9pbnRlckNhcHR1cmVDb250cm9sbGVyKCkucHJldmVudHND
b21wYXRpYmlsaXR5TW91c2VFdmVudHNGb3JJZGVudGlmaWVyKHBsYXRmb3JtRXZlbnQucG9pbnRl
cklkKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorI2Vsc2UK
ICAgICAgICAgaWYgKGF1dG8gcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50OjpjcmVhdGUobW91
c2VFdmVudCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCkpIHsKICAgICAgICAgICAgICAgICBwYWdlLT5wb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoKS5k
aXNwYXRjaEV2ZW50KCpwb2ludGVyRXZlbnQsIHRoaXMpOwpAQCAtMzE3LDYgKzMyMyw3IEBAIGJv
b2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
cGxhdGZvcm1FdmVudCwgY29uc3QKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BvaW50ZXJFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1BvaW50ZXJFdmVudC5oCmluZGV4IGQ1MWRlMjZjMzBkNjljOTUzZjA1MzQ2N2QwZDg4ODc2
Y2NkMTExNWQuLjhlMDRhYTdmZjU0NTcwOGM0ZjE1NDE0NTY2MTNiYzFkNjMxZGNlMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb2ludGVyRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUG9pbnRlckV2ZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgUG9pbnRlckV2ZW50IGZpbmFsIDogcHVibGljIE1vdXNlRXZlbnQgewogcHVi
bGljOgogICAgIHN0cnVjdCBJbml0IDogTW91c2VFdmVudEluaXQgewotICAgICAgICBQb2ludGVy
SUQgcG9pbnRlcklkIHsgUG9pbnRlckV2ZW50OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmll
cigpIH07CisgICAgICAgIFBvaW50ZXJJRCBwb2ludGVySWQgeyBtb3VzZVBvaW50ZXJJRCgpIH07
CiAgICAgICAgIGRvdWJsZSB3aWR0aCB7IDEgfTsKICAgICAgICAgZG91YmxlIGhlaWdodCB7IDEg
fTsKICAgICAgICAgZmxvYXQgcHJlc3N1cmUgeyAwIH07CkBAIC04NSw3ICs4NSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBtb3VzZVBvaW50ZXJUeXBlKCk7CiAgICAgc3Rh
dGljIGNvbnN0IFN0cmluZyYgcGVuUG9pbnRlclR5cGUoKTsKICAgICBzdGF0aWMgY29uc3QgU3Ry
aW5nJiB0b3VjaFBvaW50ZXJUeXBlKCk7Ci0gICAgc3RhdGljIFBvaW50ZXJJRCBkZWZhdWx0TW91
c2VQb2ludGVySWRlbnRpZmllcigpIHsgcmV0dXJuIDE7IH0KIAogICAgIHZpcnR1YWwgflBvaW50
ZXJFdmVudCgpOwogCkBAIC0xMTMsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBQb2ludGVyRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCBJ
c0NhbmNlbGFibGUgaXNDYW5jZWxhYmxlLCB1bnNpZ25lZCB0b3VjaEluZGV4LCBib29sIGlzUHJp
bWFyeSwgUmVmPFdpbmRvd1Byb3h5PiYmKTsKICNlbmRpZgogCi0gICAgUG9pbnRlcklEIG1fcG9p
bnRlcklkIHsgUG9pbnRlckV2ZW50OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigpIH07
CisgICAgUG9pbnRlcklEIG1fcG9pbnRlcklkIHsgbW91c2VQb2ludGVySUQoKSB9OwogICAgIGRv
dWJsZSBtX3dpZHRoIHsgMSB9OwogICAgIGRvdWJsZSBtX2hlaWdodCB7IDEgfTsKICAgICBmbG9h
dCBtX3ByZXNzdXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BvaW50
ZXJJRC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BvaW50ZXJJRC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyMGRhOTQ3ZGQ2ZmVkMjFkOGZhYTczYWM5NWVkNjhjNjVkMDFmZjM3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qb2ludGVySUQuaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNp
bmcgUG9pbnRlcklEID0gaW50MzJfdDsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuY3BwCmluZGV4IDgzYWI3OWRmNDVjNTU1NzA1ZjRjNGM1NGM2OTQwZmUyODJjY2U1ZTkuLjJk
MTY2NDU3NDQyM2E2NWFmYzU3ZjVhYjFjYWRlMWQzZDhkMjA1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoUGFn
ZSYgcGFnZSkKICNpZiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBDYXB0dXJpbmdEYXRhIGNh
cHR1cmluZ0RhdGE7CiAgICAgY2FwdHVyaW5nRGF0YS5wb2ludGVyVHlwZSA9IFBvaW50ZXJFdmVu
dDo6bW91c2VQb2ludGVyVHlwZSgpOwotICAgIG1fYWN0aXZlUG9pbnRlcklkc1RvQ2FwdHVyaW5n
RGF0YS5zZXQoUG9pbnRlckV2ZW50OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigpLCBj
YXB0dXJpbmdEYXRhKTsKKyAgICBtX2FjdGl2ZVBvaW50ZXJJZHNUb0NhcHR1cmluZ0RhdGEuc2V0
KG1vdXNlUG9pbnRlcklEKCksIGNhcHR1cmluZ0RhdGEpOwogI2VuZGlmCiB9CiAKQEAgLTE0Niw3
ICsxNDYsNyBAQCB2b2lkIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZWxlbWVudFdhc1JlbW92
ZWQoRWxlbWVudCYgZWxlbWVudCkKICAgICB9CiB9CiAKLXZvaWQgUG9pbnRlckNhcHR1cmVDb250
cm9sbGVyOjp0b3VjaEVuZGVkT3JXYXNDYW5jZWxsZWRGb3JJZGVudGlmaWVyKFBvaW50ZXJJRCBw
b2ludGVySWQpCit2b2lkIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6Zm9yZ2V0UG9pbnRlcihQ
b2ludGVySUQgcG9pbnRlcklkKQogewogICAgIG1fYWN0aXZlUG9pbnRlcklkc1RvQ2FwdHVyaW5n
RGF0YS5yZW1vdmUocG9pbnRlcklkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50
ZXJDYXB0dXJlQ29udHJvbGxlci5oCmluZGV4IDRiY2ZhZGNmMWI2YzNlZWZlODhmNDFmMGUwZTk1
NDY4Y2I2NmZmMGMuLjkwODgyYWRkYTE0MzU3NDJjZTA4NTM4YWFiN2EzNDdhYzlmNWUxZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaApAQCAt
NTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaEV2ZW50Rm9yVG91Y2hBdElu
ZGV4KEV2ZW50VGFyZ2V0JiwgY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiwgdW5zaWduZWQsIGJv
b2wgaXNQcmltYXJ5LCBXaW5kb3dQcm94eSYpOwogI2VuZGlmCiAKLSAgICB2b2lkIHRvdWNoRW5k
ZWRPcldhc0NhbmNlbGxlZEZvcklkZW50aWZpZXIoUG9pbnRlcklEKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGZvcmdldFBvaW50ZXIoUG9pbnRlcklEKTsKICAgICBib29sIGhhc0NhbmNlbGxl
ZFBvaW50ZXJFdmVudEZvcklkZW50aWZpZXIoUG9pbnRlcklEKTsKICAgICBib29sIHByZXZlbnRz
Q29tcGF0aWJpbGl0eU1vdXNlRXZlbnRzRm9ySWRlbnRpZmllcihQb2ludGVySUQpOwogICAgIHZv
aWQgZGlzcGF0Y2hFdmVudChQb2ludGVyRXZlbnQmLCBFdmVudFRhcmdldCopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAwMWNiYTA0YjZlZmRm
OWFlZDg0NGZjZDFhNGFiODNjODY5MzJiZDQ0Li4wMTc5YzYzMjFiNzc0M2U5ZDRiY2YyMTk0ODg2
ZGYzOWQyMTQ1MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bU1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNl
RXZlbnQuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUV2ZW50LmgiCisjaW5jbHVkZSAiUG9pbnRlcklELmgiCiAjaW5jbHVkZSA8
d3RmL1dpbmRvd3NFeHRyYXMuaD4KIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTYxLDcgKzYyLDcg
QEAgY29uc3QgZG91YmxlIEZvcmNlQXRGb3JjZUNsaWNrID0gMjsKICAgICAgICAgfQogCiAgICAg
ICAgIFBsYXRmb3JtTW91c2VFdmVudChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IElu
dFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgTW91c2VCdXR0b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY2xpY2tDb3VudCwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBX
YWxsVGltZSB0aW1lc3RhbXAsIGRvdWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRo
ZXRpY0NsaWNrVHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50
LCBib29sIHNoaWZ0S2V5LCBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXks
IFdhbGxUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3lu
dGhldGljQ2xpY2tUeXBlLCBQb2ludGVySUQgcG9pbnRlcklkID0gbW91c2VQb2ludGVySUQoKSkK
ICAgICAgICAgICAgIDogUGxhdGZvcm1FdmVudCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0
S2V5LCBtZXRhS2V5LCB0aW1lc3RhbXApCiAgICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRp
b24pCiAgICAgICAgICAgICAsIG1fZ2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC03
MCw2ICs3MSw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAg
ICAgICAsIG1fbW9kaWZpZXJGbGFncygwKQogICAgICAgICAgICAgLCBtX2ZvcmNlKGZvcmNlKQog
ICAgICAgICAgICAgLCBtX3N5bnRoZXRpY0NsaWNrVHlwZShzeW50aGV0aWNDbGlja1R5cGUpCisg
ICAgICAgICAgICAsIG1fcG9pbnRlcklkKHBvaW50ZXJJZCkKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgICAgICAgICAsIG1fZXZlbnROdW1iZXIoMCkKICAgICAgICAgICAgICwgbV9tZW51VHlwZUZv
ckV2ZW50KDApCkBAIC05MSw2ICs5Myw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGlj
ayA9IDI7CiAgICAgICAgIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MoKSBjb25zdCB7IHJldHVybiBt
X21vZGlmaWVyRmxhZ3M7IH0KICAgICAgICAgZG91YmxlIGZvcmNlKCkgY29uc3QgeyByZXR1cm4g
bV9mb3JjZTsgfQogICAgICAgICBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9zeW50aGV0aWNDbGlja1R5cGU7IH0KKyAgICAgICAgUG9pbnRl
cklEIHBvaW50ZXJJZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRlcklkOyB9CiAKICNpZiBQTEFU
Rk9STShHVEspIAogICAgICAgICBleHBsaWNpdCBQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRC
dXR0b24qKTsKQEAgLTEyMSw2ICsxMjQsNyBAQCBjb25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xp
Y2sgPSAyOwogICAgICAgICB1bnNpZ25lZCBtX21vZGlmaWVyRmxhZ3M7CiAgICAgICAgIGRvdWJs
ZSBtX2ZvcmNlIHsgMCB9OwogICAgICAgICBTeW50aGV0aWNDbGlja1R5cGUgbV9zeW50aGV0aWND
bGlja1R5cGUgeyBOb1RhcCB9OworICAgICAgICBQb2ludGVySUQgbV9wb2ludGVySWQgeyBtb3Vz
ZVBvaW50ZXJJRCgpIH07CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIGludCBtX2V2ZW50
TnVtYmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9pbnRlcklELmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb2ludGVySUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTA5YmM2
OTYzNmNkYWFkNjJiYzJhNDVmYTNjOWI1YzIwNDg2NDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9pbnRlcklELmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBQb2ludGVySUQgPSBpbnQzMl90OworCitpbmxp
bmUgUG9pbnRlcklEIG1vdXNlUG9pbnRlcklEKCkgeyByZXR1cm4gMTsgfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGMwZTkyZTMxYzUxNGYzODA3NjAxMzA1
NGE1ZDAyYjVjNmU2NTlkZGYuLmNhYTQ0YzNmYTE3YmExZDBjNjhhZjBjZmYwOTNlNzY4N2NlMWE5
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjEyLDggKzEy
MTIsMTIgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCB3aWxs
U3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIHZvaWQgZm9yZ2V0UG9pbnRlcihXZWJDb3JlOjpQb2ludGVySUQpOworI2VuZGlmCisK
ICAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiwgdWludDY0X3Qm
IHJlcXVlc3RJRCk7Ci0gICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktp
dDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0
TGFzdFRvdWNoU3RhcnQpOworICAgIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxX
ZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9u
SWRBdExhc3RUb3VjaFN0YXJ0LCBXZWJDb3JlOjpQb2ludGVySUQpOwogICAgIHZvaWQgY2FuY2Vs
UG90ZW50aWFsVGFwKCk7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKICAgICB2b2lkIGhhbmRs
ZVRhcChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggY2NlOWFkYmZlNGFkYmM4NTY5ZGE2ZGFkZWQzNWZj
YTlhMjJhNWIzOS4uZDI5Y2JmMzAzMWNlODMxY2UzYzI3MjI1NzhkMzQwYWQ0ZTdkNzJjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC03MjcsNiArNzI3LDkgQEAgLSAodm9pZClzZXR1cEludGVyYWN0aW9u
CiAgICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAg
ICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEdlc3R1cmVJZGVudGlmaWVkVGFyZ2V0
OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwSWRlbnRpZmllZDopXTsKICAgICBbX3Np
bmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldFJlc2V0VGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxl
Y3Rvcihfc2luZ2xlVGFwRGlkUmVzZXQ6KV07CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0U3VwcG9ydGluZ1dlYlRvdWNoRXZl
bnRzR2VzdHVyZVJlY29nbml6ZXI6X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CisjZW5kaWYKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwogCiAgICAgX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJl
Y29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdp
dGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9ub25CbG9ja2luZ0RvdWJsZVRhcFJlY29n
bml6ZWQ6KV0pOwpAQCAtODY0LDYgKzg2Nyw5IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9u
CiAgICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAg
IFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0R2VzdHVyZUlkZW50aWZpZWRUYXJnZXQ6
bmlsIGFjdGlvbjpuaWxdOwogICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0UmVz
ZXRUYXJnZXQ6bmlsIGFjdGlvbjpuaWxdOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAg
ICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldFN1cHBvcnRpbmdXZWJUb3VjaEV2ZW50
c0dlc3R1cmVSZWNvZ25pemVyOm5pbF07CisjZW5kaWYKICAgICBbc2VsZiByZW1vdmVHZXN0dXJl
UmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCiAgICAgW19o
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAt
MjMxMiw2ICsyMzE4LDEwIEBAIC0gKHZvaWQpX3NpbmdsZVRhcERpZFJlc2V0OihVSVRhcEdlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBBU1NFUlQoZ2VzdHVyZVJl
Y29nbml6ZXIgPT0gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyKTsKICAgICBjYW5jZWxQb3Rl
bnRpYWxUYXBJZk5lY2Vzc2FyeShzZWxmKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisg
ICAgaWYgKGF1dG8qIHNpbmdsZVRhcFRvdWNoSWRlbnRpZmllciA9IFtfc2luZ2xlVGFwR2VzdHVy
ZVJlY29nbml6ZXIgbGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllcl0pCisgICAgICAgIF9wYWdlLT5m
b3JnZXRQb2ludGVyKFtzaW5nbGVUYXBUb3VjaElkZW50aWZpZXIgdW5zaWduZWRJbnRWYWx1ZV0p
OworI2VuZGlmCiB9CiAKIC0gKHZvaWQpX2RvdWJsZVRhcERpZEZhaWw6KFVJVGFwR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgpAQCAtMjM3NSw3ICsyMzg1LDEyIEBAIC0gKHZv
aWQpX3NpbmdsZVRhcFJlY29nbml6ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaXplcgogCiAgICAgUkVMRUFTRV9MT0coVmlld0dlc3R1cmVzLCAiU2luZ2xlIHRhcCBy
ZWNvZ25pemVkIC0gY29tbWl0IHBvdGVudGlhbCB0YXAgKCVwKSIsIHNlbGYpOwogCi0gICAgX3Bh
Z2UtPmNvbW1pdFBvdGVudGlhbFRhcChXZWJLaXQ6OndlYkV2ZW50TW9kaWZpZXJGbGFncyhnZXN0
dXJlUmVjb2duaXplck1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIpKSwgX2xheWVyVHJl
ZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKKyAgICBXZWJDb3JlOjpQb2ludGVySUQg
cG9pbnRlcklkID0gV2ViQ29yZTo6bW91c2VQb2ludGVySUQoKTsKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9FVkVOVFMpCisgICAgaWYgKGF1dG8qIHNpbmdsZVRhcFRvdWNoSWRlbnRpZmllciA9IFtfc2lu
Z2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgbGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllcl0pCisgICAg
ICAgIHBvaW50ZXJJZCA9IFtzaW5nbGVUYXBUb3VjaElkZW50aWZpZXIgdW5zaWduZWRJbnRWYWx1
ZV07CisjZW5kaWYKKyAgICBfcGFnZS0+Y29tbWl0UG90ZW50aWFsVGFwKFdlYktpdDo6d2ViRXZl
bnRNb2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVyTW9kaWZpZXJGbGFncyhnZXN0dXJlUmVj
b2duaXplcikpLCBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIHBvaW50
ZXJJZCk7CiAKICAgICBpZiAoIV9pc0V4cGVjdGluZ0Zhc3RTaW5nbGVUYXBDb21taXQpCiAgICAg
ICAgIFtzZWxmIF9maW5pc2hJbnRlcmFjdGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaApp
bmRleCAyZmVmZmIxMzcwYTcxNzc0YTEzMTE1NzAzOTE0MWRlNTg1MDk3NmE5Li4wZjIxNTIyY2Jj
NDRiYWU4ZDAwYTMyYzZmOGU1ODhjM2Q3ZjE5N2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVy
LmgKQEAgLTM1LDYgKzM1LDEwIEBACiAtICh2b2lkKXNldEdlc3R1cmVJZGVudGlmaWVkVGFyZ2V0
OihpZCl0YXJnZXQgYWN0aW9uOihTRUwpYWN0aW9uOwogLSAodm9pZClzZXRHZXN0dXJlRmFpbGVk
VGFyZ2V0OihpZCl0YXJnZXQgYWN0aW9uOihTRUwpYWN0aW9uOwogLSAodm9pZClzZXRSZXNldFRh
cmdldDooaWQpdGFyZ2V0IGFjdGlvbjooU0VMKWFjdGlvbjsKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCitAcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaykgVUlXZWJUb3VjaEV2ZW50c0dlc3R1
cmVSZWNvZ25pemVyKiBzdXBwb3J0aW5nV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcjsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNOdW1iZXIqIGxhc3RBY3RpdmVUb3Vj
aElkZW50aWZpZXI7CisjZW5kaWYKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6
ZXIubQppbmRleCBiNDlmYzM0YzgwNjk2Y2FiZjE3MDMxNDQyMTFjMTdjZjdjY2UzYTU2Li4yNDQx
OTg4MTI2NjdkNzNhNDUzOTIzYjA1NmE1Y2JiODViODA4MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNv
Z25pemVyLm0KQEAgLTcwLDYgKzcwLDI2IEBAIC0gKHZvaWQpcmVzZXQKIHsKICAgICBbc3VwZXIg
cmVzZXRdOwogICAgIFtfcmVzZXRUYXJnZXQgcGVyZm9ybVNlbGVjdG9yOl9yZXNldEFjdGlvbiB3
aXRoT2JqZWN0OnNlbGZdOworICAgIF9sYXN0QWN0aXZlVG91Y2hJZGVudGlmaWVyID0gbmlsOwor
fQorCistICh2b2lkKXRvdWNoZXNFbmRlZDooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0
aEV2ZW50OihVSUV2ZW50ICopZXZlbnQKK3sKKyAgICBbc3VwZXIgdG91Y2hlc0VuZGVkOnRvdWNo
ZXMgd2l0aEV2ZW50OmV2ZW50XTsKKyAgICBpZiAoIV9zdXBwb3J0aW5nV2ViVG91Y2hFdmVudHNH
ZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKSAmJiBIQVZFKFVJX1dFQl9UT1VDSF9FVkVOVFNfR0VTVFVSRV9SRUNPR05JWkVSX1dJ
VEhfQUNUSVZFX1RPVUNIRVNfQllfSUQpCisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS80
ODAzNTcwNj4KKyAgICBOU01hcFRhYmxlPE5TTnVtYmVyICosIFVJVG91Y2ggKj4gKmFjdGl2ZVRv
dWNoZXMgPSBbX3N1cHBvcnRpbmdXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIGFjdGl2
ZVRvdWNoZXNCeUlkZW50aWZpZXJdOworICAgIGZvciAoTlNOdW1iZXIgKnRvdWNoSWRlbnRpZmll
ciBpbiBhY3RpdmVUb3VjaGVzKSB7CisgICAgICAgIFVJVG91Y2ggKnRvdWNoID0gW2FjdGl2ZVRv
dWNoZXMgb2JqZWN0Rm9yS2V5OnRvdWNoSWRlbnRpZmllcl07CisgICAgICAgIGlmIChbdG91Y2gu
Z2VzdHVyZVJlY29nbml6ZXJzIGNvbnRhaW5zT2JqZWN0OnNlbGZdKSB7CisgICAgICAgICAgICBf
bGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllciA9IHRvdWNoSWRlbnRpZmllcjsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmYWJhZmVmMWVi
OWFmODZiOTY1YzczYWViOTlhYmY3M2Q1MWI3MjZjLi41NTVlMTIwYWZhM2IyMjNhMTEzZmZjZDcw
NmU1MmU4ZDFlZjA1ODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KQEAgLTgzNiwxNSArODM2LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3
aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OldpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCksIG1fcGFnZUlEKTsK
IH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb3Jn
ZXRQb2ludGVyKFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCit7CisgICAgcHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZvcmdldFBvaW50ZXIocG9pbnRlcklkKSwgbV9wYWdl
SUQpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0
aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCBib29sIHNob3VsZFJlcXVl
c3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCiB7CiAgICAg
aGlkZVZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxk
UmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlm
aWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3Vj
aFN0YXJ0KQordm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8
V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewot
ICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAo
bW9kaWZpZXJzLCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCksIG1fcGFn
ZUlEKTsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29tbWl0UG90ZW50
aWFsVGFwKG1vZGlmaWVycywgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQs
IHBvaW50ZXJJZCksIG1fcGFnZUlEKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFBv
dGVudGlhbFRhcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggNWZjNTE5YjM5YjNmOGY1MzY3MWIzMWVjY2Y3OWI3YjhkM2MzNzcwMC4uMjYyMmE1NzM3
OGZiOTlhOGNmMTUxMzg0ODZlN2EyOWZkM2JlNmU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjIyLDkgKzYyMiwxMyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBhbGxvd3NVc2VyU2NhbGluZygpIGNvbnN0OwogICAgIGJvb2wgaGFzU3RhYmxlUGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3I7IH0K
IAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICB2b2lkIGZvcmdldFBvaW50ZXIoV2Vi
Q29yZTo6UG9pbnRlcklEKTsKKyNlbmRpZgorCiAgICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1
aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7CiAgICAgdm9pZCBwb3RlbnRpYWxU
YXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbik7Ci0gICAgdm9p
ZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVy
PiwgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpOworICAgIHZvaWQgY29tbWl0
UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2
NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQpOwogICAg
IHZvaWQgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCk7CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRp
YWxUYXAoKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcEluRnJhbWUoV2ViRnJhbWUmKTsK
QEAgLTEyMzQsOCArMTIzOCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRGb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uKEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKTsKICAgICB2b2lkIHBsYXRm
b3JtSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHkoKTsKICAgICB2b2lkIGdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlKTsKLSAgICB2b2lkIGhh
bmRsZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6Oldl
YkV2ZW50OjpNb2RpZmllcj4pOwotICAgIHZvaWQgY29tcGxldGVTeW50aGV0aWNDbGljayhXZWJD
b3JlOjpOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJD
b3JlOjpTeW50aGV0aWNDbGlja1R5cGUpOworICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2so
V2ViQ29yZTo6Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwg
V2ViQ29yZTo6UG9pbnRlcklEID0gV2ViQ29yZTo6bW91c2VQb2ludGVySUQoKSk7CisgICAgdm9p
ZCBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9D
bGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJL
aXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFdlYkNvcmU6OlN5bnRoZXRpY0NsaWNrVHlwZSwgV2Vi
Q29yZTo6UG9pbnRlcklEID0gV2ViQ29yZTo6bW91c2VQb2ludGVySUQoKSk7CiAgICAgdm9pZCBz
ZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2Vi
Q29yZTo6Tm9kZSopOwogICAgIHZvaWQgcmVzZXRUZXh0QXV0b3NpemluZygpOwogICAgIFdlYkNv
cmU6OlZpc2libGVQb3NpdGlvbiB2aXNpYmxlUG9zaXRpb25JbkZvY3VzZWROb2RlRm9yUG9pbnQo
Y29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgaXNJ
bnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCk7CkBAIC0xODQ0LDYgKzE4NDgsNyBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2Nh
dGlvbjsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9wcmV2aW91c0V4cG9zZWRDb250ZW50UmVj
dDsKICAgICBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1fcGVuZGluZ1N5
bnRoZXRpY0NsaWNrTW9kaWZpZXJzOworICAgIFdlYkNvcmU6OlBvaW50ZXJJRCBtX3BlbmRpbmdT
eW50aGV0aWNDbGlja1BvaW50ZXJJZCB7IDAgfTsKICAgICBGb2N1c2VkRWxlbWVudElkZW50aWZp
ZXIgbV9jdXJyZW50Rm9jdXNlZEVsZW1lbnRJZGVudGlmaWVyIHsgMCB9OwogICAgIE9wdGlvbmFs
PER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRD4gbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6
ZVVwZGF0ZUlEOwogICAgIGRvdWJsZSBtX2xhc3RUcmFuc2FjdGlvblBhZ2VTY2FsZUZhY3RvciB7
IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDRkYzY3YmY5NjI1YmIyZmNjYzhiYWZmNjNmODI0NWRmOWUyNTk0
YjUuLmFkZDUxMDQ1MjIwZTFlMTc3YzlmOTI3ZjMyNGVlNzVlNzZiNjBkMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtNTEsOSArNTEsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2Vi
Q29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11
bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRS
ZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZs
b2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJD
b3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91
YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmll
d3BvcnRTaXplVXBkYXRlSUQpCiAKKyAgICBGb3JnZXRQb2ludGVyKFdlYkNvcmU6OlBvaW50ZXJJ
RCBwb2ludGVySWQpCiAgICAgSGFuZGxlVGFwKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFz
dExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAgICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50
NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVx
dWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbikKLSAgICBDb21taXRQb3RlbnRpYWxUYXAoT3B0
aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQorICAgIENvbW1pdFBvdGVudGlhbFRhcChPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExh
eWVyVHJlZVRyYW5zYWN0aW9uSWQsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiAgICAg
Q2FuY2VsUG90ZW50aWFsVGFwKCkKICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVM
b25nUHJlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCAxODc0ZDA0M2VkNDlmOWZmZmVlNDZmNTFiMDJjNGQ2ZTE1Yzgw
YmIyLi40MjU5MTRkN2QwMDJmN2VjNzhkNDA2ZWE1NmFhZjYzM2RjOGFkOTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
MTA4LDYgKzEwOCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtTW91c2VFdmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUXVpcmtzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRl
ckJsb2NrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckltYWdlLmg+CkBAIC01NjMsMTQgKzU2
NCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2UoKQogICAgICAg
ICBkaWRDaGFuZ2VTZWxlY3Rpb24oKTsKIH0KIAotc3RhdGljIHZvaWQgZGlzcGF0Y2hTeW50aGV0
aWNNb3VzZU1vdmUoRnJhbWUmIG1haW5GcmFtZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bG9jYXRpb24sIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycykKK3N0YXRp
YyB2b2lkIGRpc3BhdGNoU3ludGhldGljTW91c2VNb3ZlKEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlm
aWVyPiBtb2RpZmllcnMsIFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQgPSBXZWJDb3JlOjpt
b3VzZVBvaW50ZXJJRCgpKQogewogICAgIEludFBvaW50IHJvdW5kZWRBZGp1c3RlZFBvaW50ID0g
cm91bmRlZEludFBvaW50KGxvY2F0aW9uKTsKICAgICBhdXRvIHNoaWZ0S2V5ID0gbW9kaWZpZXJz
LmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOwogICAgIGF1dG8gY3RybEtl
eSA9IG1vZGlmaWVycy5jb250YWlucyhXZWJFdmVudDo6TW9kaWZpZXI6OkNvbnRyb2xLZXkpOwog
ICAgIGF1dG8gYWx0S2V5ID0gbW9kaWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6
QWx0S2V5KTsKICAgICBhdXRvIG1ldGFLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6
Ok1vZGlmaWVyOjpNZXRhS2V5KTsKLSAgICBhdXRvIG1vdXNlRXZlbnQgPSBQbGF0Zm9ybU1vdXNl
RXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRv
biwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtl
eSwgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNv
cmU6Ok5vVGFwKTsKKyAgICBhdXRvIG1vdXNlRXZlbnQgPSBQbGF0Zm9ybU1vdXNlRXZlbnQocm91
bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtl
eSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFw
LCBwb2ludGVySWQpOwogICAgIC8vIEZJWE1FOiBQYXNzIGNhcHMgbG9jayBzdGF0ZS4KICAgICBt
YWluRnJhbWUuZXZlbnRIYW5kbGVyKCkuZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU1vdmUobW91c2VF
dmVudCk7CiB9CkBAIC02MjcsMTAgKzYyOCwxMCBAQCB2b2lkIFdlYlBhZ2U6OmdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlIGNvbW1hbgog
ICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KGtleUV2ZW50KTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ss
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6
Ok1vZGlmaWVyPiBtb2RpZmllcnMpCit2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNr
KE5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bG9jYXRpb24sIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViQ29y
ZTo6UG9pbnRlcklEIHBvaW50ZXJJZCkKIHsKICAgICBpZiAoIW5vZGVSZXNwb25kaW5nVG9DbGlj
ay5kb2N1bWVudCgpLnNldHRpbmdzKCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKSB7
Ci0gICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBs
b2NhdGlvbiwgbW9kaWZpZXJzLCBXZWJDb3JlOjpPbmVGaW5nZXJUYXApOworICAgICAgICBjb21w
bGV0ZVN5bnRoZXRpY0NsaWNrKG5vZGVSZXNwb25kaW5nVG9DbGljaywgbG9jYXRpb24sIG1vZGlm
aWVycywgV2ViQ29yZTo6T25lRmluZ2VyVGFwLCBwb2ludGVySWQpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC02MzksNyArNjQwLDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0
aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkYKICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJoYW5k
bGVTeW50aGV0aWNDbGljazogbm9kZSgiIDw8ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPDwgIikg
IiA8PCBsb2NhdGlvbik7CiAgICAgICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6TW91c2VNb3Zl
ZFNjb3BlIG9ic2VydmluZ1Njb3BlKHJlc3BvbmRpbmdEb2N1bWVudCk7CiAgICAgICAgIGF1dG8m
IG1haW5GcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgICAgIGRpc3BhdGNoU3ludGhl
dGljTW91c2VNb3ZlKG1haW5GcmFtZSwgbG9jYXRpb24sIG1vZGlmaWVycyk7CisgICAgICAgIGRp
c3BhdGNoU3ludGhldGljTW91c2VNb3ZlKG1haW5GcmFtZSwgbG9jYXRpb24sIG1vZGlmaWVycywg
cG9pbnRlcklkKTsKICAgICAgICAgbWFpbkZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZO
ZWVkZWQoKTsKICAgICB9CiAKQEAgLTY1OSwyMiArNjYwLDIzIEBAIHZvaWQgV2ViUGFnZTo6aGFu
ZGxlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJD
b3JlOjpGCiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9u
ZGluZ1RvQ2xpY2s7CiAgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBs
b2NhdGlvbjsKICAgICAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2Rp
ZmllcnM7CisgICAgICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrUG9pbnRlcklkID0gcG9pbnRl
cklkOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRhcmdldE5vZGUgPSBSZWY8Tm9kZT4obm9k
ZVJlc3BvbmRpbmdUb0NsaWNrKSwgbG9jYXRpb24sIG1vZGlmaWVycywgb2JzZXJ2ZWRDb250ZW50
Q2hhbmdlLCB0YXJnZXROb2RlVHJpZ2dlcnNDbGlja10geworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0YXJnZXROb2RlID0gUmVmPE5vZGU+
KG5vZGVSZXNwb25kaW5nVG9DbGljayksIGxvY2F0aW9uLCBtb2RpZmllcnMsIG9ic2VydmVkQ29u
dGVudENoYW5nZSwgdGFyZ2V0Tm9kZVRyaWdnZXJzQ2xpY2ssIHBvaW50ZXJJZF0gewogICAgICAg
ICBpZiAocHJvdGVjdGVkVGhpcy0+bV9pc0Nsb3NlZCB8fCAhcHJvdGVjdGVkVGhpcy0+Y29yZVBh
Z2UoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBhdXRvIHNob3VsZFN0YXlBdEhv
dmVyU3RhdGUgPSBvYnNlcnZlZENvbnRlbnRDaGFuZ2UgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNo
YW5nZSAmJiAhdGFyZ2V0Tm9kZVRyaWdnZXJzQ2xpY2s7CiAgICAgICAgIGlmIChzaG91bGRTdGF5
QXRIb3ZlclN0YXRlKSB7CiAgICAgICAgICAgICAvLyBUaGUgbW92ZSBldmVudCBjYXVzZWQgbmV3
IGNvbnRlbnRzIHRvIGFwcGVhci4gRG9uJ3Qgc2VuZCBzeW50aGV0aWMgY2xpY2sgZXZlbnQsIGJ1
dCBqdXN0IGVuc3VyZSB0aGF0IHRoZSBtb3VzZSBpcyBvbiB0aGUgbW9zdCByZWNlbnQgY29udGVu
dC4KLSAgICAgICAgICAgIGRpc3BhdGNoU3ludGhldGljTW91c2VNb3ZlKHByb3RlY3RlZFRoaXMt
PmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLCBsb2NhdGlvbiwgbW9kaWZpZXJzKTsKKyAgICAgICAg
ICAgIGRpc3BhdGNoU3ludGhldGljTW91c2VNb3ZlKHByb3RlY3RlZFRoaXMtPmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLCBsb2NhdGlvbiwgbW9kaWZpZXJzLCBwb2ludGVySWQpOwogICAgICAgICAg
ICAgTE9HKENvbnRlbnRPYnNlcnZhdGlvbiwgImhhbmRsZVN5bnRoZXRpY0NsaWNrOiBPYnNlcnZl
ZCBtZWFuaW5nZnVsIHZpc2libGUgY2hhbmdlIC0+IGhvdmVyLiIpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVT
eW50aGV0aWNDbGljazogY2FsbGluZyBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrIC0+IGNsaWNrLiIp
OwotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jb21wbGV0ZVN5bnRoZXRpY0NsaWNrKHRhcmdldE5v
ZGUsIGxvY2F0aW9uLCBtb2RpZmllcnMsIFdlYkNvcmU6Ok9uZUZpbmdlclRhcCk7CisgICAgICAg
IHByb3RlY3RlZFRoaXMtPmNvbXBsZXRlU3ludGhldGljQ2xpY2sodGFyZ2V0Tm9kZSwgbG9jYXRp
b24sIG1vZGlmaWVycywgV2ViQ29yZTo6T25lRmluZ2VyVGFwLCBwb2ludGVySWQpOwogICAgIH0p
OwogfQogCkBAIC02ODcsMTkgKzY4OSwyMCBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlUGVuZGlu
Z1N5bnRoZXRpY0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyKCkKICAgICAvLyBPbmx5IGRp
c3BhdGNoIHRoZSBjbGljayBpZiB0aGUgZG9jdW1lbnQgZGlkbid0IGdldCBjaGFuZ2VkIGJ5IGFu
eSB0aW1lcnMgc3RhcnRlZCBieSB0aGUgbW92ZSBldmVudC4KICAgICBpZiAob2JzZXJ2ZWRDb250
ZW50Q2hhbmdlID09IFdLQ29udGVudE5vQ2hhbmdlKSB7CiAgICAgICAgIExPRyhDb250ZW50T2Jz
ZXJ2YXRpb24sICJObyBjaGFnZSB3YXMgb2JzZXJ2ZWQgLT4gY2xpY2suIik7Ci0gICAgICAgIGNv
bXBsZXRlU3ludGhldGljQ2xpY2soKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSwgbV9wZW5k
aW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmll
cnMsIFdlYkNvcmU6Ok9uZUZpbmdlclRhcCk7CisgICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xp
Y2soKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMsIFdlYkNvcmU6Ok9uZUZp
bmdlclRhcCwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWQpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBtb3VzZSBpcyBvbiB0aGUgbW9zdCByZWNlbnQg
Y29udGVudC4KLSAgICAgICAgZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU1vdmUobV9wYWdlLT5tYWlu
RnJhbWUoKSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiwgbV9wZW5kaW5nU3ludGhl
dGljQ2xpY2tNb2RpZmllcnMpOworICAgICAgICBkaXNwYXRjaFN5bnRoZXRpY01vdXNlTW92ZSht
X3BhZ2UtPm1haW5GcmFtZSgpLCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtX3Bl
bmRpbmdTeW50aGV0aWNDbGlja01vZGlmaWVycywgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2lu
dGVySWQpOwogICAgICAgICBMT0coQ29udGVudE9ic2VydmF0aW9uLCAiT2JzZXJ2ZWQgbWVhbmlu
Z2Z1bCB2aXNpYmxlIGNoYW5nZSAtPiBob3Zlci4iKTsKICAgICB9CiAKICAgICBtX3BlbmRpbmdT
eW50aGV0aWNDbGlja05vZGUgPSBudWxscHRyOwogICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNr
TG9jYXRpb24gPSBGbG9hdFBvaW50KCk7CiAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2Rp
ZmllcnMgPSB7IH07CisgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWQgPSAwOwog
fQogCi12b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3Bv
bmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9u
U2V0PFdlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBTeW50aGV0aWNDbGlja1R5cGUgc3lu
dGhldGljQ2xpY2tUeXBlKQordm9pZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5v
ZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9j
YXRpb24sIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgU3ludGhldGlj
Q2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSwgV2ViQ29yZTo6UG9pbnRlcklEIHBvaW50ZXJJ
ZCkKIHsKICAgICBJbnRQb2ludCByb3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2lu
dChsb2NhdGlvbik7CiAgICAgRnJhbWUmIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7
CkBAIC03MTgsMTEgKzcyMSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xp
Y2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOgogICAgIGJvb2wg
YWx0S2V5ID0gbW9kaWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsK
ICAgICBib29sIG1ldGFLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVy
OjpNZXRhS2V5KTsKIAotICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVz
dGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpNb3VzZVByZXNzZWQsIDEsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdh
bGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUp
KTsKKyAgICB0YXBXYXNIYW5kbGVkIHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVN
b3VzZVByZXNzRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCBy
b3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVz
c2VkLCAxLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93
KCksIFdlYkNvcmU6OkZvcmNlQXRDbGljaywgc3ludGhldGljQ2xpY2tUeXBlLCBwb2ludGVySWQp
KTsKICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFwV2FzSGFu
ZGxlZCB8PSBtYWluZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQo
UGxhdGZvcm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQ
b2ludCwgTGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgc2hpZnRL
ZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpG
b3JjZUF0Q2xpY2ssIHN5bnRoZXRpY0NsaWNrVHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0g
bWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3Jt
TW91c2VFdmVudChyb3VuZGVkQWRqdXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExl
ZnRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIHNoaWZ0S2V5LCBjdHJs
S2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENs
aWNrLCBzeW50aGV0aWNDbGlja1R5cGUsIHBvaW50ZXJJZCkpOwogICAgIGlmIChtX2lzQ2xvc2Vk
KQogICAgICAgICByZXR1cm47CiAKQEAgLTczOCw3ICs3NDEsNyBAQCB2b2lkIFdlYlBhZ2U6OmNv
bXBsZXRlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBX
ZWJDb3JlOgogCiAgICAgLy8gT25seSBzZW5kIGEgc3ludGhldGljIG1vdXNlIG91dCBldmVudCBp
ZiBzeW50aGV0aWMgbW91c2UgbW92ZSBldmVudHMgd2VyZSBzZW50OyB0aGlzIGlzIHRydWUgd2hl
biBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIgaXMgZW5hYmxlZC4KICAgICBpZiAobm9kZVJlc3BvbmRp
bmdUb0NsaWNrLmRvY3VtZW50KCkuc2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFi
bGVkKCkgJiYgIXRhcFdhc0hhbmRsZWQgJiYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50
KCkuZnJhbWUoKSkKLSAgICAgICAgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCkuZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCkuZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU91dChQbGF0Zm9ybU1v
dXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0
QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpOb1R5cGUsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRL
ZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICAg
ICAgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVy
KCkuZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU91dChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFk
anVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxU
aW1lOjpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXAsIHBvaW50ZXJJZCkpOwogCiAgICAgaWYgKG1f
aXNDbG9zZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTk1OSw3ICs5NjIsNyBAQCB2b2lkIFdlYlBh
Z2U6OnBvdGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFs
VGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFz
dExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCit2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRh
cChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewog
ICAgIGlmICghbV9wb3RlbnRpYWxUYXBOb2RlIHx8ICghbV9wb3RlbnRpYWxUYXBOb2RlLT5yZW5k
ZXJlcigpICYmICFpczxIVE1MQXJlYUVsZW1lbnQ+KG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSkp
KSB7CiAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwpAQCAtOTgzLDcgKzk4Niw3
IEBAIHZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6
TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0CiAgICAgICAgICAgICBjb21taXRQb3RlbnRpYWxU
YXBGYWlsZWQoKTsKICAgICAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIGhhbmRsZVN5
bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlm
aWVycyk7CisgICAgICAgICAgICBoYW5kbGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdU
b0NsaWNrLCBhZGp1c3RlZFBvaW50LCBtb2RpZmllcnMsIHBvaW50ZXJJZCk7CiAgICAgfSBlbHNl
CiAgICAgICAgIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwogCkBAIC0xMDMzLDYgKzEwMzYs
MTMgQEAgdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXQKICAgICBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9k
ZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbWFpbmZyYW1lLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2
ZW50cyhwb3NpdGlvbiwgYWRqdXN0ZWRQb2ludCkpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQordm9pZCBXZWJQYWdlOjpmb3JnZXRQb2ludGVyKFdlYkNvcmU6OlBvaW50ZXJJRCBw
b2ludGVySWQpCit7CisgICAgbV9wYWdlLT5wb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoKS5mb3Jn
ZXRQb2ludGVyKHBvaW50ZXJJZCk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjppbnNwZWN0
b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQog
ewogICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDMzNjA5MTVlNzkyM2E5MzQzNjZiM2U5ZmYzOGEyMzVhMGQ3ODQxZjguLjVlNzRi
YThmZWQ3OTY0ZjJiMjMwYzQwOWZlYWUyODdlOTY3ZjNhYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxOS0wNS0yMiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIENvbXBhdGliaWxpdHkgbW91c2UgZXZlbnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkg
Y2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIG9uIHBvaW50ZXJkb3duCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgxMjQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzUwNDEwODYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlJ3JlIGFkZGluZyBhbiBpT1Mtc3BlY2lmaWMgZXhwZWN0YXRpb24gc2luY2Ug
dGhpcyB0ZXN0IHByaW50cyBvdXQgdGhlIHBvaW50ZXIgdHlwZSBkZXRlY3RlZCB3aGlsZSBpdCBy
dW5zLCB3aGljaCBpcyAidG91Y2giCisgICAgICAgIG9uIGlPUyBhbmQgIm1vdXNlIiBpbiB0aGUg
ZXhwZWN0YXRpb24gdGhhdCBhbHJlYWR5IGV4aXN0cyBmb3IgbWFjT1MuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRz
L3BvaW50ZXJldmVudF9zdXBwcmVzc19jb21wYXRfZXZlbnRzX29uX2NsaWNrLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKIDIwMTktMDUtMjIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hvd01vZGFs
RGlhbG9nLXN5bmMtY3Jvc3Mtb3JpZ2luLXBhZ2UtbG9hZDIuaHRtbCBpcyBmYWlsaW5nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxNGM2Yjk1N2UzNDEzYjc1YjI3N2M1YWUxMGU0
NjUyY2JiZTg4OTMxLi5mMmY2NDk1ODc2NDcxMjQ2MDA3MjU5M2VmNTgwN2RjYmQ4MWMzZjI5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wNS0y
MiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENv
bXBhdGliaWxpdHkgbW91c2UgZXZlbnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2
ZW50RGVmYXVsdCgpIG9uIHBvaW50ZXJkb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgxMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDEw
ODYzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGFkZCBiYXNpYyBzdXBwb3J0IHRvIHJ1biBhIHRlc3QgdGhhdCB3YXNuJ3Qgc3BlY2lmaWNhbGx5
IGRlc2lnbmVkIGZvciBhIHRvdWNoLWJhc2VkIGludGVyYWN0aW9uIHN1Y2ggdGhhdCB0aGUgdGVz
dAorICAgICAgICBhdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVu
dHMvcG9pbnRlcmV2ZW50X3N1cHByZXNzX2NvbXBhdF9ldmVudHNfb25fY2xpY2suaHRtbCBtYXkg
cnVuIG9uIGlPUy4gVGhlCisgICAgICAgIHRyaWNrIGhlcmUgaXMgdG8gYWRkIGEgcGF1c2UgYWZ0
ZXIgYSB0b3VjaCBlbmRzIHRvIGF2b2lkIHRoZSBsaWtlbGlob29kIG9yIHR3byB0YXAgZ2VzdHVy
ZXMgdHJpZ2dlcmluZyBhIGRvdWJsZSB0YXAuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzOgorCiAyMDE5LTA1LTIxICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb21wYXRpYmls
aXR5IG1vdXNlIGV2ZW50cyBhcmVuJ3QgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1
bHQoKSBvbiBwb2ludGVyZG93bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcwppbmRleCAzMTJiNDhlZGNjNWNlMTA1YzIxODZmY2FjNDI0NzkzMTZhNWMy
NmIyLi5jNGJiMjhhNDNiNTE0ZmQ4MGY1NzMwZGY4ZGYyOTAxOTE5MzBiOGFiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLXZlbmRvci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcwpAQCAtNDYsNyArNDYs
NyBAQCBmdW5jdGlvbiBkaXNwYXRjaE1vdXNlQWN0aW9ucyhhY3Rpb25zKQogICAgIH0pOwogfQog
Ci1mdW5jdGlvbiBkaXNwYXRjaFRvdWNoQWN0aW9ucyhhY3Rpb25zKQorZnVuY3Rpb24gZGlzcGF0
Y2hUb3VjaEFjdGlvbnMoYWN0aW9ucywgb3B0aW9ucyA9IHsgaW5zZXJ0UGF1c2VBZnRlclBvaW50
ZXJVcDogZmFsc2UgfSkKIHsKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8IHR5cGVvZiB3
aW5kb3cudGVzdFJ1bm5lci5ydW5VSVNjcmlwdCAhPT0gImZ1bmN0aW9uIikKICAgICAgICAgcmV0
dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcigid2luZG93LnRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoKSBpcyB1bmRlZmluZWQuIikpOwpAQCAtOTksNiArOTksOSBAQCBmdW5jdGlvbiBkaXNwYXRj
aFRvdWNoQWN0aW9ucyhhY3Rpb25zKQogICAgICAgICAgICAgdG91Y2gueCA9IHg7CiAgICAgICAg
ICAgICB0b3VjaC55ID0geTsKICAgICAgICAgICAgIGlkKys7CisgICAgICAgICAgICAvLyBXZSBu
ZWVkIHRvIGFkZCBhIHBhdXNlIGFmdGVyIGEgcG9pbnRlciB1cCB0byBlbnN1cmUgdGhhdCBhIHN1
YnNlcXVlbnQgdGFwIG1heSBiZSByZWNvZ25pemVkIGFzIHN1Y2guCisgICAgICAgICAgICBpZiAo
b3B0aW9ucy5pbnNlcnRQYXVzZUFmdGVyUG9pbnRlclVwKQorICAgICAgICAgICAgICAgIHRpbWVP
ZmZzZXRJbmNyZWFzZSA9IDAuNTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJw
YXVzZSI6CiAgICAgICAgICAgICB0aW1lT2Zmc2V0SW5jcmVhc2UgPSBhY3Rpb24uZHVyYXRpb24g
LyAxMDAwOwpAQCAtMTczLDggKzE3NiwxMCBAQCB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwu
YWN0aW9uX3NlcXVlbmNlID0gZnVuY3Rpb24oc291cmNlcykKIAogICAgIGxvZ0RlYnVnKCgpID0+
IEpTT04uc3RyaW5naWZ5KHBvaW50ZXJTb3VyY2UpKTsKIAotICAgIGlmIChwb2ludGVyVHlwZSA9
PT0gIm1vdXNlIikKLSAgICAgICAgcmV0dXJuIGRpc3BhdGNoTW91c2VBY3Rpb25zKHBvaW50ZXJT
b3VyY2UuYWN0aW9ucyk7CiAgICAgaWYgKHBvaW50ZXJUeXBlID09PSAidG91Y2giKQogICAgICAg
ICByZXR1cm4gZGlzcGF0Y2hUb3VjaEFjdGlvbnMocG9pbnRlclNvdXJjZS5hY3Rpb25zKTsKKyAg
ICBpZiAoImNyZWF0ZVRvdWNoIiBpbiBkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGRpc3BhdGNo
VG91Y2hBY3Rpb25zKHBvaW50ZXJTb3VyY2UuYWN0aW9ucywgeyBpbnNlcnRQYXVzZUFmdGVyUG9p
bnRlclVwOiB0cnVlIH0pOworICAgIGlmIChwb2ludGVyVHlwZSA9PT0gIm1vdXNlIikKKyAgICAg
ICAgcmV0dXJuIGRpc3BhdGNoTW91c2VBY3Rpb25zKHBvaW50ZXJTb3VyY2UuYWN0aW9ucyk7CiB9
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfc3VwcHJlc3NfY29tcGF0
X2V2ZW50c19vbl9jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVu
dF9zdXBwcmVzc19jb21wYXRfZXZlbnRzX29uX2NsaWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzA4ZDczZjA1YmQzYjA1ZjAwYzc0MDVlZTM5NWQ1ZTk3NTY2MWQyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcG9pbnRlcmV2ZW50cy9wb2ludGVyZXZlbnRfc3VwcHJlc3NfY29tcGF0X2V2ZW50c19v
bl9jbGljay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorUG9pbnRlciBFdmVudDogU3Vw
cHJlc3MgY29tcGF0aWJpbGl0eSBtb3VzZSBldmVudHMgb24gY2xpY2sKKworV2hlbiBhIHBvaW50
ZXJkb3duIGlzIGNhbmNlbGVkLCBhIGNsaWNrL3RhcCBzaG91bGRuJ3QgZmlyZSBhbnkgY29tcGF0
aWJpbGl0eSBtb3VzZSBldmVudHMgZXhjZXB0IGNsaWNrIGV2ZW50LgorCitDbGljayBvciB0YXAg
b24gVGFyZ2V0MC4KK0NsaWNrIG9yIHRhcCBvbiBUYXJnZXQxLgorQ2xpY2sgRG9uZS4KK1Rhcmdl
dDAKK1RhcmdldDEKK0RvbmUKK1RoZSBmb2xsb3dpbmcgcG9pbnRlciB0eXBlcyB3ZXJlIGRldGVj
dGVkOiB0b3VjaC4KKworVGhlIGZvbGxvd2luZyBldmVudHMgd2VyZSBsb2dnZWQ6IGNsaWNrQHRh
cmdldDAsIG1vdXNlZG93bkB0YXJnZXQxLCBtb3VzZXVwQHRhcmdldDEsIGNsaWNrQHRhcmdldDEu
CisKKworUEFTUyBTdXBwcmVzcyBjb21wYXQgbW91c2UgZXZlbnRzIG9uIGNsaWNrIAorUEFTUyBw
cmltYXJ5IHBvaW50ZXIgcG9pbnRlcmRvd25AdGFyZ2V0MCAKK1BBU1MgcHJpbWFyeSBwb2ludGVy
IHBvaW50ZXJkb3duQHRhcmdldDEgCitQQVNTIEV2ZW50IGxvZyAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370417</attachid>
            <date>2019-05-22 10:34:39 -0700</date>
            <delta_ts>2019-06-21 03:29:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198124-20190522193438.patch</filename>
            <type>text/plain</type>
            <size>49610</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU5NTdhODZiMjIwNDE4
YTlhMTVhMDhlNzg1MzE5YjBlYzFiNjY3OS4uZWZiYzZjNTZkZjAwYzRlNzYxM2ViYjdlMWQzNzQ3
NjE0NjkyZTU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA1LTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ29tcGF0aWJp
bGl0eSBtb3VzZSBldmVudHMgYXJlbid0IHByZXZlbnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZh
dWx0KCkgb24gcG9pbnRlcmRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5ODEyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTA0MTA4NjM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBmaXgg
YnVpbGRzIGF0b3AgdGhlIG9uZSBtYWRlIGZvciB3a2IudWcvMTk4MDcyIHdoaWNoIGZpeGVzIHRo
aXMgYnVnIG9uIG1hY09TIGFsb25lLgorCisgICAgICAgIEluIG9yZGVyIHRvIGNvcnJlY3RseSBw
cmV2ZW50ICJjb21wYXRpYmlsaXR5IiBtb3VzZSBldmVudHMgZnJvbSBiZWluZyBkaXNwYXRjaGVk
IHdoZW4gdGhlIGluaXRpYWwgInBvaW50ZXJkb3duIiBldmVudCBoYWQgcHJldmVudERlZmF1bHQo
KQorICAgICAgICBjYWxsZWQgd2hpbGUgaGFuZGxlZCwgd2UgbmVlZCB0byBwYXNzIHRoZSBQb2lu
dGVySUQgZm9yIHRoZSB0b3VjaCB0aGF0IHRyaWdnZXJlZCBhIHRhcCBnZXN0dXJlIGluIHRoZSBV
SSBwcm9jZXNzIGRvd24gaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIGFuZCBpbnRvIHRoZSBy
ZXN1bHRpbmcgUGxhdGZvcm1Nb3VzZUV2ZW50LiBUaGlzIHdpbGwgYWxsb3cgdXBvbiBkaXNwYXRj
aCBvZiBhIFBsYXRmb3JtTW91c2VFdmVudCB0byBjYWxsIGludG8gUG9pbnRlckNhcHR1cmVDb250
cm9sbGVyCisgICAgICAgIHRvIGlkZW50aWZ5IGlmIHRoZSBkaXNwYXRjaCBvZiBtb3VzZSBldmVu
dHMgaXMgYWxsb3dlZCBmb3IgdGhlIGV2ZW50J3MgUG9pbnRlcklELgorCisgICAgICAgIFRvIHN1
cHBvcnQgdGhpcywgc29tZSByZWZhY3RvcmluZyB3YXMgcmVxdWlyZWQuIFRoZSBQb2ludGVySUQg
aGVhZGVyIGlzIG5vdyB1bmRlciBwbGF0Zm9ybS8gc3VjaCB0aGF0IFBsYXRmb3JtTW91c2VFdmVu
dCBtYXkgc2FmZWx5IHVzZSBpdC4KKyAgICAgICAgQWRkaXRpb25hbGx5LCBQb2ludGVyRXZlbnQ6
OmRlZmF1bHRNb3VzZVBvaW50ZXJJZGVudGlmaWVyKCkgaXMgbm93IGEgZ2xvYmFsIG1vdXNlUG9p
bnRlcklEKCkgZGVmaW5lZCBpbiBQb2ludGVySUQuaC4KKworICAgICAgICBGaW5hbGx5LCBQb2lu
dGVyQ2FwdHVyZUNvbnRyb2xsZXI6OnRvdWNoRW5kZWRPcldhc0NhbmNlbGxlZEZvcklkZW50aWZp
ZXIoKSBoYXMgYmVlbiByZW5hbWVkIHRvIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6Zm9yZ2V0
UG9pbnRlcigpIGFuZAorICAgICAgICBoYXMgV0VCQ09SRV9FWFBPUlQgc3VjaCB0aGF0IGl0IG1h
eSBiZSBjYWxsZWQgZnJvbSBXZWJLaXQgYXMgdGhlIGluZGljYXRpb24gdGhhdCBhIHBvaW50ZXIg
aXMgbm8gbG9uZ2VyIGFjdGl2ZSB3aWxsIG5vdyBiZSBpbml0aWF0ZWQgaW4gV2ViS2l0CisgICAg
ICAgIG9uIHRoZSBVSSBwcm9jZXNzIHNpZGUuCisKKyAgICAgICAgVGVzdGluZyBpcyBjb3ZlcmVk
IGJ5IHRoZSBwcmUtZXhpc3RpbmcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2lu
dGVyZXZlbnRzL3BvaW50ZXJldmVudF9zdXBwcmVzc19jb21wYXRfZXZlbnRzX29uX2NsaWNrLmh0
bWwKKyAgICAgICAgd2hpY2ggd2lsbCBub3cgcnVuIG9uIGlPUyB0aHJvdWdoIGEgY2hhbmdlIHRv
IFdlYktpdEFkZGl0aW9ucy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudCk6IFdo
ZW4gZGVhbGluZyB3aXRoIGEgbW91c2UgZXZlbnQgb24gaU9TLCBjaGVjayB3aGV0aGVyIHRoZSBt
b3VzZSBldmVudCdzIFBvaW50ZXJJRCBhbGxvd3MgZm9yIGNvbXBhdGliaWxpdHkKKyAgICAgICAg
bW91c2UgZXZlbnRzIHRvIGJlIGRpc3BhdGNoZWQgdXNpbmcgUG9pbnRlckNhcHR1cmVDb250cm9s
bGVyOjpwcmV2ZW50c0NvbXBhdGliaWxpdHlNb3VzZUV2ZW50c0ZvcklkZW50aWZpZXIoKS4gVGhl
ICJjbGljayIgZXZlbnQgaXMgbm90IGEgY29tcGF0aWJpbGl0eQorICAgICAgICBtb3VzZSBldmVu
dC4KKyAgICAgICAgKiBkb20vUG9pbnRlckV2ZW50Lmg6CisgICAgICAgICogcGFnZS9Qb2ludGVy
Q2FwdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9pbnRlckNhcHR1cmVD
b250cm9sbGVyOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjpmb3JnZXRQb2ludGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlBvaW50ZXJDYXB0dXJlQ29udHJvbGxlcjo6dG91Y2hFbmRlZE9yV2FzQ2FuY2VsbGVkRm9y
SWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6cG9pbnRlcklkIGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Qb2ludGVySUQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Qb2ludGVySUQuaC4KKyAgICAgICAgKFdlYkNvcmU6Om1vdXNlUG9pbnRlcklEKToKKwog
MjAxOS0wNS0yMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBN
ZWRpYSBjb250cm9scyBkb24ndCBzaG93IGluIFdLMiB2aWRlbyBmdWxsc2NyZWVuIHNvbWV0aW1l
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzMWQyODY4N2NiMGZlMDJkYTQ2ZGZhOTY2ZjlkODk5ZjA1MTFlMzVlLi42
MGRlZTkyNzViZWFkM2QwYzU0NDE0NjRlN2E0N2Y1OWY3M2ZiYjcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDUzIEBACisyMDE5LTA1LTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPU10gQ29tcGF0aWJpbGl0eSBtb3VzZSBldmVudHMgYXJlbid0IHByZXZl
bnRlZCBieSBjYWxsaW5nIHByZXZlbnREZWZhdWx0KCkgb24gcG9pbnRlcmRvd24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODEyNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTA0MTA4NjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gY29ycmVjdGx5IHByZXZlbnQgImNvbXBhdGli
aWxpdHkiIG1vdXNlIGV2ZW50cyBmcm9tIGJlaW5nIGRpc3BhdGNoZWQgd2hlbiB0aGUgaW5pdGlh
bCAicG9pbnRlcmRvd24iIGV2ZW50IGhhZCBwcmV2ZW50RGVmYXVsdCgpCisgICAgICAgIGNhbGxl
ZCB3aGlsZSBoYW5kbGVkLCB3ZSBuZWVkIHRvIHBhc3MgdGhlIFBvaW50ZXJJRCBmb3IgdGhlIHRv
dWNoIHRoYXQgdHJpZ2dlcmVkIGEgdGFwIGdlc3R1cmUgaW4gdGhlIFVJIHByb2Nlc3MgZG93biBp
biB0aGUgV2ViIHByb2Nlc3MKKyAgICAgICAgYW5kIGludG8gdGhlIHJlc3VsdGluZyBQbGF0Zm9y
bU1vdXNlRXZlbnQuCisKKyAgICAgICAgVGhpcyBtZWFucyB3ZSBuZWVkIHRvIGlkZW50aWZ5IHRo
ZSB0b3VjaCBpZGVudGlmaWVyLCB3aGljaCBpcyB0aGUgc2FtZSBhcyB0aGUgUG9pbnRlcklEIHVz
ZWQgZm9yIFBvaW50ZXIgRXZlbnRzLCBpbiB0aGUgc2luZ2xlIHRhcCBnZXN0dXJlCisgICAgICAg
IHJlY29nbml6ZXIsIGFuIGluc3RhbmNlIG9mIFdLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6
ZXIuIFRvIGRvIHRoaXMsIHdlIHN1YmNsYXNzIHRoZSAtW1VJUmVzcG9uZGVyIHRvdWNoZXNFbmRl
ZDp3aXRoRXZlbnQ6XSBtZXRob2QgYW5kCisgICAgICAgIHRyYWNrIHRoZSB0b3VjaCBpZGVudGlm
aWVyIGFzIHRoZSBsYXN0QWN0aXZlVG91Y2hJZGVudGlmaWVyLCBhIG5ldyBwdWJsaWMgcHJvcGVy
dHkgb2YgV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci4gVG8gYWxsb3cgZm9yIHRoaXMs
CisgICAgICAgIHdlIG5lZWQgdGhlIHN1cHBvcnQgb2YgdGhlIGNvbnRlbnQgdmlldydzIFVJV2Vi
VG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciB3aGljaCBpcyBleHBvc2VkIHRvIHRoZSBXS1N5
bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyIGFzIGl0cworICAgICAgICBzdXBwb3J0aW5nV2Vi
VG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciBwcm9wZXJ0eS4gVGhpcyBsYXN0QWN0aXZlVG91
Y2hJZGVudGlmaWVyIHByb3BlcnR5IGlzIGNsZWFyZWQgYXMgdGhlIGdlc3R1cmUgcmVjb2duaXpl
ciBpcyByZXNldC4KKworICAgICAgICBUaGlzIGFsbG93cyB0aGUgY29udGVudCB2aWV3IHRvIHBh
c3MgdGhlIFBvaW50ZXJJRCBkb3duIHRvIHRoZSBXZWIgcHJvY2VzcyBzdGFydGluZyBmcm9tIC1b
V0tDb250ZW50VmlldyBfc2luZ2xlVGFwUmVjb2duaXplZDpdLCBnb2luZworICAgICAgICB0aHJv
dWdoIFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKCkgYW5kIGV2ZW50dWFsbHkgV2Vi
UGFnZTo6Y29tcGxldGVTeW50aGV0aWNDbGljaygpLgorCisgICAgICAgIFdoaWxlIHdlIHVzZWQg
dG8gdGVsbCB0aGUgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyIHRoYXQgYSBQb2ludGVySUQgd2Fz
IG5vIGxvbmdlciBhY3RpdmUgd2hlbiBhIGdpdmVuIHRvdWNoIGVuZGVkIG9yIHdhcyBjYW5jZWxl
ZCAoaW4KKyAgICAgICAgV2ViS2l0QWRkaXRpb25zIGNvZGUpLCB3ZSBjYW4gbm8gbG9uZ2VyIGRv
IHRoaXMgYXMgdGhlIGRpc3BhdGNoIG9mIGEgc3ludGhldGljIHRhcCBpcyBwZXJmb3JtZWQgYXN5
bmNocm9ub3VzbHkgYW5kIHdpbGwgaGFwcGVuIHBhc3QgdGhlCisgICAgICAgIGRpc3BhdGNoIG9m
ICJwb2ludGVydXAiIGFuZCAicG9pbnRlcmNhbmNlbCIgUG9pbnRlciBFdmVudHMuIFRvIGNsZWFy
IGluYWN0aXZlIFBvaW50ZXJJRHMgZnJvbSB0aGUgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLCB3
ZSBhZGQgYSBuZXcKKyAgICAgICAgZm9yZ2V0UG9pbnRlcigpIG1ldGhvZCBvbiB0aGUgV2ViUGFn
ZSBhbmQgaXRzIHByb3h5LiBXaGVuIHRoZSBXS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVy
IHJlc2V0cyBhbmQgLVtXS0NvbnRlbnRWaWV3IF9zaW5nbGVUYXBEaWRSZXNldDpdCisgICAgICAg
IGlzIGNhbGxlZCwgd2UgY2FsbCB0aGF0IG1ldGhvZCB3aGljaCBhbGxvd3MgZm9yIG9ubHkgYWN0
aXZlIFBvaW50ZXJJRHMgdG8gYmUgdHJhY2tlZCBieSB0aGUgUG9pbnRlckNhcHR1cmVDb250cm9s
bGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHNldHVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBj
bGVhbnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2luZ2xlVGFw
RGlkUmVzZXQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NpbmdsZVRhcFJlY29nbml6
ZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNv
Z25pemVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVS
ZWNvZ25pemVyLm06CisgICAgICAgICgtW1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIg
cmVzZXRdKToKKyAgICAgICAgKC1bV0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplciB0b3Vj
aGVzRW5kZWQ6d2l0aEV2ZW50Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvcmdldFBvaW50ZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OmRpc3BhdGNoU3ludGhl
dGljTW91c2VNb3ZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFuZGxlU3ludGhldGlj
Q2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wbGV0ZVBlbmRpbmdTeW50aGV0
aWNDbGlja0ZvckNvbnRlbnRDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXBsZXRlU3ludGhldGljQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpj
b21taXRQb3RlbnRpYWxUYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmb3JnZXRQb2lu
dGVyKToKKwogMjAxOS0wNS0yMiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBmaXggZm9yIG5vbi11bmlmaWVkIGJ1aWxkIGFmdGVy
IHIyNDUzMjAuCkBAIC0zMjMsNyArMzczLDcgQEAKICAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9y
YWdlRGF0YWJhc2U6OnVwZGF0ZURhdGFiYXNlV2l0aENoYW5nZWRJdGVtcyk6CiAgICAgICAgIChX
ZWJLaXQ6OkxvY2FsU3RvcmFnZURhdGFiYXNlOjpkYXRhYmFzZUlzRW1wdHkpOgogICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0YWJhc2UuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvTG9jYWxTdG9yYWdlRGF0
YWJhc2UuaC4KLSAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFn
ZURhdGFiYXNlVHJhY2tlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJTdG9yYWdlL0xvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlci5jcHAuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9Mb2NhbFN0
b3JhZ2VEYXRhYmFzZVRyYWNrZXIucHAuCiAgICAgICAgIChXZWJLaXQ6OkxvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcjo6Y3JlYXRlKToKICAgICAgICAgKFdlYktpdDo6TG9jYWxTdG9yYWdlRGF0
YWJhc2VUcmFja2VyOjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIpOgogICAgICAgICAoV2Vi
S2l0OjpMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXI6On5Mb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggODM0MjdmMDM3NWRlMWU2ZDhlN2JmZGUxZGRl
ODhhN2UwMGE2MzdmNy4uMjJlY2M5YzU3NWQ3M2RlZjI0NzFkOTUxMDgzN2MwNzAzMTQzMzM5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCkBAIC00MTksNyArNDE5LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIGRvbS9Ob2RlUmVuZGVyU3R5bGUuaAogICAgIGRvbS9O
b2RlVHJhdmVyc2FsLmgKICAgICBkb20vT3ZlcmZsb3dFdmVudC5oCi0gICAgZG9tL1BvaW50ZXJJ
RC5oCiAgICAgZG9tL1Bvc2l0aW9uLmgKICAgICBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgK
ICAgICBkb20vUHJvZ3Jlc3NFdmVudC5oCkBAIC05MjYsNiArOTI1LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVu
dC5oCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaFBvaW50LmgKICAgICBwbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuaAorICAgIHBsYXRmb3JtL1BvaW50ZXJJRC5oCiAgICAgcGxhdGZvcm0v
UG9wdXBNZW51LmgKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3Jt
L1BvcHVwTWVudVN0eWxlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA1MjJiNmQwOGNjMGQzOWEzNGQ1YzE1NDI2NjY4MDA2ZDBl
MWJhODkyLi5lYWRlZjMzYmY4NTI0M2Y2ZGU4MWJkMjI4MGZkOWQ4NGM1YWY0NThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05
MzEsNyArOTMxLDcgQEAKIAkJMzE2RkUxMTgwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5p
bWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZGRTEwRTBFNkUxREE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCAqLzsgfTsKIAkJ
MzE2RkUxMUEwRTZFMURBNzAwQkY2MDg4IC8qIEtleWZyYW1lQW5pbWF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTExMDBFNkUxREE3MDBC
RjYwODggLyogS2V5ZnJhbWVBbmltYXRpb24uaCAqLzsgfTsKIAkJMzE3NDFBQUQxNjYzNjYwOTAw
OEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE3NDFBQUIxNjYzNUU0NTAwOEE1QjdFIC8qIFNpbXVs
YXRlZENsaWNrT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTMxN0QzRkYzMjE1NTk5RjQwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxN0QzRkYyMjE1
NTk5RTMwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuaCAqLzsgfTsKKwkJMzE3RDNGRjMyMTU1OTlG
NDAwMzRFM0I5IC8qIFBvaW50ZXJFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE3RDNGRjIyMTU1OTlFMzAwMzRFM0I5IC8qIFBvaW50ZXJFdmVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMx
ODE1QTMxMUY5QTZDOEYwMEZDQkY4OSAvKiBJbWFnZUJpdG1hcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFEMjZCQkYxRjg2RDE4OTAwOEZGMjU1IC8q
IEltYWdlQml0bWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMzE4NDM2REUyMUI5REFBRjAwRUQzODNFIC8qIFdlYkdQVUxheWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTg0MzZEQjIxQjlEQUEw
MDBFRDM4M0UgLyogV2ViR1BVTGF5ZXIuaCAqLzsgfTsKIAkJMzE4ODkxNjExQUI3RUVBMTAwRUE2
MjdCIC8qIG1pc3NpbmdJbWFnZUAzeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERjQxOTk5MUFCMERBMTQwMDRFNjRFMSAvKiBtaXNzaW5nSW1h
Z2VAM3gucG5nICovOyB9OwpAQCAtMTY5OTgsMTEgKzE2OTk4LDExIEBACiAJCTFDQTBDMkY2MjFF
RURBRDIwMEExMTg2MCAvKiBBU1QgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAotCQkJCTUyMTU4NjJDMjI5Mzc3QjcwMDU5MjVFRiAvKiBXSExTTEFTVC5oICovLAog
CQkJCTFDODQwQjkwMjFFQzMwRjkwMEQwNTAwRCAvKiBXSExTTEFkZHJlc3NTcGFjZS5oICovLAog
CQkJCUMyMUJGNzI1MjFDRDg5RTIwMDIyNzk3OSAvKiBXSExTTEFycmF5UmVmZXJlbmNlVHlwZS5o
ICovLAogCQkJCUMyMUJGNzA5MjFDRDg5Q0EwMDIyNzk3OSAvKiBXSExTTEFycmF5VHlwZS5oICov
LAogCQkJCUMyMUJGNzMwMjFDRDg5RUQwMDIyNzk3OSAvKiBXSExTTEFzc2lnbm1lbnRFeHByZXNz
aW9uLmggKi8sCisJCQkJNTIxNTg2MkMyMjkzNzdCNzAwNTkyNUVGIC8qIFdITFNMQVNULmggKi8s
CiAJCQkJQzIxQkY3MEEyMUNEODlDQjAwMjI3OTc5IC8qIFdITFNMQmFzZUZ1bmN0aW9uQXR0cmli
dXRlLmggKi8sCiAJCQkJQzIxQkY2RkEyMUNEODlCRTAwMjI3OTc5IC8qIFdITFNMQmFzZVNlbWFu
dGljLmggKi8sCiAJCQkJQzIxQkY3MUUyMUNEODlEQzAwMjI3OTc5IC8qIFdITFNMQmxvY2suaCAq
LywKQEAgLTI1Mjk2LDYgKzI1Mjk2LDcgQEAKIAkJCQlCQ0JCOEFCNTEzRjFBRkIwMDA3MzRERjAg
LyogUE9ESW50ZXJ2YWwuaCAqLywKIAkJCQlCQ0JCOEFCNjEzRjFBRkIwMDA3MzRERjAgLyogUE9E
SW50ZXJ2YWxUcmVlLmggKi8sCiAJCQkJQkNCQjhBQjcxM0YxQUZCMDAwNzM0REYwIC8qIFBPRFJl
ZEJsYWNrVHJlZS5oICovLAorCQkJCTcxRUFEQ0Q2MjIwODdFNkQwMDY1QTQ1RiAvKiBQb2ludGVy
SUQuaCAqLywKIAkJCQkwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi8s
CiAJCQkJQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovLAog
CQkJCUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovLApAQCAt
Mjc0NTcsNyArMjc0NTgsNiBAQAogCQkJCTMxN0QzRkYxMjE1NTk5RTIwMDM0RTNCOSAvKiBQb2lu
dGVyRXZlbnQuY3BwICovLAogCQkJCTMxN0QzRkYyMjE1NTk5RTMwMDM0RTNCOSAvKiBQb2ludGVy
RXZlbnQuaCAqLywKIAkJCQkzMTdEM0ZFRjIxNTU5OUUxMDAzNEUzQjkgLyogUG9pbnRlckV2ZW50
LmlkbCAqLywKLQkJCQk3MUVBRENENjIyMDg3RTZEMDA2NUE0NUYgLyogUG9pbnRlcklELmggKi8s
CiAJCQkJNTE4OUYwREQxMEI0NkIwRTAwRjNDNzM5IC8qIFBvcFN0YXRlRXZlbnQuY3BwICovLAog
CQkJCTUxNzRFMjA4MTBBMUY0NEYwMEY5NUU2RiAvKiBQb3BTdGF0ZUV2ZW50LmggKi8sCiAJCQkJ
NTE3NEUyMEIxMEExRjQ5QTAwRjk1RTZGIC8qIFBvcFN0YXRlRXZlbnQuaWRsICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDZhYzliYzMxMTUyMjJjMzA2ZTVlNzlhMDA5MjRkMDcwOGYzNmYy
MTIuLjU0MGE4NjFhY2ZjZjRhNWUxNmNiZDc2MzUzODEwNDRlNGRkN2FlNWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTMwMyw4ICszMDMsMTQgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1v
dXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAog
CiAgICAgYm9vbCBkaWROb3RTd2FsbG93RXZlbnQgPSB0cnVlOwogCi0jaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKSAmJiAhRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
cG9pbnRlckV2ZW50c0VuYWJsZWQoKSkgeworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpIHsKKyAgICAgICAgICAgIGlm
IChtb3VzZUV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgJiYgcGFnZS0+
cG9pbnRlckNhcHR1cmVDb250cm9sbGVyKCkucHJldmVudHNDb21wYXRpYmlsaXR5TW91c2VFdmVu
dHNGb3JJZGVudGlmaWVyKHBsYXRmb3JtRXZlbnQucG9pbnRlcklkKCkpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgaWYgKGF1dG8gcG9p
bnRlckV2ZW50ID0gUG9pbnRlckV2ZW50OjpjcmVhdGUobW91c2VFdmVudCkpIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpIHsKICAgICAgICAgICAgICAg
ICBwYWdlLT5wb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoKS5kaXNwYXRjaEV2ZW50KCpwb2ludGVy
RXZlbnQsIHRoaXMpOwpAQCAtMzE3LDYgKzMyMyw3IEBAIGJvb2wgRWxlbWVudDo6ZGlzcGF0Y2hN
b3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CisjZW5kaWYKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1BvaW50ZXJFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BvaW50ZXJFdmVudC5oCmlu
ZGV4IGQ1MWRlMjZjMzBkNjljOTUzZjA1MzQ2N2QwZDg4ODc2Y2NkMTExNWQuLjhlMDRhYTdmZjU0
NTcwOGM0ZjE1NDE0NTY2MTNiYzFkNjMxZGNlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qb2ludGVyRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9pbnRlckV2ZW50
LmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUG9pbnRlckV2
ZW50IGZpbmFsIDogcHVibGljIE1vdXNlRXZlbnQgewogcHVibGljOgogICAgIHN0cnVjdCBJbml0
IDogTW91c2VFdmVudEluaXQgewotICAgICAgICBQb2ludGVySUQgcG9pbnRlcklkIHsgUG9pbnRl
ckV2ZW50OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigpIH07CisgICAgICAgIFBvaW50
ZXJJRCBwb2ludGVySWQgeyBtb3VzZVBvaW50ZXJJRCgpIH07CiAgICAgICAgIGRvdWJsZSB3aWR0
aCB7IDEgfTsKICAgICAgICAgZG91YmxlIGhlaWdodCB7IDEgfTsKICAgICAgICAgZmxvYXQgcHJl
c3N1cmUgeyAwIH07CkBAIC04NSw3ICs4NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
U3RyaW5nJiBtb3VzZVBvaW50ZXJUeXBlKCk7CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgcGVu
UG9pbnRlclR5cGUoKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0b3VjaFBvaW50ZXJUeXBl
KCk7Ci0gICAgc3RhdGljIFBvaW50ZXJJRCBkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigp
IHsgcmV0dXJuIDE7IH0KIAogICAgIHZpcnR1YWwgflBvaW50ZXJFdmVudCgpOwogCkBAIC0xMTMs
NyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICBQb2ludGVyRXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlLCBjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmLCBJc0NhbmNlbGFibGUgaXNDYW5jZWxh
YmxlLCB1bnNpZ25lZCB0b3VjaEluZGV4LCBib29sIGlzUHJpbWFyeSwgUmVmPFdpbmRvd1Byb3h5
PiYmKTsKICNlbmRpZgogCi0gICAgUG9pbnRlcklEIG1fcG9pbnRlcklkIHsgUG9pbnRlckV2ZW50
OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigpIH07CisgICAgUG9pbnRlcklEIG1fcG9p
bnRlcklkIHsgbW91c2VQb2ludGVySUQoKSB9OwogICAgIGRvdWJsZSBtX3dpZHRoIHsgMSB9Owog
ICAgIGRvdWJsZSBtX2hlaWdodCB7IDEgfTsKICAgICBmbG9hdCBtX3ByZXNzdXJlIHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BvaW50ZXJJRC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1BvaW50ZXJJRC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGRhOTQ3
ZGQ2ZmVkMjFkOGZhYTczYWM5NWVkNjhjNjVkMDFmZjM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb2ludGVySUQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgUG9pbnRlcklEID0gaW50MzJf
dDsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfRVZFTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4IDgzYWI3OWRm
NDVjNTU1NzA1ZjRjNGM1NGM2OTQwZmUyODJjY2U1ZTkuLjJkMTY2NDU3NDQyM2E2NWFmYzU3ZjVh
YjFjYWRlMWQzZDhkMjA1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRl
ckNhcHR1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJD
YXB0dXJlQ29udHJvbGxlci5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgUG9pbnRlckNhcHR1cmVDb250
cm9sbGVyOjpQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoUGFnZSYgcGFnZSkKICNpZiAhRU5BQkxF
KFRPVUNIX0VWRU5UUykKICAgICBDYXB0dXJpbmdEYXRhIGNhcHR1cmluZ0RhdGE7CiAgICAgY2Fw
dHVyaW5nRGF0YS5wb2ludGVyVHlwZSA9IFBvaW50ZXJFdmVudDo6bW91c2VQb2ludGVyVHlwZSgp
OwotICAgIG1fYWN0aXZlUG9pbnRlcklkc1RvQ2FwdHVyaW5nRGF0YS5zZXQoUG9pbnRlckV2ZW50
OjpkZWZhdWx0TW91c2VQb2ludGVySWRlbnRpZmllcigpLCBjYXB0dXJpbmdEYXRhKTsKKyAgICBt
X2FjdGl2ZVBvaW50ZXJJZHNUb0NhcHR1cmluZ0RhdGEuc2V0KG1vdXNlUG9pbnRlcklEKCksIGNh
cHR1cmluZ0RhdGEpOwogI2VuZGlmCiB9CiAKQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFBvaW50
ZXJDYXB0dXJlQ29udHJvbGxlcjo6ZWxlbWVudFdhc1JlbW92ZWQoRWxlbWVudCYgZWxlbWVudCkK
ICAgICB9CiB9CiAKLXZvaWQgUG9pbnRlckNhcHR1cmVDb250cm9sbGVyOjp0b3VjaEVuZGVkT3JX
YXNDYW5jZWxsZWRGb3JJZGVudGlmaWVyKFBvaW50ZXJJRCBwb2ludGVySWQpCit2b2lkIFBvaW50
ZXJDYXB0dXJlQ29udHJvbGxlcjo6Zm9yZ2V0UG9pbnRlcihQb2ludGVySUQgcG9pbnRlcklkKQog
ewogICAgIG1fYWN0aXZlUG9pbnRlcklkc1RvQ2FwdHVyaW5nRGF0YS5yZW1vdmUocG9pbnRlcklk
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckNhcHR1cmVDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5o
CmluZGV4IDRiY2ZhZGNmMWI2YzNlZWZlODhmNDFmMGUwZTk1NDY4Y2I2NmZmMGMuLjkwODgyYWRk
YTE0MzU3NDJjZTA4NTM4YWFiN2EzNDdhYzlmNWUxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaXNwYXRjaEV2ZW50Rm9yVG91Y2hBdEluZGV4KEV2ZW50VGFyZ2V0JiwgY29u
c3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiwgdW5zaWduZWQsIGJvb2wgaXNQcmltYXJ5LCBXaW5kb3dQ
cm94eSYpOwogI2VuZGlmCiAKLSAgICB2b2lkIHRvdWNoRW5kZWRPcldhc0NhbmNlbGxlZEZvcklk
ZW50aWZpZXIoUG9pbnRlcklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvcmdldFBvaW50
ZXIoUG9pbnRlcklEKTsKICAgICBib29sIGhhc0NhbmNlbGxlZFBvaW50ZXJFdmVudEZvcklkZW50
aWZpZXIoUG9pbnRlcklEKTsKICAgICBib29sIHByZXZlbnRzQ29tcGF0aWJpbGl0eU1vdXNlRXZl
bnRzRm9ySWRlbnRpZmllcihQb2ludGVySUQpOwogICAgIHZvaWQgZGlzcGF0Y2hFdmVudChQb2lu
dGVyRXZlbnQmLCBFdmVudFRhcmdldCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1Nb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1vdXNlRXZlbnQuaAppbmRleCAwMWNiYTA0YjZlZmRmOWFlZDg0NGZjZDFhNGFiODNjODY5
MzJiZDQ0Li4wMTc5YzYzMjFiNzc0M2U5ZDRiY2YyMTk0ODg2ZGYzOWQyMTQ1MzU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQuaApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50Lmgi
CisjaW5jbHVkZSAiUG9pbnRlcklELmgiCiAjaW5jbHVkZSA8d3RmL1dpbmRvd3NFeHRyYXMuaD4K
IAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTYxLDcgKzYyLDcgQEAgY29uc3QgZG91YmxlIEZvcmNl
QXRGb3JjZUNsaWNrID0gMjsKICAgICAgICAgfQogCiAgICAgICAgIFBsYXRmb3JtTW91c2VFdmVu
dChjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFBvaW50JiBnbG9iYWxQb3NpdGlv
biwgTW91c2VCdXR0b24gYnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpUeXBlIHR5cGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgY2xpY2tDb3VudCwgYm9vbCBzaGlmdEtleSwgYm9vbCBj
dHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBtZXRhS2V5LCBXYWxsVGltZSB0aW1lc3RhbXAsIGRv
dWJsZSBmb3JjZSwgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0NsaWNrVHlwZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBjbGlja0NvdW50LCBib29sIHNoaWZ0S2V5LCBib29s
IGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIG1ldGFLZXksIFdhbGxUaW1lIHRpbWVzdGFtcCwg
ZG91YmxlIGZvcmNlLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlLCBQb2lu
dGVySUQgcG9pbnRlcklkID0gbW91c2VQb2ludGVySUQoKSkKICAgICAgICAgICAgIDogUGxhdGZv
cm1FdmVudCh0eXBlLCBzaGlmdEtleSwgY3RybEtleSwgYWx0S2V5LCBtZXRhS2V5LCB0aW1lc3Rh
bXApCiAgICAgICAgICAgICAsIG1fcG9zaXRpb24ocG9zaXRpb24pCiAgICAgICAgICAgICAsIG1f
Z2xvYmFsUG9zaXRpb24oZ2xvYmFsUG9zaXRpb24pCkBAIC03MCw2ICs3MSw3IEBAIGNvbnN0IGRv
dWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgICAgICAsIG1fbW9kaWZpZXJGbGFn
cygwKQogICAgICAgICAgICAgLCBtX2ZvcmNlKGZvcmNlKQogICAgICAgICAgICAgLCBtX3N5bnRo
ZXRpY0NsaWNrVHlwZShzeW50aGV0aWNDbGlja1R5cGUpCisgICAgICAgICAgICAsIG1fcG9pbnRl
cklkKHBvaW50ZXJJZCkKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICAsIG1fZXZlbnRO
dW1iZXIoMCkKICAgICAgICAgICAgICwgbV9tZW51VHlwZUZvckV2ZW50KDApCkBAIC05MSw2ICs5
Myw3IEBAIGNvbnN0IGRvdWJsZSBGb3JjZUF0Rm9yY2VDbGljayA9IDI7CiAgICAgICAgIHVuc2ln
bmVkIG1vZGlmaWVyRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX21vZGlmaWVyRmxhZ3M7IH0KICAg
ICAgICAgZG91YmxlIGZvcmNlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZTsgfQogICAgICAgICBT
eW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9z
eW50aGV0aWNDbGlja1R5cGU7IH0KKyAgICAgICAgUG9pbnRlcklEIHBvaW50ZXJJZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcG9pbnRlcklkOyB9CiAKICNpZiBQTEFURk9STShHVEspIAogICAgICAgICBl
eHBsaWNpdCBQbGF0Zm9ybU1vdXNlRXZlbnQoR2RrRXZlbnRCdXR0b24qKTsKQEAgLTEyMSw2ICsx
MjQsNyBAQCBjb25zdCBkb3VibGUgRm9yY2VBdEZvcmNlQ2xpY2sgPSAyOwogICAgICAgICB1bnNp
Z25lZCBtX21vZGlmaWVyRmxhZ3M7CiAgICAgICAgIGRvdWJsZSBtX2ZvcmNlIHsgMCB9OwogICAg
ICAgICBTeW50aGV0aWNDbGlja1R5cGUgbV9zeW50aGV0aWNDbGlja1R5cGUgeyBOb1RhcCB9Owor
ICAgICAgICBQb2ludGVySUQgbV9wb2ludGVySWQgeyBtb3VzZVBvaW50ZXJJRCgpIH07CiAKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgICAgIGludCBtX2V2ZW50TnVtYmVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9pbnRlcklELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Qb2ludGVySUQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTA5YmM2OTYzNmNkYWFkNjJiYzJhNDVmYTNj
OWI1YzIwNDg2NDlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UG9pbnRlcklELmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit1c2luZyBQb2ludGVySUQgPSBpbnQzMl90OworCitpbmxpbmUgUG9pbnRlcklEIG1vdXNlUG9p
bnRlcklEKCkgeyByZXR1cm4gMTsgfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGMwZTkyZTMxYzUxNGYzODA3NjAxMzA1NGE1ZDAyYjVjNmU2NTlkZGYuLmNh
YTQ0YzNmYTE3YmExZDBjNjhhZjBjZmYwOTNlNzY4N2NlMWE5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjEyLDggKzEyMTIsMTIgQEAgcHVibGljOgogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCB3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9v
bWluZygpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIHZvaWQgZm9yZ2V0UG9p
bnRlcihXZWJDb3JlOjpQb2ludGVySUQpOworI2VuZGlmCisKICAgICB2b2lkIHBvdGVudGlhbFRh
cEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVz
dE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiwgdWludDY0X3QmIHJlcXVlc3RJRCk7Ci0gICAgdm9p
ZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVy
PiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOworICAg
IHZvaWQgY29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2Rp
Zmllcj4sIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0LCBX
ZWJDb3JlOjpQb2ludGVySUQpOwogICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7CiAgICAg
dm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1
aW50NjRfdCYgcmVxdWVzdElEKTsKICAgICB2b2lkIGhhbmRsZVRhcChjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0
X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggY2NlOWFkYmZlNGFkYmM4NTY5ZGE2ZGFkZWQzNWZjYTlhMjJhNWIzOS4uZDI5Y2JmMzAz
MWNlODMxY2UzYzI3MjI1NzhkMzQwYWQ0ZTdkNzJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03Mjcs
NiArNzI3LDkgQEAgLSAodm9pZClzZXR1cEludGVyYWN0aW9uCiAgICAgW19zaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICBbX3NpbmdsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyIHNldEdlc3R1cmVJZGVudGlmaWVkVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rv
cihfc2luZ2xlVGFwSWRlbnRpZmllZDopXTsKICAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyIHNldFJlc2V0VGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwRGlkUmVz
ZXQ6KV07CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFtfc2luZ2xlVGFwR2VzdHVy
ZVJlY29nbml6ZXIgc2V0U3VwcG9ydGluZ1dlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXI6
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjZW5kaWYKICAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwog
CiAgICAgX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtb
VUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246
QHNlbGVjdG9yKF9ub25CbG9ja2luZ0RvdWJsZVRhcFJlY29nbml6ZWQ6KV0pOwpAQCAtODY0LDYg
Kzg2Nyw5IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgW19zaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJl
Y29nbml6ZXIgc2V0R2VzdHVyZUlkZW50aWZpZWRUYXJnZXQ6bmlsIGFjdGlvbjpuaWxdOwogICAg
IFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0UmVzZXRUYXJnZXQ6bmlsIGFjdGlvbjpu
aWxdOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBbX3NpbmdsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyIHNldFN1cHBvcnRpbmdXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyOm5p
bF07CisjZW5kaWYKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFw
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCiAgICAgW19oaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAtMjMxMiw2ICsyMzE4LDEwIEBAIC0g
KHZvaWQpX3NpbmdsZVRhcERpZFJlc2V0OihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVy
ZVJlY29nbml6ZXIKIHsKICAgICBBU1NFUlQoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3NpbmdsZVRh
cEdlc3R1cmVSZWNvZ25pemVyKTsKICAgICBjYW5jZWxQb3RlbnRpYWxUYXBJZk5lY2Vzc2FyeShz
ZWxmKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKGF1dG8qIHNpbmdsZVRh
cFRvdWNoSWRlbnRpZmllciA9IFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgbGFzdEFjdGl2
ZVRvdWNoSWRlbnRpZmllcl0pCisgICAgICAgIF9wYWdlLT5mb3JnZXRQb2ludGVyKFtzaW5nbGVU
YXBUb3VjaElkZW50aWZpZXIgdW5zaWduZWRJbnRWYWx1ZV0pOworI2VuZGlmCiB9CiAKIC0gKHZv
aWQpX2RvdWJsZVRhcERpZEZhaWw6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplcgpAQCAtMjM3NSw3ICsyMzg1LDEyIEBAIC0gKHZvaWQpX3NpbmdsZVRhcFJlY29nbml6
ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogCiAgICAgUkVM
RUFTRV9MT0coVmlld0dlc3R1cmVzLCAiU2luZ2xlIHRhcCByZWNvZ25pemVkIC0gY29tbWl0IHBv
dGVudGlhbCB0YXAgKCVwKSIsIHNlbGYpOwogCi0gICAgX3BhZ2UtPmNvbW1pdFBvdGVudGlhbFRh
cChXZWJLaXQ6OndlYkV2ZW50TW9kaWZpZXJGbGFncyhnZXN0dXJlUmVjb2duaXplck1vZGlmaWVy
RmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIpKSwgX2xheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RU
b3VjaFN0YXJ0KTsKKyAgICBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkID0gV2ViQ29yZTo6
bW91c2VQb2ludGVySUQoKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKGF1
dG8qIHNpbmdsZVRhcFRvdWNoSWRlbnRpZmllciA9IFtfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6
ZXIgbGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllcl0pCisgICAgICAgIHBvaW50ZXJJZCA9IFtzaW5n
bGVUYXBUb3VjaElkZW50aWZpZXIgdW5zaWduZWRJbnRWYWx1ZV07CisjZW5kaWYKKyAgICBfcGFn
ZS0+Y29tbWl0UG90ZW50aWFsVGFwKFdlYktpdDo6d2ViRXZlbnRNb2RpZmllckZsYWdzKGdlc3R1
cmVSZWNvZ25pemVyTW9kaWZpZXJGbGFncyhnZXN0dXJlUmVjb2duaXplcikpLCBfbGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIHBvaW50ZXJJZCk7CiAKICAgICBpZiAoIV9p
c0V4cGVjdGluZ0Zhc3RTaW5nbGVUYXBDb21taXQpCiAgICAgICAgIFtzZWxmIF9maW5pc2hJbnRl
cmFjdGlvbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50
aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIuaAppbmRleCAyZmVmZmIxMzcwYTcxNzc0
YTEzMTE1NzAzOTE0MWRlNTg1MDk3NmE5Li4wZjIxNTIyY2JjNDRiYWU4ZDAwYTMyYzZmOGU1ODhj
M2Q3ZjE5N2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tTeW50
aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLmgKQEAgLTM1LDYgKzM1LDEwIEBA
CiAtICh2b2lkKXNldEdlc3R1cmVJZGVudGlmaWVkVGFyZ2V0OihpZCl0YXJnZXQgYWN0aW9uOihT
RUwpYWN0aW9uOwogLSAodm9pZClzZXRHZXN0dXJlRmFpbGVkVGFyZ2V0OihpZCl0YXJnZXQgYWN0
aW9uOihTRUwpYWN0aW9uOwogLSAodm9pZClzZXRSZXNldFRhcmdldDooaWQpdGFyZ2V0IGFjdGlv
bjooU0VMKWFjdGlvbjsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitAcHJvcGVydHkgKG5v
bmF0b21pYywgd2VhaykgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyKiBzdXBwb3J0
aW5nV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNOdW1iZXIqIGxhc3RBY3RpdmVUb3VjaElkZW50aWZpZXI7CisjZW5kaWYK
IEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLU3ludGhldGljVGFwR2VzdHVyZVJlY29nbml6ZXIubQppbmRleCBiNDlmYzM0Yzgw
Njk2Y2FiZjE3MDMxNDQyMTFjMTdjZjdjY2UzYTU2Li4yNDQxOTg4MTI2NjdkNzNhNDUzOTIzYjA1
NmE1Y2JiODViODA4MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tTeW50aGV0aWNUYXBHZXN0dXJlUmVjb2duaXplci5tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1N5bnRoZXRpY1RhcEdlc3R1cmVSZWNvZ25pemVyLm0KQEAgLTcwLDYgKzcw
LDI2IEBAIC0gKHZvaWQpcmVzZXQKIHsKICAgICBbc3VwZXIgcmVzZXRdOwogICAgIFtfcmVzZXRU
YXJnZXQgcGVyZm9ybVNlbGVjdG9yOl9yZXNldEFjdGlvbiB3aXRoT2JqZWN0OnNlbGZdOworICAg
IF9sYXN0QWN0aXZlVG91Y2hJZGVudGlmaWVyID0gbmlsOworfQorCistICh2b2lkKXRvdWNoZXNF
bmRlZDooTlNTZXQ8VUlUb3VjaCAqPiAqKXRvdWNoZXMgd2l0aEV2ZW50OihVSUV2ZW50ICopZXZl
bnQKK3sKKyAgICBbc3VwZXIgdG91Y2hlc0VuZGVkOnRvdWNoZXMgd2l0aEV2ZW50OmV2ZW50XTsK
KyAgICBpZiAoIV9zdXBwb3J0aW5nV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcikKKyAg
ICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKSAmJiBIQVZFKFVJX1dF
Ql9UT1VDSF9FVkVOVFNfR0VTVFVSRV9SRUNPR05JWkVSX1dJVEhfQUNUSVZFX1RPVUNIRVNfQllf
SUQpCisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS80ODAzNTcwNj4KKyAgICBOU01hcFRh
YmxlPE5TTnVtYmVyICosIFVJVG91Y2ggKj4gKmFjdGl2ZVRvdWNoZXMgPSBbX3N1cHBvcnRpbmdX
ZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyIGFjdGl2ZVRvdWNoZXNCeUlkZW50aWZpZXJd
OworICAgIGZvciAoTlNOdW1iZXIgKnRvdWNoSWRlbnRpZmllciBpbiBhY3RpdmVUb3VjaGVzKSB7
CisgICAgICAgIFVJVG91Y2ggKnRvdWNoID0gW2FjdGl2ZVRvdWNoZXMgb2JqZWN0Rm9yS2V5OnRv
dWNoSWRlbnRpZmllcl07CisgICAgICAgIGlmIChbdG91Y2guZ2VzdHVyZVJlY29nbml6ZXJzIGNv
bnRhaW5zT2JqZWN0OnNlbGZdKSB7CisgICAgICAgICAgICBfbGFzdEFjdGl2ZVRvdWNoSWRlbnRp
ZmllciA9IHRvdWNoSWRlbnRpZmllcjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KKyNlbmRpZgogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBmYWJhZmVmMWViOWFmODZiOTY1YzczYWViOTlhYmY3
M2Q1MWI3MjZjLi41NTVlMTIwYWZhM2IyMjNhMTEzZmZjZDcwNmU1MmU4ZDFlZjA1ODhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTgz
NiwxNSArODM2LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVk
Wm9vbWluZygpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OldpbGxTdGFy
dFVzZXJUcmlnZ2VyZWRab29taW5nKCksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb3JnZXRQb2ludGVyKFdlYkNvcmU6OlBv
aW50ZXJJRCBwb2ludGVySWQpCit7CisgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OkZvcmdldFBvaW50ZXIocG9pbnRlcklkKSwgbV9wYWdlSUQpOworfQorI2VuZGlmCisKIHZv
aWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmIHBvc2l0aW9uLCBib29sIHNob3VsZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3Jt
YXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCiB7CiAgICAgaGlkZVZhbGlkYXRpb25NZXNzYWdl
KCk7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0
UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbiksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFBv
dGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2
NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBt
b2RpZmllcnMsIHVpbnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0
LCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewotICAgIHByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobW9kaWZpZXJzLCBsYXllclRyZWVU
cmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCksIG1fcGFnZUlEKTsKKyAgICBwcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29tbWl0UG90ZW50aWFsVGFwKG1vZGlmaWVycywgbGF5
ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQsIHBvaW50ZXJJZCksIG1fcGFnZUlE
KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFBvdGVudGlhbFRhcCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNWZjNTE5YjM5YjNmOGY1
MzY3MWIzMWVjY2Y3OWI3YjhkM2MzNzcwMC4uMjYyMmE1NzM3OGZiOTlhOGNmMTUxMzg0ODZlN2Ey
OWZkM2JlNmU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtNjIyLDkgKzYyMiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd3NVc2VyU2NhbGlu
ZygpIGNvbnN0OwogICAgIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3I7IH0KIAorI2lmIEVOQUJMRShQT0lOVEVS
X0VWRU5UUykKKyAgICB2b2lkIGZvcmdldFBvaW50ZXIoV2ViQ29yZTo6UG9pbnRlcklEKTsKKyNl
bmRpZgorCiAgICAgdm9pZCBoYW5kbGVUYXAoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZCk7CiAgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVz
dE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbik7Ci0gICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAo
T3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgbGFzdExheWVy
VHJlZVRyYW5zYWN0aW9uSWQpOworICAgIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNl
dDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFu
c2FjdGlvbklkLCBXZWJDb3JlOjpQb2ludGVySUQpOwogICAgIHZvaWQgY29tbWl0UG90ZW50aWFs
VGFwRmFpbGVkKCk7CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIGNh
bmNlbFBvdGVudGlhbFRhcEluRnJhbWUoV2ViRnJhbWUmKTsKQEAgLTEyMzQsOCArMTIzOCw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKEZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24mKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZUFjY2Vzc2li
aWxpdHkoKTsKICAgICB2b2lkIGdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoU3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlKTsKLSAgICB2b2lkIGhhbmRsZVN5bnRoZXRpY0NsaWNrKFdl
YkNvcmU6Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4pOwot
ICAgIHZvaWQgY29tcGxldGVTeW50aGV0aWNDbGljayhXZWJDb3JlOjpOb2RlJiBub2RlUmVzcG9u
ZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJDb3JlOjpTeW50aGV0aWNDbGlja1R5
cGUpOworICAgIHZvaWQgaGFuZGxlU3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9kZSYgbm9kZVJl
c3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0
aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgV2ViQ29yZTo6UG9pbnRlcklEID0g
V2ViQ29yZTo6bW91c2VQb2ludGVySUQoKSk7CisgICAgdm9pZCBjb21wbGV0ZVN5bnRoZXRpY0Ns
aWNrKFdlYkNvcmU6Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cj4sIFdlYkNvcmU6OlN5bnRoZXRpY0NsaWNrVHlwZSwgV2ViQ29yZTo6UG9pbnRlcklEID0gV2Vi
Q29yZTo6bW91c2VQb2ludGVySUQoKSk7CiAgICAgdm9pZCBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9k
ZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSopOwogICAgIHZv
aWQgcmVzZXRUZXh0QXV0b3NpemluZygpOwogICAgIFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiB2
aXNpYmxlUG9zaXRpb25JbkZvY3VzZWROb2RlRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCk7CkBAIC0xODQ0LDYgKzE4NDgsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbjsKICAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgbV9wcmV2aW91c0V4cG9zZWRDb250ZW50UmVjdDsKICAgICBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTW9kaWZpZXJz
OworICAgIFdlYkNvcmU6OlBvaW50ZXJJRCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja1BvaW50ZXJJ
ZCB7IDAgfTsKICAgICBGb2N1c2VkRWxlbWVudElkZW50aWZpZXIgbV9jdXJyZW50Rm9jdXNlZEVs
ZW1lbnRJZGVudGlmaWVyIHsgMCB9OwogICAgIE9wdGlvbmFsPER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRD4gbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogICAgIGRvdWJs
ZSBtX2xhc3RUcmFuc2FjdGlvblBhZ2VTY2FsZUZhY3RvciB7IDAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDRk
YzY3YmY5NjI1YmIyZmNjYzhiYWZmNjNmODI0NWRmOWUyNTk0YjUuLmFkZDUxMDQ1MjIwZTFlMTc3
YzlmOTI3ZjMyNGVlNzVlNzZiNjBkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTEsOSArNTEsMTAgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9y
dEFyZ3VtZW50cyhPcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRz
KQogICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdM
YXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJD
b3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJl
Y3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+
IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRl
dmljZU9yaWVudGF0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpCiAK
KyAgICBGb3JnZXRQb2ludGVyKFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiAgICAgSGFu
ZGxlVGFwKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWQpCiAgICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNv
cmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZv
cm1hdGlvbikKLSAgICBDb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlv
bklkKQorICAgIENvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6
TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQs
IFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCiAgICAgQ2FuY2VsUG90ZW50aWFsVGFwKCkK
ICAgICBUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6
RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3MoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCAx
ODc0ZDA0M2VkNDlmOWZmZmVlNDZmNTFiMDJjNGQ2ZTE1YzgwYmIyLi40MjU5MTRkN2QwMDJmN2Vj
NzhkNDA2ZWE1NmFhZjYzM2RjOGFkOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTA4LDYgKzEwOCw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXli
b2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUXVpcmtzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckJsb2NrLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1JlbmRlckltYWdlLmg+CkBAIC01NjMsMTQgKzU2NCwxNCBAQCB2b2lkIFdlYlBhZ2U6
OnVwZGF0ZVNlbGVjdGlvbkFwcGVhcmFuY2UoKQogICAgICAgICBkaWRDaGFuZ2VTZWxlY3Rpb24o
KTsKIH0KIAotc3RhdGljIHZvaWQgZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU1vdmUoRnJhbWUmIG1h
aW5GcmFtZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycykKK3N0YXRpYyB2b2lkIGRpc3BhdGNoU3ludGhl
dGljTW91c2VNb3ZlKEZyYW1lJiBtYWluRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYkNv
cmU6OlBvaW50ZXJJRCBwb2ludGVySWQgPSBXZWJDb3JlOjptb3VzZVBvaW50ZXJJRCgpKQogewog
ICAgIEludFBvaW50IHJvdW5kZWRBZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KGxvY2F0
aW9uKTsKICAgICBhdXRvIHNoaWZ0S2V5ID0gbW9kaWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpN
b2RpZmllcjo6U2hpZnRLZXkpOwogICAgIGF1dG8gY3RybEtleSA9IG1vZGlmaWVycy5jb250YWlu
cyhXZWJFdmVudDo6TW9kaWZpZXI6OkNvbnRyb2xLZXkpOwogICAgIGF1dG8gYWx0S2V5ID0gbW9k
aWZpZXJzLmNvbnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKICAgICBhdXRvIG1l
dGFLZXkgPSBtb2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsK
LSAgICBhdXRvIG1vdXNlRXZlbnQgPSBQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVk
UG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91
c2VNb3ZlZCwgMCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRpbWU6
Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwKTsKKyAgICBhdXRv
IG1vdXNlRXZlbnQgPSBQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJv
dW5kZWRBZGp1c3RlZFBvaW50LCBOb0J1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VNb3ZlZCwg
MCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwgbWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIFdlYkNvcmU6Ok5vVGFwLCBwb2ludGVySWQpOwogICAgIC8v
IEZJWE1FOiBQYXNzIGNhcHMgbG9jayBzdGF0ZS4KICAgICBtYWluRnJhbWUuZXZlbnRIYW5kbGVy
KCkuZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU1vdmUobW91c2VFdmVudCk7CiB9CkBAIC02MjcsMTAg
KzYyOCwxMCBAQCB2b2lkIFdlYlBhZ2U6OmdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQo
U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlIGNvbW1hbgogICAgIGZyYW1lLmV2ZW50SGFuZGxl
cigpLmtleUV2ZW50KGtleUV2ZW50KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0
aWNDbGljayhOb2RlJiBub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGxvY2F0aW9uLCBPcHRpb25TZXQ8V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMp
Cit2b2lkIFdlYlBhZ2U6OmhhbmRsZVN5bnRoZXRpY0NsaWNrKE5vZGUmIG5vZGVSZXNwb25kaW5n
VG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViQ29yZTo6UG9pbnRlcklEIHBvaW50ZXJJ
ZCkKIHsKICAgICBpZiAoIW5vZGVSZXNwb25kaW5nVG9DbGljay5kb2N1bWVudCgpLnNldHRpbmdz
KCkuY29udGVudENoYW5nZU9ic2VydmVyRW5hYmxlZCgpKSB7Ci0gICAgICAgIGNvbXBsZXRlU3lu
dGhldGljQ2xpY2sobm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBsb2NhdGlvbiwgbW9kaWZpZXJzLCBX
ZWJDb3JlOjpPbmVGaW5nZXJUYXApOworICAgICAgICBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKG5v
ZGVSZXNwb25kaW5nVG9DbGljaywgbG9jYXRpb24sIG1vZGlmaWVycywgV2ViQ29yZTo6T25lRmlu
Z2VyVGFwLCBwb2ludGVySWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02MzksNyAr
NjQwLDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVTeW50aGV0aWNDbGljayhOb2RlJiBub2RlUmVz
cG9uZGluZ1RvQ2xpY2ssIGNvbnN0IFdlYkNvcmU6OkYKICAgICAgICAgTE9HX1dJVEhfU1RSRUFN
KENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8ICJoYW5kbGVTeW50aGV0aWNDbGljazogbm9k
ZSgiIDw8ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2sgPDwgIikgIiA8PCBsb2NhdGlvbik7CiAgICAg
ICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6TW91c2VNb3ZlZFNjb3BlIG9ic2VydmluZ1Njb3Bl
KHJlc3BvbmRpbmdEb2N1bWVudCk7CiAgICAgICAgIGF1dG8mIG1haW5GcmFtZSA9IG1fcGFnZS0+
bWFpbkZyYW1lKCk7Ci0gICAgICAgIGRpc3BhdGNoU3ludGhldGljTW91c2VNb3ZlKG1haW5GcmFt
ZSwgbG9jYXRpb24sIG1vZGlmaWVycyk7CisgICAgICAgIGRpc3BhdGNoU3ludGhldGljTW91c2VN
b3ZlKG1haW5GcmFtZSwgbG9jYXRpb24sIG1vZGlmaWVycywgcG9pbnRlcklkKTsKICAgICAgICAg
bWFpbkZyYW1lLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICB9CiAKQEAg
LTY1OSwyMiArNjYwLDIzIEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9k
ZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIG1fcGVu
ZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSA9ICZub2RlUmVzcG9uZGluZ1RvQ2xpY2s7CiAgICAgICAg
IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBsb2NhdGlvbjsKICAgICAgICAgbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSBtb2RpZmllcnM7CisgICAgICAgIG1fcGVu
ZGluZ1N5bnRoZXRpY0NsaWNrUG9pbnRlcklkID0gcG9pbnRlcklkOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHRhcmdldE5vZGUgPSBSZWY8Tm9kZT4obm9kZVJlc3BvbmRpbmdUb0NsaWNrKSwg
bG9jYXRpb24sIG1vZGlmaWVycywgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlLCB0YXJnZXROb2RlVHJp
Z2dlcnNDbGlja10geworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpLCB0YXJnZXROb2RlID0gUmVmPE5vZGU+KG5vZGVSZXNwb25kaW5nVG9DbGlj
ayksIGxvY2F0aW9uLCBtb2RpZmllcnMsIG9ic2VydmVkQ29udGVudENoYW5nZSwgdGFyZ2V0Tm9k
ZVRyaWdnZXJzQ2xpY2ssIHBvaW50ZXJJZF0gewogICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+
bV9pc0Nsb3NlZCB8fCAhcHJvdGVjdGVkVGhpcy0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBhdXRvIHNob3VsZFN0YXlBdEhvdmVyU3RhdGUgPSBvYnNlcnZlZENv
bnRlbnRDaGFuZ2UgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNoYW5nZSAmJiAhdGFyZ2V0Tm9kZVRy
aWdnZXJzQ2xpY2s7CiAgICAgICAgIGlmIChzaG91bGRTdGF5QXRIb3ZlclN0YXRlKSB7CiAgICAg
ICAgICAgICAvLyBUaGUgbW92ZSBldmVudCBjYXVzZWQgbmV3IGNvbnRlbnRzIHRvIGFwcGVhci4g
RG9uJ3Qgc2VuZCBzeW50aGV0aWMgY2xpY2sgZXZlbnQsIGJ1dCBqdXN0IGVuc3VyZSB0aGF0IHRo
ZSBtb3VzZSBpcyBvbiB0aGUgbW9zdCByZWNlbnQgY29udGVudC4KLSAgICAgICAgICAgIGRpc3Bh
dGNoU3ludGhldGljTW91c2VNb3ZlKHByb3RlY3RlZFRoaXMtPmNvcmVQYWdlKCktPm1haW5GcmFt
ZSgpLCBsb2NhdGlvbiwgbW9kaWZpZXJzKTsKKyAgICAgICAgICAgIGRpc3BhdGNoU3ludGhldGlj
TW91c2VNb3ZlKHByb3RlY3RlZFRoaXMtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLCBsb2NhdGlv
biwgbW9kaWZpZXJzLCBwb2ludGVySWQpOwogICAgICAgICAgICAgTE9HKENvbnRlbnRPYnNlcnZh
dGlvbiwgImhhbmRsZVN5bnRoZXRpY0NsaWNrOiBPYnNlcnZlZCBtZWFuaW5nZnVsIHZpc2libGUg
Y2hhbmdlIC0+IGhvdmVyLiIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJoYW5kbGVTeW50aGV0aWNDbGljazogY2FsbGlu
ZyBjb21wbGV0ZVN5bnRoZXRpY0NsaWNrIC0+IGNsaWNrLiIpOwotICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5jb21wbGV0ZVN5bnRoZXRpY0NsaWNrKHRhcmdldE5vZGUsIGxvY2F0aW9uLCBtb2RpZmll
cnMsIFdlYkNvcmU6Ok9uZUZpbmdlclRhcCk7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPmNvbXBs
ZXRlU3ludGhldGljQ2xpY2sodGFyZ2V0Tm9kZSwgbG9jYXRpb24sIG1vZGlmaWVycywgV2ViQ29y
ZTo6T25lRmluZ2VyVGFwLCBwb2ludGVySWQpOwogICAgIH0pOwogfQogCkBAIC02ODcsMTkgKzY4
OSwyMCBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlUGVuZGluZ1N5bnRoZXRpY0NsaWNrRm9yQ29u
dGVudENoYW5nZU9ic2VydmVyKCkKICAgICAvLyBPbmx5IGRpc3BhdGNoIHRoZSBjbGljayBpZiB0
aGUgZG9jdW1lbnQgZGlkbid0IGdldCBjaGFuZ2VkIGJ5IGFueSB0aW1lcnMgc3RhcnRlZCBieSB0
aGUgbW92ZSBldmVudC4KICAgICBpZiAob2JzZXJ2ZWRDb250ZW50Q2hhbmdlID09IFdLQ29udGVu
dE5vQ2hhbmdlKSB7CiAgICAgICAgIExPRyhDb250ZW50T2JzZXJ2YXRpb24sICJObyBjaGFnZSB3
YXMgb2JzZXJ2ZWQgLT4gY2xpY2suIik7Ci0gICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2so
Km1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2Nh
dGlvbiwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMsIFdlYkNvcmU6Ok9uZUZpbmdl
clRhcCk7CisgICAgICAgIGNvbXBsZXRlU3ludGhldGljQ2xpY2soKm1fcGVuZGluZ1N5bnRoZXRp
Y0NsaWNrTm9kZSwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tMb2NhdGlvbiwgbV9wZW5kaW5nU3lu
dGhldGljQ2xpY2tNb2RpZmllcnMsIFdlYkNvcmU6Ok9uZUZpbmdlclRhcCwgbV9wZW5kaW5nU3lu
dGhldGljQ2xpY2tQb2ludGVySWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEVuc3VyZSB0
aGF0IHRoZSBtb3VzZSBpcyBvbiB0aGUgbW9zdCByZWNlbnQgY29udGVudC4KLSAgICAgICAgZGlz
cGF0Y2hTeW50aGV0aWNNb3VzZU1vdmUobV9wYWdlLT5tYWluRnJhbWUoKSwgbV9wZW5kaW5nU3lu
dGhldGljQ2xpY2tMb2NhdGlvbiwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMpOwor
ICAgICAgICBkaXNwYXRjaFN5bnRoZXRpY01vdXNlTW92ZShtX3BhZ2UtPm1haW5GcmFtZSgpLCBt
X3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0aW9uLCBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01v
ZGlmaWVycywgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWQpOwogICAgICAgICBMT0co
Q29udGVudE9ic2VydmF0aW9uLCAiT2JzZXJ2ZWQgbWVhbmluZ2Z1bCB2aXNpYmxlIGNoYW5nZSAt
PiBob3Zlci4iKTsKICAgICB9CiAKICAgICBtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUgPSBu
dWxscHRyOwogICAgIG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTG9jYXRpb24gPSBGbG9hdFBvaW50
KCk7CiAgICAgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMgPSB7IH07CisgICAgbV9w
ZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWQgPSAwOwogfQogCi12b2lkIFdlYlBhZ2U6OmNv
bXBsZXRlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmll
cj4gbW9kaWZpZXJzLCBTeW50aGV0aWNDbGlja1R5cGUgc3ludGhldGljQ2xpY2tUeXBlKQordm9p
ZCBXZWJQYWdlOjpjb21wbGV0ZVN5bnRoZXRpY0NsaWNrKE5vZGUmIG5vZGVSZXNwb25kaW5nVG9D
bGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24sIE9wdGlvblNldDxXZWJF
dmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgU3ludGhldGljQ2xpY2tUeXBlIHN5bnRoZXRpY0Ns
aWNrVHlwZSwgV2ViQ29yZTo6UG9pbnRlcklEIHBvaW50ZXJJZCkKIHsKICAgICBJbnRQb2ludCBy
b3VuZGVkQWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbik7CiAgICAgRnJh
bWUmIG1haW5mcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7CkBAIC03MTgsMTEgKzcyMSwxMSBA
QCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xpY2soTm9kZSYgbm9kZVJlc3BvbmRp
bmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOgogICAgIGJvb2wgYWx0S2V5ID0gbW9kaWZpZXJzLmNv
bnRhaW5zKFdlYkV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKICAgICBib29sIG1ldGFLZXkgPSBt
b2RpZmllcnMuY29udGFpbnMoV2ViRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKIAotICAgIHRh
cFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NF
dmVudChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRBZGp1
c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIHNo
aWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgV2ViQ29y
ZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5cGUpKTsKKyAgICB0YXBXYXNIYW5kbGVk
IHw9IG1haW5mcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQoUGxhdGZv
cm1Nb3VzZUV2ZW50KHJvdW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwg
TGVmdEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBzaGlmdEtleSwgY3Ry
bEtleSwgYWx0S2V5LCBtZXRhS2V5LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OkZvcmNlQXRD
bGljaywgc3ludGhldGljQ2xpY2tUeXBlLCBwb2ludGVySWQpKTsKICAgICBpZiAobV9pc0Nsb3Nl
ZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdGFwV2FzSGFuZGxlZCB8PSBtYWluZnJhbWUuZXZl
bnRIYW5kbGVyKCkuaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50KHJv
dW5kZWRBZGp1c3RlZFBvaW50LCByb3VuZGVkQWRqdXN0ZWRQb2ludCwgTGVmdEJ1dHRvbiwgUGxh
dGZvcm1FdmVudDo6TW91c2VSZWxlYXNlZCwgMSwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwg
bWV0YUtleSwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpGb3JjZUF0Q2xpY2ssIHN5bnRoZXRp
Y0NsaWNrVHlwZSkpOworICAgIHRhcFdhc0hhbmRsZWQgfD0gbWFpbmZyYW1lLmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChyb3VuZGVkQWRq
dXN0ZWRQb2ludCwgcm91bmRlZEFkanVzdGVkUG9pbnQsIExlZnRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUmVsZWFzZWQsIDEsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXks
IFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6Rm9yY2VBdENsaWNrLCBzeW50aGV0aWNDbGlja1R5
cGUsIHBvaW50ZXJJZCkpOwogICAgIGlmIChtX2lzQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAK
QEAgLTczOCw3ICs3NDEsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXBsZXRlU3ludGhldGljQ2xpY2so
Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOgogCiAgICAgLy8gT25s
eSBzZW5kIGEgc3ludGhldGljIG1vdXNlIG91dCBldmVudCBpZiBzeW50aGV0aWMgbW91c2UgbW92
ZSBldmVudHMgd2VyZSBzZW50OyB0aGlzIGlzIHRydWUgd2hlbiBDb250ZW50Q2hhbmdlT2JzZXJ2
ZXIgaXMgZW5hYmxlZC4KICAgICBpZiAobm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCku
c2V0dGluZ3MoKS5jb250ZW50Q2hhbmdlT2JzZXJ2ZXJFbmFibGVkKCkgJiYgIXRhcFdhc0hhbmRs
ZWQgJiYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAg
bm9kZVJlc3BvbmRpbmdUb0NsaWNrLmRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
ZGlzcGF0Y2hTeW50aGV0aWNNb3VzZU91dChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVz
dGVkUG9pbnQsIHJvdW5kZWRBZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50
OjpOb1R5cGUsIDAsIHNoaWZ0S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxUaW1l
Ojpub3coKSwgMCwgV2ViQ29yZTo6Tm9UYXApKTsKKyAgICAgICAgbm9kZVJlc3BvbmRpbmdUb0Ns
aWNrLmRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkuZGlzcGF0Y2hTeW50aGV0aWNN
b3VzZU91dChQbGF0Zm9ybU1vdXNlRXZlbnQocm91bmRlZEFkanVzdGVkUG9pbnQsIHJvdW5kZWRB
ZGp1c3RlZFBvaW50LCBMZWZ0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpOb1R5cGUsIDAsIHNoaWZ0
S2V5LCBjdHJsS2V5LCBhbHRLZXksIG1ldGFLZXksIFdhbGxUaW1lOjpub3coKSwgMCwgV2ViQ29y
ZTo6Tm9UYXAsIHBvaW50ZXJJZCkpOwogCiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJl
dHVybjsKQEAgLTk1OSw3ICs5NjIsNyBAQCB2b2lkIFdlYlBhZ2U6OnBvdGVudGlhbFRhcEF0UG9z
aXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tbWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9u
SWQpCit2b2lkIFdlYlBhZ2U6OmNvbW1pdFBvdGVudGlhbFRhcChPcHRpb25TZXQ8V2ViRXZlbnQ6
Ok1vZGlmaWVyPiBtb2RpZmllcnMsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklk
LCBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkKQogewogICAgIGlmICghbV9wb3RlbnRpYWxU
YXBOb2RlIHx8ICghbV9wb3RlbnRpYWxUYXBOb2RlLT5yZW5kZXJlcigpICYmICFpczxIVE1MQXJl
YUVsZW1lbnQ+KG1fcG90ZW50aWFsVGFwTm9kZS5nZXQoKSkpKSB7CiAgICAgICAgIGNvbW1pdFBv
dGVudGlhbFRhcEZhaWxlZCgpOwpAQCAtOTgzLDcgKzk4Niw3IEBAIHZvaWQgV2ViUGFnZTo6Y29t
bWl0UG90ZW50aWFsVGFwKE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywg
dWludDY0CiAgICAgICAgICAgICBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKICAgICAgICAg
fSBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIGhhbmRsZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVz
cG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlmaWVycyk7CisgICAgICAgICAgICBo
YW5kbGVTeW50aGV0aWNDbGljaygqbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBhZGp1c3RlZFBvaW50
LCBtb2RpZmllcnMsIHBvaW50ZXJJZCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGNvbW1pdFBvdGVu
dGlhbFRhcEZhaWxlZCgpOwogCkBAIC0xMDMzLDYgKzEwMzYsMTMgQEAgdm9pZCBXZWJQYWdlOjp0
YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2lu
dCYgcG9zaXQKICAgICBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJ
RCwgbWFpbmZyYW1lLm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhwb3NpdGlvbiwgYWRqdXN0
ZWRQb2ludCkpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordm9pZCBXZWJQYWdl
Ojpmb3JnZXRQb2ludGVyKFdlYkNvcmU6OlBvaW50ZXJJRCBwb2ludGVySWQpCit7CisgICAgbV9w
YWdlLT5wb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIoKS5mb3JnZXRQb2ludGVyKHBvaW50ZXJJZCk7
Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjppbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogewogICAgIEludFBvaW50IGFkanVz
dGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMzNjA5MTVlNzky
M2E5MzQzNjZiM2U5ZmYzOGEyMzVhMGQ3ODQxZjguLjVlNzRiYThmZWQ3OTY0ZjJiMjMwYzQwOWZl
YWUyODdlOTY3ZjNhYzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNS0yMiAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBhdGliaWxp
dHkgbW91c2UgZXZlbnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVs
dCgpIG9uIHBvaW50ZXJkb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTgxMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDEwODYzPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlJ3JlIGFkZGlu
ZyBhbiBpT1Mtc3BlY2lmaWMgZXhwZWN0YXRpb24gc2luY2UgdGhpcyB0ZXN0IHByaW50cyBvdXQg
dGhlIHBvaW50ZXIgdHlwZSBkZXRlY3RlZCB3aGlsZSBpdCBydW5zLCB3aGljaCBpcyAidG91Y2gi
CisgICAgICAgIG9uIGlPUyBhbmQgIm1vdXNlIiBpbiB0aGUgZXhwZWN0YXRpb24gdGhhdCBhbHJl
YWR5IGV4aXN0cyBmb3IgbWFjT1MuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9zdXBwcmVz
c19jb21wYXRfZXZlbnRzX29uX2NsaWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTktMDUt
MjIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91
dCBUZXN0IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2hvd01vZGFsRGlhbG9nLXN5bmMtY3Jvc3Mtb3Jp
Z2luLXBhZ2UtbG9hZDIuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCAxNGM2Yjk1N2UzNDEzYjc1YjI3N2M1YWUxMGU0NjUyY2JiZTg4OTMxLi5mMmY2NDk1
ODc2NDcxMjQ2MDA3MjU5M2VmNTgwN2RjYmQ4MWMzZjI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wNS0yMiAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBhdGliaWxpdHkgbW91c2UgZXZl
bnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIG9uIHBvaW50
ZXJkb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgxMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDEwODYzPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGFkZCBiYXNpYyBzdXBwb3J0IHRv
IHJ1biBhIHRlc3QgdGhhdCB3YXNuJ3Qgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIGZvciBhIHRvdWNo
LWJhc2VkIGludGVyYWN0aW9uIHN1Y2ggdGhhdCB0aGUgdGVzdAorICAgICAgICBhdCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMvcG9pbnRlcmV2ZW50X3N1cHBy
ZXNzX2NvbXBhdF9ldmVudHNfb25fY2xpY2suaHRtbCBtYXkgcnVuIG9uIGlPUy4gVGhlCisgICAg
ICAgIHRyaWNrIGhlcmUgaXMgdG8gYWRkIGEgcGF1c2UgYWZ0ZXIgYSB0b3VjaCBlbmRzIHRvIGF2
b2lkIHRoZSBsaWtlbGlob29kIG9yIHR3byB0YXAgZ2VzdHVyZXMgdHJpZ2dlcmluZyBhIGRvdWJs
ZSB0YXAuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItdmVuZG9yLmpzOgorCiAyMDE5LTA1LTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW21hY09TXSBDb21wYXRpYmlsaXR5IG1vdXNlIGV2ZW50cyBhcmVu
J3QgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBvbiBwb2ludGVyZG93bgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcwppbmRleCAz
MTJiNDhlZGNjNWNlMTA1YzIxODZmY2FjNDI0NzkzMTZhNWMyNmIyLi5jNGJiMjhhNDNiNTE0ZmQ4
MGY1NzMwZGY4ZGYyOTAxOTE5MzBiOGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLXZlbmRvci5qcwpAQCAtNDYsNyArNDYsNyBAQCBmdW5jdGlvbiBkaXNwYXRj
aE1vdXNlQWN0aW9ucyhhY3Rpb25zKQogICAgIH0pOwogfQogCi1mdW5jdGlvbiBkaXNwYXRjaFRv
dWNoQWN0aW9ucyhhY3Rpb25zKQorZnVuY3Rpb24gZGlzcGF0Y2hUb3VjaEFjdGlvbnMoYWN0aW9u
cywgb3B0aW9ucyA9IHsgaW5zZXJ0UGF1c2VBZnRlclBvaW50ZXJVcDogZmFsc2UgfSkKIHsKICAg
ICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8IHR5cGVvZiB3aW5kb3cudGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCAhPT0gImZ1bmN0aW9uIikKICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5l
dyBFcnJvcigid2luZG93LnRlc3RSdW5uZXIucnVuVUlTY3JpcHQoKSBpcyB1bmRlZmluZWQuIikp
OwpAQCAtOTksNiArOTksOSBAQCBmdW5jdGlvbiBkaXNwYXRjaFRvdWNoQWN0aW9ucyhhY3Rpb25z
KQogICAgICAgICAgICAgdG91Y2gueCA9IHg7CiAgICAgICAgICAgICB0b3VjaC55ID0geTsKICAg
ICAgICAgICAgIGlkKys7CisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFkZCBhIHBhdXNlIGFm
dGVyIGEgcG9pbnRlciB1cCB0byBlbnN1cmUgdGhhdCBhIHN1YnNlcXVlbnQgdGFwIG1heSBiZSBy
ZWNvZ25pemVkIGFzIHN1Y2guCisgICAgICAgICAgICBpZiAob3B0aW9ucy5pbnNlcnRQYXVzZUFm
dGVyUG9pbnRlclVwKQorICAgICAgICAgICAgICAgIHRpbWVPZmZzZXRJbmNyZWFzZSA9IDAuNTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJwYXVzZSI6CiAgICAgICAgICAgICB0
aW1lT2Zmc2V0SW5jcmVhc2UgPSBhY3Rpb24uZHVyYXRpb24gLyAxMDAwOwpAQCAtMTczLDggKzE3
NiwxMCBAQCB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuYWN0aW9uX3NlcXVlbmNlID0gZnVu
Y3Rpb24oc291cmNlcykKIAogICAgIGxvZ0RlYnVnKCgpID0+IEpTT04uc3RyaW5naWZ5KHBvaW50
ZXJTb3VyY2UpKTsKIAotICAgIGlmIChwb2ludGVyVHlwZSA9PT0gIm1vdXNlIikKLSAgICAgICAg
cmV0dXJuIGRpc3BhdGNoTW91c2VBY3Rpb25zKHBvaW50ZXJTb3VyY2UuYWN0aW9ucyk7CiAgICAg
aWYgKHBvaW50ZXJUeXBlID09PSAidG91Y2giKQogICAgICAgICByZXR1cm4gZGlzcGF0Y2hUb3Vj
aEFjdGlvbnMocG9pbnRlclNvdXJjZS5hY3Rpb25zKTsKKyAgICBpZiAoImNyZWF0ZVRvdWNoIiBp
biBkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGRpc3BhdGNoVG91Y2hBY3Rpb25zKHBvaW50ZXJT
b3VyY2UuYWN0aW9ucywgeyBpbnNlcnRQYXVzZUFmdGVyUG9pbnRlclVwOiB0cnVlIH0pOworICAg
IGlmIChwb2ludGVyVHlwZSA9PT0gIm1vdXNlIikKKyAgICAgICAgcmV0dXJuIGRpc3BhdGNoTW91
c2VBY3Rpb25zKHBvaW50ZXJTb3VyY2UuYWN0aW9ucyk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRl
cmV2ZW50cy9wb2ludGVyZXZlbnRfc3VwcHJlc3NfY29tcGF0X2V2ZW50c19vbl9jbGljay1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9wb2ludGVyZXZlbnRzL3BvaW50ZXJldmVudF9zdXBwcmVzc19jb21wYXRfZXZl
bnRzX29uX2NsaWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzA4ZDczZjA1YmQzYjA1ZjAw
Yzc0MDVlZTM5NWQ1ZTk3NTY2MWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmV2ZW50cy9w
b2ludGVyZXZlbnRfc3VwcHJlc3NfY29tcGF0X2V2ZW50c19vbl9jbGljay1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyMCBAQAorUG9pbnRlciBFdmVudDogU3VwcHJlc3MgY29tcGF0aWJpbGl0eSBt
b3VzZSBldmVudHMgb24gY2xpY2sKKworV2hlbiBhIHBvaW50ZXJkb3duIGlzIGNhbmNlbGVkLCBh
IGNsaWNrL3RhcCBzaG91bGRuJ3QgZmlyZSBhbnkgY29tcGF0aWJpbGl0eSBtb3VzZSBldmVudHMg
ZXhjZXB0IGNsaWNrIGV2ZW50LgorCitDbGljayBvciB0YXAgb24gVGFyZ2V0MC4KK0NsaWNrIG9y
IHRhcCBvbiBUYXJnZXQxLgorQ2xpY2sgRG9uZS4KK1RhcmdldDAKK1RhcmdldDEKK0RvbmUKK1Ro
ZSBmb2xsb3dpbmcgcG9pbnRlciB0eXBlcyB3ZXJlIGRldGVjdGVkOiB0b3VjaC4KKworVGhlIGZv
bGxvd2luZyBldmVudHMgd2VyZSBsb2dnZWQ6IGNsaWNrQHRhcmdldDAsIG1vdXNlZG93bkB0YXJn
ZXQxLCBtb3VzZXVwQHRhcmdldDEsIGNsaWNrQHRhcmdldDEuCisKKworUEFTUyBTdXBwcmVzcyBj
b21wYXQgbW91c2UgZXZlbnRzIG9uIGNsaWNrIAorUEFTUyBwcmltYXJ5IHBvaW50ZXIgcG9pbnRl
cmRvd25AdGFyZ2V0MCAKK1BBU1MgcHJpbWFyeSBwb2ludGVyIHBvaW50ZXJkb3duQHRhcmdldDEg
CitQQVNTIEV2ZW50IGxvZyAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372625</attachid>
            <date>2019-06-21 03:29:46 -0700</date>
            <delta_ts>2019-06-21 12:10:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198124-20190621122945.patch</filename>
            <type>text/plain</type>
            <size>7795</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2Njc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwNzdjY2RhM2E3ZTI2YmUz
ODFjYTAyMTQ0NTBmZGVkOWUxNTk2M2YuLjI5YzNhMjY5NDA4ZmU5YzYwOTc3ODRjYzY0MzIyZTcz
OWU1YzM3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDYtMjEgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDb21wYXRpYmlsaXR5
IG1vdXNlIGV2ZW50cyBhcmVuJ3QgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQo
KSBvbiBwb2ludGVyZG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk4MTI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDQxMDg2Mz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1cmUgd2Ugd2Fp
dCB1bnRpbCBjb21wbGV0aW9uIG9mIGEgdGFwIGJlZm9yZSByZW1vdmluZyB0aGUgcG9pbnRlciBJ
RCBhbmQgdGhlIHByZXZlbnREZWZhdWx0KCkgc3RhdGUgYWxvbmcgd2l0aCBpdC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX3NpbmdsZVRhcERpZFJlc2V0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9jb21taXRQb3RlbnRpYWxUYXBGYWlsZWRdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfZGlkQ29tcGxldGVTeW50aGV0aWNDbGlja10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9zaW5nbGVUYXBSZWNvZ25pemVkOl0pOgorCiAyMDE5LTA2LTIwICBQYXRyaWNrIEdyaWZmaXMg
IDxwZ3JpZmZpc0BpZ2FsaWEuY29tPiBhbmQgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBJbXBsZW1lbnQgYSBiYXNpYyBETlMg
Y2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCBlOTZkZWRiNjZhNjE5Y2RlOWNmZTk0NzU4YWM0M2U2MzU2
MDY0ZjQzLi5lYTI3MDllMDY4NGFiODM1MGRiZGU2NjdjOTYwZGJjZTE5OGZjZmY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC01OSw2ICs1OSwxMCBAQAogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5U
UykKKyNpbXBvcnQgPFdlYkNvcmUvUG9pbnRlcklELmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQ
SSB7CiBjbGFzcyBPcGVuUGFuZWxQYXJhbWV0ZXJzOwogfQpAQCAtMzIwLDYgKzMyNCwxMCBAQCBz
dHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIEJPT0wgX2lzRXhwZWN0aW5nRmFzdFNp
bmdsZVRhcENvbW1pdDsKICAgICBCT09MIF9zaG93RGVidWdUYXBIaWdobGlnaHRzRm9yRmFzdENs
aWNraW5nOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFdlYkNvcmU6OlBvaW50
ZXJJRCBtX2NvbW1pdFBvdGVudGlhbFRhcFBvaW50ZXJJZDsKKyNlbmRpZgorCiAgICAgQk9PTCBf
a2V5Ym9hcmREaWRSZXF1ZXN0RGlzbWlzc2FsOwogCiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FE
RElUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGMwNWYxYzgyYWE4ODI3MDg1Y2ExODM5NWUyMTFm
N2I1ZTQ1ODBhOTAuLmMwZGM2YjI4ODUzNTBhMGEzZGEyNjBiNDEyZjZlOWJiOGM2ZWRmYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMjM0MSw4ICsyMzQxLDExIEBAIC0gKHZvaWQpX3NpbmdsZVRhcERp
ZFJlc2V0OihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKICAgICBB
U1NFUlQoZ2VzdHVyZVJlY29nbml6ZXIgPT0gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyKTsK
ICAgICBjYW5jZWxQb3RlbnRpYWxUYXBJZk5lY2Vzc2FyeShzZWxmKTsKICNpZiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCi0gICAgaWYgKGF1dG8qIHNpbmdsZVRhcFRvdWNoSWRlbnRpZmllciA9IFtf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgbGFzdEFjdGl2ZVRvdWNoSWRlbnRpZmllcl0pCi0g
ICAgICAgIF9wYWdlLT50b3VjaFdpdGhJZGVudGlmaWVyV2FzUmVtb3ZlZChbc2luZ2xlVGFwVG91
Y2hJZGVudGlmaWVyIHVuc2lnbmVkSW50VmFsdWVdKTsKKyAgICBpZiAoYXV0byogc2luZ2xlVGFw
VG91Y2hJZGVudGlmaWVyID0gW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBsYXN0QWN0aXZl
VG91Y2hJZGVudGlmaWVyXSkgeworICAgICAgICBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklk
ID0gW3NpbmdsZVRhcFRvdWNoSWRlbnRpZmllciB1bnNpZ25lZEludFZhbHVlXTsKKyAgICAgICAg
aWYgKG1fY29tbWl0UG90ZW50aWFsVGFwUG9pbnRlcklkICE9IHBvaW50ZXJJZCkKKyAgICAgICAg
ICAgIF9wYWdlLT50b3VjaFdpdGhJZGVudGlmaWVyV2FzUmVtb3ZlZChwb2ludGVySWQpOworICAg
IH0KICNlbmRpZgogfQogCkBAIC0yMzU0LDYgKzIzNTcsMTEgQEAgLSAodm9pZClfZG91YmxlVGFw
RGlkRmFpbDooVUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAKIC0g
KHZvaWQpX2NvbW1pdFBvdGVudGlhbFRhcEZhaWxlZAogeworI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKKyAgICBfcGFnZS0+dG91Y2hXaXRoSWRlbnRpZmllcldhc1JlbW92ZWQobV9jb21taXRQ
b3RlbnRpYWxUYXBQb2ludGVySWQpOworICAgIG1fY29tbWl0UG90ZW50aWFsVGFwUG9pbnRlcklk
ID0gMDsKKyNlbmRpZgorCiAgICAgW3NlbGYgX2NhbmNlbEludGVyYWN0aW9uXTsKICAgICAKICAg
ICBbc2VsZiBfcmVzZXRJbnB1dFZpZXdEZWZlcnJhbF07CkBAIC0yMzgxLDYgKzIzODksMTEgQEAg
LSAodm9pZClfZGlkTm90SGFuZGxlVGFwQXNDbGljazooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KXBvaW50CiAKIC0gKHZvaWQpX2RpZENvbXBsZXRlU3ludGhldGljQ2xpY2sKIHsKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCisgICAgX3BhZ2UtPnRvdWNoV2l0aElkZW50aWZpZXJXYXNSZW1v
dmVkKG1fY29tbWl0UG90ZW50aWFsVGFwUG9pbnRlcklkKTsKKyAgICBtX2NvbW1pdFBvdGVudGlh
bFRhcFBvaW50ZXJJZCA9IDA7CisjZW5kaWYKKwogICAgIFJFTEVBU0VfTE9HKFZpZXdHZXN0dXJl
cywgIlN5bnRoZXRpYyBjbGljayBjb21wbGV0ZWQuICglcCkiLCBzZWxmKTsKICAgICBbc2VsZiBf
cmVzZXRJbnB1dFZpZXdEZWZlcnJhbF07CiB9CkBAIC0yNDA5LDggKzI0MjIsMTAgQEAgLSAodm9p
ZClfc2luZ2xlVGFwUmVjb2duaXplZDooVUlUYXBHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVS
ZWNvZ25pemVyCiAKICAgICBXZWJDb3JlOjpQb2ludGVySUQgcG9pbnRlcklkID0gV2ViQ29yZTo6
bW91c2VQb2ludGVySUQ7CiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQotICAgIGlmIChhdXRv
KiBzaW5nbGVUYXBUb3VjaElkZW50aWZpZXIgPSBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVy
IGxhc3RBY3RpdmVUb3VjaElkZW50aWZpZXJdKQorICAgIGlmIChhdXRvKiBzaW5nbGVUYXBUb3Vj
aElkZW50aWZpZXIgPSBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIGxhc3RBY3RpdmVUb3Vj
aElkZW50aWZpZXJdKSB7CiAgICAgICAgIHBvaW50ZXJJZCA9IFtzaW5nbGVUYXBUb3VjaElkZW50
aWZpZXIgdW5zaWduZWRJbnRWYWx1ZV07CisgICAgICAgIG1fY29tbWl0UG90ZW50aWFsVGFwUG9p
bnRlcklkID0gcG9pbnRlcklkOworICAgIH0KICNlbmRpZgogICAgIF9wYWdlLT5jb21taXRQb3Rl
bnRpYWxUYXAoV2ViS2l0Ojp3ZWJFdmVudE1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXJN
b2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVyKSksIF9sYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCwgcG9pbnRlcklkKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYzMzAxNTM0ZjIxMzVhZjA4
N2Q0YjM4MjI0MjJhZTNhOTg3OTgwZDkuLjRjNTIyNWEwZTI2NGRjNmIxOTY0ZTFiZjAzZTBlOGVi
MzA4NjE3OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNi0yMSAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENvbXBhdGliaWxpdHkgbW91
c2UgZXZlbnRzIGFyZW4ndCBwcmV2ZW50ZWQgYnkgY2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIG9u
IHBvaW50ZXJkb3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTgxMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBuZXcgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1
bHQoKSB3aXRoaW4gYSAicG9pbnRlcmRvd24iIGV2ZW50IGhhbmRsZXIgY29ycmVjdGx5IHByZXZl
bnRzCisgICAgICAgIHRoZSBkaXNwYXRjaCBvZiBjb21wYXRpYmlsaXR5IG1vdXNlIGV2ZW50cyBl
dmVuIHdpdGggYSBzbG93IHRhcC4gCisKKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy9wb2lu
dGVyLWV2ZW50cy1uby1tb3VzZWRvd24td2hlbi1wcmV2ZW50LWRlZmF1bHQtY2FsbGVkLW9uLXBv
aW50ZXJkb3duLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9p
b3MvcG9pbnRlci1ldmVudHMtbm8tbW91c2Vkb3duLXdoZW4tcHJldmVudC1kZWZhdWx0LWNhbGxl
ZC1vbi1wb2ludGVyZG93bi5odG1sOiBBZGRlZC4KKwogMjAxOS0wNi0yMCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtQb2ludGVyIEV2ZW50c10gUmVzcGVj
dCBwb2ludGVyIGNhcHR1cmUgd2hlbiBkaXNwYXRjaGluZyBtb3VzZSBib3VuZGFyeSBldmVudHMg
YW5kIHVwZGF0aW5nIDpob3ZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvcG9pbnRlci1ldmVudHMtbm8tbW91c2Vkb3duLXdoZW4tcHJldmVudC1kZWZhdWx0LWNh
bGxlZC1vbi1wb2ludGVyZG93bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy9wb2ludGVyLWV2ZW50cy1uby1tb3VzZWRvd24td2hlbi1wcmV2ZW50LWRlZmF1bHQt
Y2FsbGVkLW9uLXBvaW50ZXJkb3duLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWUwNzUyYzBh
ZTRiMDVmNTk1MTY3Zjk5ODYyMTRmNWRmMTdhMzM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvcG9pbnRlci1ldmVudHMtbm8tbW91c2Vkb3duLXdoZW4t
cHJldmVudC1kZWZhdWx0LWNhbGxlZC1vbi1wb2ludGVyZG93bi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBk
dXJpbmcgYSAicG9pbnRlcmRvd24iIGV2ZW50IHByZXZlbnRzIGNvbXBhdGliaWxpdHkgZXZlbnRz
IGZyb20gYmVpbmcgZGlzcGF0Y2hlZC4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3BvaW50ZXItZXZlbnRzLW5vLW1vdXNlZG93bi13aGVuLXByZXZlbnQtZGVm
YXVsdC1jYWxsZWQtb24tcG9pbnRlcmRvd24uaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3BvaW50ZXItZXZlbnRzLW5vLW1vdXNlZG93bi13aGVuLXByZXZlbnQtZGVmYXVsdC1j
YWxsZWQtb24tcG9pbnRlcmRvd24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGY2NDcxMjZmMjA0NmMxOGEx
NGZjNDc3YjgxYTMxZTllMjRjYjRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvcG9pbnRlci1ldmVudHMtbm8tbW91c2Vkb3duLXdoZW4tcHJldmVudC1k
ZWZhdWx0LWNhbGxlZC1vbi1wb2ludGVyZG93bi5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIxMDBweCIsIGhlaWdo
dDogIjEwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIoInBvaW50ZXJkb3duIiwgZXZlbnQgPT4gZXZlbnQucHJldmVudERlZmF1bHQoKSk7Cisg
ICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIGV2ZW50ID0+IGFzc2VydF91
bnJlYWNoZWQoIlRoZSBtb3VzZWRvd24gZXZlbnQgc2hvdWxkIG5vdCBiZSBkaXNwYXRjaGVkIGFm
dGVyIGNhbGxpbmcgcHJldmVudERlZmF1bHQoKSBkdXJpbmcgcG9pbnRlcmRvd24uIikpOworICAg
IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBldmVudCA9PiBhc3NlcnRfdW5y
ZWFjaGVkKCJUaGUgbW91c2V1cCBldmVudCBzaG91bGQgbm90IGJlIGRpc3BhdGNoZWQgYWZ0ZXIg
Y2FsbGluZyBwcmV2ZW50RGVmYXVsdCgpIGR1cmluZyBwb2ludGVyZG93bi4iKSk7CisgICAgdGFy
Z2V0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gdGVzdC5kb25lKCkpOworICAg
IHVpLnRhcCh7IHg6IDUwLCB5OiA1MCB9KTsKK30sIGBUZXN0aW5nIHRoYXQgY2FsbGluZyBwcmV2
ZW50RGVmYXVsdCgpIGR1cmluZyBhICJwb2ludGVyZG93biIgZXZlbnQgcHJldmVudHMgY29tcGF0
aWJpbGl0eSBldmVudHMgZnJvbSBiZWluZyBkaXNwYXRjaGVkLmApOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="388425"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>