<?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>190565</bug_id>
          
          <creation_ts>2018-10-14 15:13:37 -0700</creation_ts>
          <short_desc>[iOS] Draw caps lock indicator in password fields</short_desc>
          <delta_ts>2019-05-08 16:26:06 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 12</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190056</dependson>
    
    <dependson>191475</dependson>
          <blocked>190571</blocked>
    
    <blocked>191969</blocked>
    
    <blocked>197724</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>dino</cc>
    
    <cc>pvollan</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1469075</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-10-14 15:13:37 -0700</bug_when>
    <thetext>We should show the caps lock indicator in a focused password field when caps lock is enabled so as to match iOS platform conventions.

We need to take care to track caps lock state changes when switching between apps and with respect to changes in keyboard availability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469076</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-10-14 15:15:33 -0700</bug_when>
    <thetext>The patch for bug #190056 adds a new WebKit message that the UI process can send to the web process when modifier key state has changes. We should make use of this to update caps lock state in Modern WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469130</commentid>
    <comment_count>2</comment_count>
      <attachid>352298</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-10-14 21:50:02 -0700</bug_when>
    <thetext>Created attachment 352298
Work-in-progress patch

Work-in-progress patch. This patch depends on the patch for bug #190056 and bug #190487 (in order) and some UIKit changes. Still need to listen for changes to hardware keyboard availability and update caps lock state. Need to verify correctness in legacy WebKit and Modern WebKit when caps lock state changes when switching between Safari and another app. Here are some app-switching test cases to consider assuming caps lock is initially disabled:

1. Press the caps lock, open Safari, focus on password field and ensure that the caps lock indicator is visible.
2. Open Safari, focus on password field, press caps lock, go to Home screen, press caps lock, open Safari and ensure that the caps lock indicator is not visible.
3. Open Safari, focus on password field, go to Home screen, press caps lock, open Safari and ensure that the caps lock indicator is visible.
4. Open Safari, focus on password field, press caps lock, go to app switcher, press caps lock, switch to Safari and ensure that the caps lock indicator is not visible.
5. Open Safari, focus on password field, go to app switcher, press caps lock, switch to Safari and ensure that the caps lock indicator is visible.
6. Open Safari, focus on password field, press caps lock, go to app switcher and switch to another app, press caps lock, go to app switcher and switch to Safari and ensure that the caps lock indicator is not visible.
7. Open Safari, focus on password field, go to app switcher and switch to another app, press caps lock, go to app switcher and switch to Safari and ensure that the caps lock indicator is visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469131</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-14 21:51:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/45262343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474313</commentid>
    <comment_count>4</comment_count>
      <attachid>353659</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-01 16:19:22 -0700</bug_when>
    <thetext>Created attachment 353659
Patch

This patch will fail to apply because it depends on the patch for bug #190056.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475691</commentid>
    <comment_count>5</comment_count>
      <attachid>354002</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-06 14:05:27 -0800</bug_when>
    <thetext>Created attachment 354002
Patch

Re-uploading patch now for EWS processing now that the patch for bug #190056 landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475724</commentid>
    <comment_count>6</comment_count>
      <attachid>354015</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-06 15:11:28 -0800</bug_when>
    <thetext>Created attachment 354015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476027</commentid>
    <comment_count>7</comment_count>
      <attachid>354102</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-07 09:52:50 -0800</bug_when>
    <thetext>Created attachment 354102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476088</commentid>
    <comment_count>8</comment_count>
      <attachid>354114</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-07 11:33:45 -0800</bug_when>
    <thetext>Created attachment 354114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476117</commentid>
    <comment_count>9</comment_count>
      <attachid>354125</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-07 12:08:20 -0800</bug_when>
    <thetext>Created attachment 354125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476722</commentid>
    <comment_count>10</comment_count>
      <attachid>354290</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-08 16:28:35 -0800</bug_when>
    <thetext>Created attachment 354290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476980</commentid>
    <comment_count>11</comment_count>
      <attachid>354290</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-11-09 10:28:49 -0800</bug_when>
    <thetext>Comment on attachment 354290
Patch

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

&gt; Source/WebCore/platform/cocoa/KeyEventCocoa.mm:33
&gt; +#import &lt;wtf/MainThread.h&gt;

Why did you need this?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:3761
&gt; +    bool isHardwareKeyboardEvent = !!event._hidEvent;
&gt; +    if (isHardwareKeyboardEvent &amp;&amp; ((UIPhysicalKeyboardEvent *)event)._inputFlags &amp; kUIKeyboardInputModifierFlagsChanged)
&gt; +        _page-&gt;updateCurrentModifierState();

Why do we only want this with the hardware keyboard? I feel like we should also do it if you&apos;ve activated capslock on the software keyboard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1476998</commentid>
    <comment_count>12</comment_count>
      <attachid>354290</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-09 11:03:14 -0800</bug_when>
    <thetext>Comment on attachment 354290
Patch

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

&gt;&gt; Source/WebCore/platform/cocoa/KeyEventCocoa.mm:33
&gt;&gt; +#import &lt;wtf/MainThread.h&gt;
&gt; 
&gt; Why did you need this?

Oops! Will remove before landing.

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:3761
&gt;&gt; +        _page-&gt;updateCurrentModifierState();
&gt; 
&gt; Why do we only want this with the hardware keyboard? I feel like we should also do it if you&apos;ve activated capslock on the software keyboard.

We also want this for the software keyboard however we need to do more work to get shift state changes. Filed bug #191475 for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477002</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-09 11:10:37 -0800</bug_when>
    <thetext>Committed r238047: &lt;https://trac.webkit.org/changeset/238047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477011</commentid>
    <comment_count>14</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-09 11:30:31 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #13)
&gt; Committed r238047: &lt;https://trac.webkit.org/changeset/238047&gt;

This change broke iOS builds:
https://build.webkit.org/builders/Apple%20iOS%2012%20Release%20%28Build%29/builds/1177/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477017</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-09 11:35:58 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #14)
&gt; (In reply to Daniel Bates from comment #13)
&gt; &gt; Committed r238047: &lt;https://trac.webkit.org/changeset/238047&gt;
&gt; 
&gt; This change broke iOS builds:
&gt; https://build.webkit.org/builders/Apple%20iOS%2012%20Release%20%28Build%29/
&gt; builds/1177/steps/compile-webkit/logs/stdio

We do not seem to be regenerating derived sources following the change to WebPage.messages.in. Filed bug #191477.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477201</commentid>
    <comment_count>16</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-09 17:30:32 -0800</bug_when>
    <thetext>This change introduced layout test failures on iOS, as documented in https://bugs.webkit.org/show_bug.cgi?id=191491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477203</commentid>
    <comment_count>17</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-09 17:40:28 -0800</bug_when>
    <thetext>Reverted r238047 for reason:

Introduced layout test failures on iOS simulator.

Committed r238062: &lt;https://trac.webkit.org/changeset/238062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477270</commentid>
    <comment_count>18</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-10 08:43:35 -0800</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #17)
&gt; Reverted r238047 for reason:
&gt; 
&gt; Introduced layout test failures on iOS simulator.
&gt; 
&gt; Committed r238062: &lt;https://trac.webkit.org/changeset/238062&gt;
These are the tests that started failing with this change:

fast/css/text-overflow-input.html [ Failure ]
fast/forms/basic-inputs.html [ Failure ]
fast/forms/input-appearance-height.html [ Failure ]
fast/forms/input-value.html [ Failure ]
fast/forms/placeholder-pseudo-style.html [ Failure ]
tables/mozilla_expected_failures/bugs/bug92647-1.html [ Failure ]

Diffs can be seen here: https://build.webkit.org/results/Apple%20iOS%2012%20Simulator%20Release%20WK2%20(Tests)/r238048%20(865)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477272</commentid>
    <comment_count>19</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-10 08:43:45 -0800</bug_when>
    <thetext>*** Bug 191491 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477407</commentid>
    <comment_count>20</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-11-11 13:33:02 -0800</bug_when>
    <thetext>Committed r238078: &lt;https://trac.webkit.org/changeset/238078&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352298</attachid>
            <date>2018-10-14 21:50:02 -0700</date>
            <delta_ts>2018-11-01 16:19:20 -0700</delta_ts>
            <desc>Work-in-progress patch</desc>
            <filename>WIP_101418.patch</filename>
            <type>text/plain</type>
            <size>16494</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSA4ZTAyMDdhYjA4N2YyNDZiZjhkYzY1N2E5NzBmMGFjN2RhNzc1NzAxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRhYmF0ZXNAYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDExIE9jdCAyMDE4IDA5OjE1OjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV29yay1p
bi1wcm9ncmVzcy4gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIG9uIGlPUy4gRGVwZW5kcyBvbgog
dGhlIHBhdGNoIGZvciBidWcgIzE5MDA1NiBhbmQgYnVnICMxOTA0ODcgKGluIG9yZGVyKSBhbmQg
c29tZSBVSUtpdCBjaGFuZ2VzLgoKLS0tCiAuLi4vUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2Vy
dmljZXNTUEkuaCAgICAgICAgfCAgNSArKysrLQogU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
aW9zL1VJS2l0U1BJLmggICAgICAgIHwgIDggKysrKysrLS0KIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oICB8ICA0ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gICB8IDEyICsrKysrKysrKysrKwogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tICAgICAgIHwgIDYgKysrKy0tCiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQuaCAgICAgICAgICAgfCAgMiArKwog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tICAgICAgICAgIHwgIDggKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSAgICAgICB8
IDEyIC0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAg
ICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggICAgICAgICAgIHwgIDYgKysrKy0tCiAuLi4vVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gICAgfCAgMyArKysKIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0gICB8ICA2ICsrKysrKwogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oICAgICAgIHwgIDIgKy0KIC4uLi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiAgICAgICB8ICAyICstCiAuLi4vV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSAgfCAxNiArKysrKysrKysrKysrKysrCiAuLi4vR3Jh
cGhpY3NTZXJ2aWNlcy50YmQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAxOCBmaWxl
cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaAppbmRl
eCAxYjc0NGZlODUxOS4uYjhmNGNiMjExYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0Myw5IEBAIENGU3Ry
aW5nUmVmIEdTU3lzdGVtUm9vdERpcmVjdG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlhbGl6
ZSh2b2lkKTsKIHZvaWQgR1NGb250UHVyZ2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYgc3Ry
dWN0IF9fR1NLZXlib2FyZCogR1NLZXlib2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRHZXRN
b2RpZmllclN0YXRlKEdTS2V5Ym9hcmRSZWYpOworCiBXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCBjNWUzY2Ni
ZTgxYi4uNmE3YzE1ZGY1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtp
dFNQSS5oCkBAIC0yMyw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKK1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBzdHJ1Y3QgX19HU0tleWJv
YXJkKiBHU0tleWJvYXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKIAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhTdHlsZV9Qcml2YXRlLmg+
CkBAIC00NSw2ICs0OSw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQogKyAoVUlB
cHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOworLSAoR1NLZXlib2FyZFJl
ZilfaGFyZHdhcmVLZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc2LDEwICs4MSw5IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKSB7
CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAtIChCT09MKV9pc0NsYXNz
aWM7CiArIChVSUFwcGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xhc3NpY01vZGU7Ci0KKy0g
KEdTS2V5Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlD
b2xvciAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaAppbmRleCBhOWJjYWVjMDEwMS4uMzNkNzkzMmRlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC0xMzcsNyArMTM3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29s
IGN1cnJlbnRDYXBzTG9ja1N0YXRlKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGdldEN1cnJlbnRN
b2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXks
IGJvb2wmIG1ldGFLZXkpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBS
T0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1MpCiAgICAgICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRNb2RpZmllclN0YXRlKE9wdGlvblNl
dDxNb2RpZmllcj4pOwogI2VuZGlmCiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIENvbXBvc2l0aW9uUmVzdWx0cyBtX2NvbXBvc2l0aW9uUmVzdWx0czsK
ICNlbmRpZgogICAgICAgICAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQ
Uk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9TKQogICAgICAgICAv
LyBUaGUgbW9kaWZpZXIgc3RhdGUgaXMgb3B0aW9uYWwsIHNpbmNlIGl0IGlzIG5vdCBuZWVkZWQg
aW4gdGhlIFVJIHByb2Nlc3Mgb3IgaW4gbGVnYWN5IFdlYktpdC4KICAgICAgICAgc3RhdGljIHN0
ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PE1vZGlmaWVyPj4gc19jdXJyZW50TW9kaWZpZXJzOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpp
bmRleCA5ZTFjZmFlNGRhNS4uODJmY2FmM2Q1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpAQCAtMjcsOCArMjcsMTAgQEAKICNpbXBvcnQg
IktleUV2ZW50Q29jb2EuaCIKIAogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2lt
cG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTM5LDYg
KzQxLDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKSB8fCBQTEFURk9STShJT1MpCitzdGQ6Om9wdGlvbmFsPE9wdGlvblNldDxQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcj4+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c19jdXJyZW50TW9kaWZpZXJz
OworCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUo
T3B0aW9uU2V0PE1vZGlmaWVyPiBtb2RpZmllcnMpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBzX2N1cnJlbnRNb2RpZmllcnMgPSBtb2RpZmllcnM7Cit9CisjZW5kaWYKKwog
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWtleS8KIFN0cmluZyBrZXlGb3JDaGFy
Q29kZSh1bmljaGFyIGNoYXJDb2RlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tl
eUV2ZW50SU9TLm1tCmluZGV4IDMxYTk0NjQ0OWZiLi4yNWY3NzJhMjZjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2lt
cG9ydCAiS2V5RXZlbnRDb2NvYS5oIgogI2ltcG9ydCAiS2V5RXZlbnRDb2Rlc0lPUy5oIgogI2lt
cG9ydCAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJX
aW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT0tpdFNQSS5o
PgogCkBAIC0zMTQsOCArMzE1LDkgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KIAogYm9vbCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc19jdXJyZW50TW9kaWZp
ZXJzKQorICAgICAgICByZXR1cm4gc19jdXJyZW50TW9kaWZpZXJzLT5jb250YWlucyhNb2RpZmll
cjo6Q2Fwc0xvY2tLZXkpOworICAgIHJldHVybiBbOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSAm
IFdlYkV2ZW50RmxhZ01hc2tMZWZ0Q2Fwc0xvY2tLZXk7CiB9CiAKIHZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYg
Y3RybEtleSwgYm9vbCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViRXZlbnQuaAppbmRleCA4OTA1OTgxMDMzNi4uMmNlMDZhNjM1ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5v
bmF0b21pYykgQk9PTCB3YXNIYW5kbGVkOwogCitAcHJvcGVydHkoY2xhc3MsIHJlYWRvbmx5KSBX
ZWJFdmVudEZsYWdzIG1vZGlmaWVyRmxhZ3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFRBUkdFVF9P
U19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVu
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQppbmRleCBlMDFk
Mjg2ODZjZi4uNzhjYWQ5OWYzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJFdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZl
bnQubW0KQEAgLTM1LDEwICszNSwxMiBAQAogCiAjaW1wb3J0ICJLZXlFdmVudENvZGVzSU9TLmgi
CiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhp
Y3NTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KICNpbXBv
cnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQorU09G
VF9MSU5LX0NMQVNTKFVJS2l0LCBVSUFwcGxpY2F0aW9uKTsKIFNPRlRfTElOS19DT05TVEFOVChV
SUtpdCwgVUlLZXlJbnB1dFVwQXJyb3csIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RBTlQo
VUlLaXQsIFVJS2V5SW5wdXREb3duQXJyb3csIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RB
TlQoVUlLaXQsIFVJS2V5SW5wdXRMZWZ0QXJyb3csIE5TU3RyaW5nICopCkBAIC00Nyw2ICs0OSw3
IEBAIFNPRlRfTElOS19DT05TVEFOVChVSUtpdCwgVUlLZXlJbnB1dFBhZ2VVcCwgTlNTdHJpbmcg
KikKIFNPRlRfTElOS19DT05TVEFOVChVSUtpdCwgVUlLZXlJbnB1dFBhZ2VEb3duLCBOU1N0cmlu
ZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UKFVJS2l0LCBVSUtleUlucHV0RXNjYXBlLCBOU1N0cmlu
ZyAqKQogCisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkKICNk
ZWZpbmUgVUlLZXlJbnB1dFVwQXJyb3cgZ2V0VUlLZXlJbnB1dFVwQXJyb3coKQogI2RlZmluZSBV
SUtleUlucHV0RG93bkFycm93IGdldFVJS2V5SW5wdXREb3duQXJyb3coKQogI2RlZmluZSBVSUtl
eUlucHV0TGVmdEFycm93IGdldFVJS2V5SW5wdXRMZWZ0QXJyb3coKQpAQCAtNTA2LDYgKzUwOSwx
MSBAQCAtIChmbG9hdClnZXN0dXJlUm90YXRpb24KICAgICByZXR1cm4gX2dlc3R1cmVSb3RhdGlv
bjsKIH0KIAorKyAoV2ViRXZlbnRGbGFncyltb2RpZmllckZsYWdzCit7CisgICAgcmV0dXJuIEdT
S2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKFtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9u
XS5faGFyZHdhcmVLZXlib2FyZCk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBmMDkz
NjNjNWE1My4uODcxZGM5ZDkxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5
RXZlbnRNYWMubW0KQEAgLTIzMywxMCArMjMzLDYgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKICAgICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShX
RUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKLXN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0
PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPj4gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpzX2N1cnJl
bnRNb2RpZmllcnM7Ci0jZW5kaWYKLQogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2Ft
YmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5
TW9kZSkKIHsKICAgICAvLyBDYW4gb25seSBjaGFuZ2UgdHlwZSBmcm9tIEtleURvd24gdG8gUmF3
S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNrIGluZm9ybWF0aW9uIGZvciBvdGhlciBjb252ZXJz
aW9ucy4KQEAgLTI5MSwxNCArMjg3LDYgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2UKICAgICBt
ZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycyAmIDo6Y21kS2V5OwogfQogCi0jaWYgRU5BQkxFKFdF
QlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJz
KQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgc19jdXJyZW50TW9kaWZpZXJz
ID0gbW9kaWZpZXJzOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5tbQppbmRleCBjYjQ2NjQ0ZjM1OC4uNjU4ZjVkYWE5ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTExMzIsNyArMTEzMiw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1l
bnQmKSBjb25zdAogCiBib29sIFJlbmRlclRoZW1lSU9TOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRp
Y2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiB0cnVlOwogfQogCiBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBSZW5kZXJU
aGVtZUlPUzo6Y2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgdmFsdWVJRCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3MTk3MGZiOGE0MS4u
ZGViOWJlOGI3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ3NDQs
NyArNDc0NCw3IEBAIHVuc2lnbmVkIEludGVybmFsczo6cHJpbWFyeVNjcmVlbkRpc3BsYXlJRCgp
CiAKIGJvb2wgSW50ZXJuYWxzOjpjYXBzTG9ja0lzT24oKQogewotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShDT0NPQSkKICAgICByZXR1cm4gV2ViQ29yZTo6UGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkZTI5MjJiYjgw
Ny4uZjNmYjBjN2ViNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMTU0NCw3ICsxNTQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpc3BhdGNoQWN0aXZp
dHlTdGF0ZUNoYW5nZSgpCiAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIExPR19XSVRIX1NUUkVB
TShBY3Rpdml0eVN0YXRlLCBzdHJlYW0gPDwgIldlYlBhZ2VQcm94eSAiIDw8IHBhZ2VJRCgpIDw8
ICIgZGlzcGF0Y2hBY3Rpdml0eVN0YXRlQ2hhbmdlOiBzdGF0ZSBjaGFuZ2VkIGZyb20gIiA8PCBw
cmV2aW91c0FjdGl2aXR5U3RhdGUgPDwgIiB0byAiIDw8IG1fYWN0aXZpdHlTdGF0ZSk7CiAKLSNp
ZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykgfHwgUExBVEZPUk0oSU9TKQogICAgIGlmICgoY2hhbmdlZCAmIEFjdGl2aXR5U3Rh
dGU6OldpbmRvd0lzQWN0aXZlKSAmJiBpc1ZpZXdXaW5kb3dBY3RpdmUoKSkKICAgICAgICAgdXBk
YXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCBjYWI0MDJjZDc0Ny4uMTIyNjViOWYzNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NDEsNiArNzQxLDEwIEBAIHB1YmxpYzoK
ICAgICBib29sIGlzUHJvY2Vzc2luZ0tleWJvYXJkRXZlbnRzKCkgY29uc3Q7CiAgICAgdm9pZCBo
YW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmKTsKIAorI2lm
IFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5H
KSB8fCBQTEFURk9STShJT1MpCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgp
OworI2VuZGlmCisKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFu
ZGxlR2VzdHVyZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYpOwogI2VuZGlmCkBA
IC0xODQ0LDggKzE4NDgsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIHZvaWQgc3RhcnREaXNwbGF5
TGluayh1bnNpZ25lZCBvYnNlcnZlcklEKTsKICAgICB2b2lkIHN0b3BEaXNwbGF5TGluayh1bnNp
Z25lZCBvYnNlcnZlcklEKTsKLQotICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUo
KTsKICNlbmRpZgogCiAgICAgdm9pZCByZXBvcnRQYWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBjOTAxMTZiNjRhMy4u
NmZkZWQ4MGM2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMzc3Nyw2ICszNzc3LDkgQEAgLSAoQk9P
TClyZXF1aXJlc0tleUV2ZW50cwogCiAtICh2b2lkKV9oYW5kbGVLZXlVSUV2ZW50Oig6OlVJRXZl
bnQgKilldmVudAogeworICAgIGlmIChldmVudC5faW5wdXRGbGFncyAmIFdlYkV2ZW50S2V5Ym9h
cmRJbnB1dE1vZGlmaWVyRmxhZ3NDaGFuZ2VkKQorICAgICAgICBfcGFnZS0+dXBkYXRlTW9kaWZp
ZXJzKCk7CisKICAgICAvLyBXZSBvbmx5IHdhbnQgdG8gaGFuZGxlIGtleSBldmVudCBmcm9tIHRo
ZSBoYXJkd2FyZSBrZXlib2FyZCB3aGVuIHdlIGFyZQogICAgIC8vIGZpcnN0IHJlc3BvbmRlciBh
bmQgd2UgYXJlIG5vdCBpbnRlcmFjdGluZyB3aXRoIGVkaXRhYmxlIGNvbnRlbnQuCiAgICAgaWYg
KFtzZWxmIGlzRmlyc3RSZXNwb25kZXJdICYmIGV2ZW50Ll9oaWRFdmVudCAmJiAhX3BhZ2UtPmVk
aXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDM5NGE1NjUyNTNiLi4wZWNlZjIyZGI5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1
YmJsZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMDg4LDYgKzEwODksMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElzU2Nyb2xsaW5nT3Jab29taW5nKGJvb2wgaXNTY3Jv
bGxpbmdPclpvb21pbmcpCiAgICAgICAgIG1fdmFsaWRhdGlvbkJ1YmJsZS0+c2hvdygpOwogfQog
Cit2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlTW9kaWZpZXJzKCkKK3sKKyAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZU1vZGlmaWVycyhbOjpXZWJFdmVudCBtb2Rp
ZmllckZsYWdzXSksIG1fcGFnZUlEKTsKK30KKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1
ZXN0KGJvb2wgc3RhcnRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBkNzM0NDYwNGRjZS4uMjE5MTE0ZWVlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwODksNyArMTA4OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdBcHBsaWNhdGlvbk1hbmlmZXN0KHVpbnQ2NF90LCBj
b25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q+Jik7CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVS
X0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1MpCiAgICAgdm9pZCB1cGRhdGVDdXJyZW50
TW9kaWZpZXJTdGF0ZSh1aW50MzJfdCBtb2RpZmllcnMpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IDUwNGZmNjMwMmVkLi5kOWY0NWZhMjg1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MjgsNyArNTI4LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTZXREZWZlcnNMb2Fk
aW5nKGJvb2wgZGVmZXJzTG9hZGluZykKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdF
QlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1MpCiAg
ICAgVXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUodWludDMyX3QgbW9kaWZpZXJzKQogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDRiMDgyY2I3YTMwLi4zOWFkZTk3NDkzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMwODEsNiAr
MzA4MSwyMiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikg
Y29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlTW9k
aWZpZXJzKHVpbnQzMl90IGN1cnJlbnRNb2RpZmllcnMpCit7CisgICAgT3B0aW9uU2V0PFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgaWYgKGN1cnJlbnRNb2RpZmllcnMg
JiBXZWJFdmVudEZsYWdNYXNrU2hpZnRLZXkpCisgICAgICAgIG1vZGlmaWVycy5hZGQoUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKKyAgICBpZiAoY3VycmVudE1vZGlmaWVycyAm
IFdlYkV2ZW50RmxhZ01hc2tDb250cm9sS2V5KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5KTsKKyAgICBpZiAoY3VycmVudE1vZGlmaWVycyAm
IFdlYkV2ZW50RmxhZ01hc2tPcHRpb25LZXkpCisgICAgICAgIG1vZGlmaWVycy5hZGQoUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmllcnMgJiBX
ZWJFdmVudEZsYWdNYXNrQ29tbWFuZEtleSkKKyAgICAgICAgbW9kaWZpZXJzLmFkZChQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmllcnMgJiBX
ZWJFdmVudEZsYWdNYXNrTGVmdENhcHNMb2NrS2V5KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7CisgICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjpzZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShtb2RpZmllcnMpOworfQorCiAjaWYgVVNF
KFFVSUNLX0xPT0spCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9v
a0RvY3VtZW50KGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZp
Y2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3b3Jr
L0dyYXBoaWNzU2VydmljZXMudGJkCmluZGV4IGFiMWM0MDYwMGVmLi43YjBkYThlMGU2ZCAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1Mv
MTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKKysrIGIv
V2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhp
Y3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKQEAgLTE4LDYgKzE4LDcg
QEAgZXhwb3J0czoKICAgICAgIC0gX0dTRm9udEluaXRpYWxpemUKICAgICAgIC0gX0dTRm9udFB1
cmdlRm9udENhY2hlCiAgICAgICAtIF9HU0luaXRpYWxpemUKKyAgICAgIC0gX0dTS2V5Ym9hcmRH
ZXRNb2RpZmllclN0YXRlCiAgICAgICAtIF9HU1N5c3RlbVJvb3REaXJlY3RvcnkKIGluc3RhbGwt
bmFtZTogL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0dyYXBoaWNzU2VydmljZXMu
ZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMKIG9iamMtY29uc3RyYWludDogbm9uZQotLSAKMi4x
Ny4xIChBcHBsZSBHaXQtMTEyKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353659</attachid>
            <date>2018-11-01 16:19:22 -0700</date>
            <delta_ts>2018-11-06 14:05:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181101161921.patch</filename>
            <type>text/plain</type>
            <size>35463</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWViZjM5MWE0YjdjNTY0
YzJjODIzY2JiMTk4YmQyNWYyOTg3N2U5OS4uZmY1ODE0MGM5YzRjMjEwNDgzNjQ0NmVmYTEyZGM4
YTRiOTA3N2UxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5n
ZWQgY29uc3QpOiBFeHRyYWN0ZWQgZnJvbSBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQo
KQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBXZWJDb3JlLCBNb2Rlcm4g
V2ViS2l0LCBhbmQgTGVnYWN5IFdlYktpdCBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KTogTW9kaWZpZWQgdG8gY2FsbCBjYXBzTG9ja1N0YXRl
TWF5SGF2ZUNoYW5nZWQoKS4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1h
Yy5tbSBzbyB0aGF0IGl0CisgICAgICAgIGNhbiBiZSBzaGFyZWQgYnkgYm90aCBNYWMgYW5kIGlP
Uy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogUXVlcnkg
dGhlIG1vZGlmaWVyIHN0YXRlIHRvIGRldGVybWluZQorICAgICAgICB3aGV0aGVyIGNhcHMgbG9j
ayBpcyBlbmFibGVkIG9yIGRpc2FibGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJFdmVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJFdmVudC5tbToKKyAgICAgICAgKCtbV2Vi
RXZlbnQgbW9kaWZpZXJGbGFnc10pOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2V5
RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgbW92ZWQgdG8gS2V5RXZlbnRDb2NvYS5t
bSBzbworICAgICAgICB0aGF0IGl0IGNhbiBiZSBzaGFyZWQgYnkgYm90aCBNYWMgYW5kIGlPUy4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
b2NvYTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogTW92ZWQgZnJvbSBSZW5k
ZXJUaGVtZU1hYy5tbSBzbworICAgICAgICB0aGF0IGlzIGNhbiBiZSBzaGFyZWQgYnkgYm90aCBN
YWMgYW5kIGlPUy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogRGVsZXRlZDsgbW92ZWQgdG8gUmVu
ZGVyVGhlbWVDb2NvYS5tbQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBiZSBzaGFyZWQgYnkgYm90
aCBNYWMgYW5kIGlPUy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmNhcHNMb2NrSXNPbik6CisKIDIwMTgtMTAtMzEgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
MzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9yIG5vdCBzaG93biBpbiBwYXNzd29yZCBmaWVsZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggMjQ4MDMzZGRiMWZjOTRkNWM2NzE3ODg2NTM2MjVkMDA3ZGJm
Y2U1OS4uN2ZiNjUyNzE1Y2NiOGUyNGJjOGI3NjA3NDk0ZTEwOTFjMTAwZTQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMTEtMDEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBk
ZWNsYXJlIHNvbWUgbW9yZSBTUEkuCisKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9HcmFwaGljc1Nl
cnZpY2VzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOC0x
MC0zMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
Tm9ybWFsaXplIGNoYXJhY3RlciBzdHJpbmcgYmFzZWQgb24ga2V5IGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MTExMGIxODEyNmUzNjUxNjUyOGM0YWJhMjQyOGI5MzRlYWQ1N2RiZS4uNzNkOThlOThjZmNlMmJi
MjA0OTRmYWQxNTA4Nzc0ZTZhZWJiNjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAx
OC0xMS0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaXJlIHVwIGlPUyB0byB1cGRhdGUgdGhlIGN1cnJlbnQgbW9kaWZp
ZXIgc3RhdGUgYW5kIG5vdGlmeSBXZWJDb3JlIHRoYXQgdGhlIGNhcHMgbG9jayBzdGF0ZSBtYXkK
KyAgICAgICAgaGF2ZSBjaGFuZ2VkIHNvIHRoYXQgV2ViQ29yZSBjYW4gc2hvdyBvciBoaWRlIHRo
ZSBjYXBzIGxvY2sgaW5kaWNhdG9yIGFzIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlh
bGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBSZWdpc3RlciBmb3IgaGFyZHdhcmUgYXZhaWxhYmls
aXR5IGNoYW5nZSBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1dlYlZpZXcgZGVhbGxvY10p
OiBVbnJlZ2lzdGVyIGZyb20gaGFyZHdhcmUgYXZhaWxhYmlsaXR5IGNoYW5nZSBub3RpZmljYXRp
b25zLgorICAgICAgICAoaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFj
ayk6IEFkZGVkLiBVcGRhdGUgdGhlIGNhcHMgbG9jayBzdGF0ZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaXNw
YXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UpOiBPcHQgaU9TIGludG8gY29kZSB0byB1cGRhdGUgdGhl
IGN1cnJlbnQgbW9kaWZpZXIKKyAgICAgICAgc3RhdGUgb24gY2hhbmdlcyB0byB3aW5kb3cgYWN0
aXZhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2hhbmRsZUtleVVJRXZlbnQ6XSk6IFVwZGF0ZSB0aGUgY3VycmVudCBtb2Rp
ZmllciBzdGF0ZSBpZiB0aGlzIGV2ZW50IGlzIGEgaGFyZHdhcmUKKyAgICAgICAga2V5Ym9hcmQg
ZmxhZ3MgY2hhbmdlZCBldmVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9k
aWZpZXJTdGF0ZSk6IEFkZGVkOyBpbXBsZW1lbnQgZm9yIGlPUy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOiBPcHQgaU9TIGludG8gc3VwcG9ydGluZyB0aGUgVXBkYXRlQ3VycmVu
dE1vZGlmaWVyU3RhdGUgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUN1cnJlbnRN
b2RpZmllclN0YXRlKTogQWRkZWQ7IGltcGxlbWVudCBmb3IgaU9TLiBXZSBub3RpZnkgdGhlIGZv
Y3VzZWQgZnJhbWUgKGlmIGFueSkKKyAgICAgICAgdG8gdXBkYXRlIGl0cyBjYXBzIGxvY2sgc3Rh
dGUgc28gdGhhdCB3ZSByZWFjdCB0byBtb2RpZmllciBrZXkgY2hhbmdlcyBhcyBhIHJlc3VsdCBv
ZiBhIGhhcmR3YXJlIGF2YWlsYWJpbGl0eQorICAgICAgICBjaGFuZ2UgKGUuZy4gdGhlIGhhcmR3
YXJlIGtleWJvYXJkIGlzIGRldGFjaGVkKS4KKwogMjAxOC0xMC0zMSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzMDUyMyk6IENh
cHMgbG9jayBpbmRpY2F0b3Igbm90IHNob3duIGluIHBhc3N3b3JkIGZpZWxkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggMmFkZDRmODRiYzFiMjBmZGRjY2I4NjgzMDg2NGZhMzJmNzlj
NzMyOC4uY2Q4NjNjNTI4YzU2M2MzMDFhZThkZmZjZjM2ZjlmYWU2NmYxMDc4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTAxICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9j
ayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0aGUgY2FwcyBsb2NrIHN0YXRlIHdoZW4gYSBoYXJkd2FyZSBrZXlib2FyZCBpcyBh
dHRhY2hlZCBvciBkZXRhY2hlZC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06
CisgICAgICAgIChoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKTog
QWRkZWQuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGluaXRXaXRoRnJhbWU6XSk6IFJlZ2lzdGVy
IGZvciBoYXJkd2FyZSBhdmFpbGFiaWxpdHkgY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IGRlYWxsb2NdKTogVW5yZWdpc3RlciBmcm9tIGhhcmR3YXJlIGF2YWls
YWJpbGl0eSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKwogMjAxOC0xMC0zMCAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV2ViS2l0IHNob3VsZCBkaXNw
YXRjaCBET00gZXZlbnRzIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgcHJlc3NlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKaW5k
ZXggMWNjOGIzMTE4MDQyMDU0YjNhM2MyYTc2YTc5OTE0NDFjZDFhNDVjMy4uMWI1YmQ5Nzg0ZmFj
NjNlMWJhYWQzNTU5YWJmYjdiZWU1YzEwMTZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDEyIEBAIENG
U3RyaW5nUmVmIEdTU3lzdGVtUm9vdERpcmVjdG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlh
bGl6ZSh2b2lkKTsKIHZvaWQgR1NGb250UHVyZ2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYg
c3RydWN0IF9fR1NLZXlib2FyZCogR1NLZXlib2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRH
ZXRNb2RpZmllclN0YXRlKEdTS2V5Ym9hcmRSZWYpOworQm9vbGVhbiBHU0V2ZW50SXNIYXJkd2Fy
ZUtleWJvYXJkQXR0YWNoZWQoKTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKmtHU0V2ZW50SGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb247CisKIFdURl9FWFRFUk5f
Q19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9p
b3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5o
CmluZGV4IDdjOTQ3MTQ4NjVkZGExOWNmYTlmY2U3MGMzYmJlNzJhMmIzNTU5NjkuLjFhODdhZjVh
ZjNhNDg5YzExMzY2MGJiMmZkNTRmOGM3NjZlNGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0yMyw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBz
dHJ1Y3QgX19HU0tleWJvYXJkKiBHU0tleWJvYXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhT
dHlsZV9Qcml2YXRlLmg+CkBAIC00NCw2ICs0OCw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNh
dGlvbiAoKQogKyAoVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOwor
LSAoR1NLZXlib2FyZFJlZilfaGFyZHdhcmVLZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc1
LDEwICs4MCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2Vu
ZUNsYXNzaWNNb2RlKSB7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAt
IChCT09MKV9pc0NsYXNzaWM7CiArIChVSUFwcGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xh
c3NpY01vZGU7Ci0KKy0gKEdTS2V5Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAK
IEBpbnRlcmZhY2UgVUlDb2xvciAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDk5Yjc0YmZiNjYzYmY5OTY4MmZiNjRmYzBhYWViM2YzN2E3OGMxYTAuLjk3YmQwNGYwODVh
ZGVmNDM2NzNlYjQ3NWFiYjc1YmYwYTBiN2IyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTMxNjIsNiArMzE2MiwxNCBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCkKICAgICByZXR1cm4gd2Fz
SGFuZGxlZDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpIGNvbnN0Cit7CisgICAgYXV0byogZm9jdXNlZEVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmZvY3VzZWRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MSW5wdXRFbGVtZW50Pihm
b2N1c2VkRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PigqZm9jdXNlZEVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwor
fQorCiBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3Rl
ZEZyYW1lKG1fZnJhbWUpOwpAQCAtMzE5NCwxMiArMzIwMiw4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtl
eUV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAoaW5pdGlhbEtleUV2ZW50LndpbmRvd3NW
aXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpIHsKLSAgICAgICAgaWYgKGF1dG8qIGVsZW1l
bnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAg
IGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQud2luZG93
c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkKKyAgICAgICAgY2Fwc0xvY2tTdGF0ZU1h
eUhhdmVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBpZiAobV9m
cmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGY1ZmUwOGY2MTZlNTJkMTc0MDM0NDU3
ODM1OGNiMGRkYjIwZDllODQuLjkyZmJjNWFmY2Y4OGViMjA0NDQwNDkyMDEyY2M5ZGE4NDA2YmI0
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjU2LDYgKzI1Niw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGtleUV2ZW50KGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQgZGVmYXVsdEtleWJvYXJkRXZl
bnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhcHNM
b2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0OwogCiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5
UHJldmVudHNFdmVudFByb3BhZ2F0aW9uKEtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JBY2Nlc3NpYmlsaXR5
KEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKaW5kZXggM2JkOTQ0ZDQ5MTBjMWRlOGZkMGQ2MzhlYzAyMzc5ZWZjNDVl
OGM5Yi4uMTczZjBiODRmMDEzMTViZTVjNDZhOThlYzc5Y2ZjOWM3OTVhZGMzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKQEAgLTEzNyw3
ICsxMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGJvb2wgY3VycmVudENhcHNMb2NrU3RhdGUoKTsKICAgICAgICAgc3RhdGljIHZvaWQg
Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJv
b2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRNb2Rp
ZmllclN0YXRlKE9wdGlvblNldDxNb2RpZmllcj4pOwogI2VuZGlmCiAKQEAgLTIxMCw3ICsyMTAs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbXBvc2l0aW9uUmVzdWx0cyBtX2Nv
bXBvc2l0aW9uUmVzdWx0czsKICNlbmRpZgogICAgICAgICAKLSNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICAgICAgLy8gVGhlIG1vZGlmaWVyIHN0YXRlIGlzIG9wdGlvbmFs
LCBzaW5jZSBpdCBpcyBub3QgbmVlZGVkIGluIHRoZSBVSSBwcm9jZXNzIG9yIGluIGxlZ2FjeSBX
ZWJLaXQuCiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlvblNldDxNb2RpZmllcj4+
IHNfY3VycmVudE1vZGlmaWVyczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KaW5kZXggNjMxZGQxNDBkN2JlYmQ3Y2ZiOGZmNTRlMzM5
MjZlNGUzODhhYzUxZC4uNTQ4OTExMGFhYmM3YThmOWM2ODUxNDYyMGI3ZDlmYTZkZmQ2N2I5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCkBA
IC0yNyw4ICsyNywxMCBAQAogI2ltcG9ydCAiS2V5RXZlbnRDb2NvYS5oIgogCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIldp
bmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTM5LDYgKzQxLDE2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQorc3RkOjpvcHRpb25hbDxPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+PiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNfY3VycmVudE1vZGlmaWVyczsKKwordm9pZCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKE9wdGlvblNldDxNb2RpZmll
cj4gbW9kaWZpZXJzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc19jdXJy
ZW50TW9kaWZpZXJzID0gbW9kaWZpZXJzOworfQorI2VuZGlmCisKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby91aWV2ZW50cy1rZXkvCiBTdHJpbmcga2V5Rm9yQ2hhckNvZGUodW5pY2hhciBjaGFy
Q29kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVu
dElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRl
eCAxOWNhOWJmZGY0YjE2OGEzMTA3NDMyNDJjZGIxOTMxYmMwOTMzMGJlLi4wNjEyYTlhMGYyOGQ0
ODYwZDg2ZGM1Zjc1MTk0MzI2ZTc4OWEzYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJLZXlFdmVudENv
Y29hLmgiCiAjaW1wb3J0ICJLZXlFdmVudENvZGVzSU9TLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1l
bnRlZC5oIgorI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENv
ZGVzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+CiAKQEAgLTMxNCw4ICsz
MTUsOSBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2
ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogCiBib29sIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzX2N1cnJlbnRNb2RpZmllcnMpCisgICAgICAgIHJl
dHVybiBzX2N1cnJlbnRNb2RpZmllcnMtPmNvbnRhaW5zKE1vZGlmaWVyOjpDYXBzTG9ja0tleSk7
CisgICAgcmV0dXJuIFs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdICYgV2ViRXZlbnRGbGFnTWFz
a0xlZnRDYXBzTG9ja0tleTsKIH0KIAogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1
cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBh
bHRLZXksIGJvb2wmIG1ldGFLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5o
CmluZGV4IDVhOWI0NzQ4MjczNDk0OGIyZmU2ZGJiNzc1YTA4ODNhMGE4YzhmMmIuLmUwYWExYmNh
MjZmOWUxODE2Y2M1YWViMGUyMDA4ZjJjMDUxZmVhMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5vbmF0b21pYykgQk9PTCB3
YXNIYW5kbGVkOwogCitAcHJvcGVydHkgKGNsYXNzLCByZWFkb25seSkgV2ViRXZlbnRGbGFncyBt
b2RpZmllckZsYWdzOworCiBAZW5kCiAKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0KaW5kZXggZjZlZDNiODg5YzZhMmJkNjVm
ZDJkYjdkN2NlYmQzOTFjMjMzYjJjZC4uMzg0ZDRkNTQ3ZGE4YWQyMzQ4Y2YxMGNhMWZmYTllMjVj
MTY2N2FiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQpAQCAtMzYs
NiArMzYsMTQgQEAKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNpbXBvcnQgIldBS0Fw
cEtpdFN0dWJzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+CisjaW1wb3J0
IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lv
cy9VSUtpdFNQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19G
UkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGljYXRpb24pOwor
CisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkKIAogdXNpbmcg
V2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlDb2RlOwogdXNpbmcgV2ViQ29yZTo6d2luZG93
c0tleUNvZGVGb3JDaGFyQ29kZTsKQEAgLTQ5MSw2ICs0OTksMTEgQEAgLSAoZmxvYXQpZ2VzdHVy
ZVJvdGF0aW9uCiAgICAgcmV0dXJuIF9nZXN0dXJlUm90YXRpb247CiB9CiAKKysgKFdlYkV2ZW50
RmxhZ3MpbW9kaWZpZXJGbGFncworeworICAgIHJldHVybiBHU0V2ZW50SXNIYXJkd2FyZUtleWJv
YXJkQXR0YWNoZWQoKSA/IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKFtVSUFwcGxpY2F0aW9u
IHNoYXJlZEFwcGxpY2F0aW9uXS5faGFyZHdhcmVLZXlib2FyZCkgOiAwOworfQorCiBAZW5kCiAK
ICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IGYwOTM2M2M1YTUzZDZmMzYyN2JhZTE5NTIzOTc2ZGI1
NmIxOWU0YmIuLjg3MWRjOWQ5MWJjMzk2YjQwYWM1MzM5MGIzMDAyNDU3MTAzZmRkNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTIzMywxMCArMjMz
LDYgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKICAg
ICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9D
S0lORykKLXN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPj4g
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpzX2N1cnJlbnRNb2RpZmllcnM7Ci0jZW5kaWYKLQogdm9p
ZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5
cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKIHsKICAgICAvLyBDYW4gb25seSBj
aGFuZ2UgdHlwZSBmcm9tIEtleURvd24gdG8gUmF3S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNr
IGluZm9ybWF0aW9uIGZvciBvdGhlciBjb252ZXJzaW9ucy4KQEAgLTI5MSwxNCArMjg3LDYgQEAg
dm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wm
IHNoaWZ0S2V5LCBib29sJiBjdHJsS2UKICAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycyAm
IDo6Y21kS2V5OwogfQogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRl
KE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzKQotewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgc19jdXJyZW50TW9kaWZpZXJzID0gbW9kaWZpZXJzOwotfQotI2VuZGlmCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCmluZGV4IDE2ZGU5NjU0ZmIy
NmFlYWFhYWIxYWQ4MzkzODMxMzhhNTZiZmUzMWMuLmNmNzdmZjMwMjc2N2U0MzQzMGQxYWEwMzc5
NWUxYjUzZjBkOTcyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaApAQCAtMzgsNiArMzgsOCBAQCBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGlj
IFJlbmRlclRoZW1lIHsKIHByaXZhdGU6CiAgICAgdm9pZCBkcmF3TGluZUZvckRvY3VtZW50TWFy
a2VyKGNvbnN0IFJlbmRlclRleHQmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFBvaW50
JiBvcmlnaW4sIGZsb2F0IHdpZHRoLCBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSkgZmluYWw7CiAK
KyAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVt
ZW50JikgY29uc3QgZmluYWw7CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIHZvaWQgYWRq
dXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9u
KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0K
aW5kZXggODM1YTY5NTIzYTQ5NWY1ZjFkYzNkZjEyODgzM2Q1NTc5ZWEyNjIxZC4uNjUzZWZlYjk4
NDVlMWZmZTNmMzYxY2VhNmMyZjQyNjQ5NDFkOGVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIlJl
bmRlclRoZW1lQ29jb2EuaCIKIAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBv
cnQgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclRleHQuaCIKIAogI2lmIEVO
QUJMRShBUFBMRV9QQVkpCkBAIC03OCw2ICs3OSwxMSBAQCB2b2lkIFJlbmRlclRoZW1lQ29jb2E6
OmRyYXdMaW5lRm9yRG9jdW1lbnRNYXJrZXIoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyZXIsIEdy
YQogICAgIENHQ29udGV4dEZpbGxQYXRoKHBsYXRmb3JtQ29udGV4dCk7CiB9CiAKK2Jvb2wgUmVu
ZGVyVGhlbWVDb2NvYTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNzd29y
ZEZpZWxkKCk7Cit9CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiBzdGF0aWMgY29uc3QgYXV0
byBhcHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggOGUwOWRmZDVmMzk5MWZjNDFjYjRhMjFkNWE5NDIz
NWNmN2NjZjA3NS4uYTkwNGE5M2VhZDBhODI4YzIyOTQzZjdiZTlkMjk1ZWZhMDExOTdiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTExNyw3ICsxMTcs
NiBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24o
Y29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxk
SGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdCBvdmVy
cmlkZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxl
U2hlZXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQppbmRleCAyZTkxODBmOGUyMGVhNGE3ZDNiNjMwMjhmZTBlZTFmMzBmNzEyNTZmLi4xNDNm
OGM4MTc3MWY3YjMxMWNjMWRlOTBlMzAwNTFjYzk2ZWNkODFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMTMwLDExICsxMTMwLDYgQEAgYm9vbCBS
ZW5kZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVu
dCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1lSU9TOjpz
aG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBSZW5k
ZXJUaGVtZUlPUzo6Y2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgdmFsdWVJ
RCkgY29uc3QKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udENhc2NhZGVEZXNjcmlw
dGlvbj4gc3lzdGVtRm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKaW5kZXggZGY0ZDk1MWM1YTU3NWVlNDkxZjBlNmI5Nzc2MjQ0YzdlODRjOTk3OS4uYzc1MGI1
NjI4YTBlMmFiMDE4NjllOGZmMGJhYzZkOGQ1Zjg4YjgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogI2VuZGlmCiAKLSAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25z
dCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3QgZmluYWw7Ci0KICAgICBib29sIHBhaW50U25hcHNo
b3R0ZWRQbHVnaW5PdmVybGF5KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNDBhOGFl
MGMyNzZhYWRiMjg5MmFiMDJjZjUxYjNlZDg4OTY1N2ZhZi4uMWY4OWU1YTk4NGU1MmM2NWJhODA2
ZmIxMWYyOGI3N2JjODM1ZDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtMjM0MiwxMSArMjM0Miw2IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFk
anVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBj
CiAgICAgfQogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRp
Y2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsKLSAgICByZXR1
cm4gZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKLX0KLQogTlNQb3BVcEJ1dHRvbkNlbGwqIFJl
bmRlclRoZW1lTWFjOjpwb3B1cEJ1dHRvbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BvcHVwQnV0
dG9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2NhZDdlYzZkNDky
MjRjY2E3ZDQ3ZjFkMmM5YjBkMGIxOWMyM2YxOC4uZGU5YmQxYzJiNDE4NWMxZDUzNGVlNTM4NDU5
MGQ1MjcxMjZlN2JjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDcy
OSw3ICs0NzI5LDcgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpwcmltYXJ5U2NyZWVuRGlzcGxheUlE
KCkKIAogYm9vbCBJbnRlcm5hbHM6OmNhcHNMb2NrSXNPbigpCiB7Ci0jaWYgUExBVEZPUk0oTUFD
KQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJldHVybiBXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmlu
ZGV4IDI2NTIxYmQ2NTNiMzcxZjI3NGJlM2E4YTQ2OWM1YzdjM2QzYzAyZjQuLjk1Mjc0MjkxMTUy
NGM4MzVmYTAxMjE4MzM1Y2VlNDE0NWZkYTMwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTQyLDggKzE0Miw2IEBACiAjaW1wb3J0
ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lz
dHJ5LmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCIKLSNpbXBvcnQgPE1v
YmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KLSNpbXBvcnQgPFVJS2l0L1VJ
QXBwbGljYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9s
bGFibGVBcmVhLmg+CkBAIC0xNTEsOCArMTQ5LDEyIEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2lt
cG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL2Nv
Y29hL0VudGl0bGVtZW50cy5oPgogCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxl
Q29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CisKICNkZWZp
bmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKF9wYWdlICYmIF9w
YWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykK
IAogQGludGVyZmFjZSBVSVZpZXcgKFVJVmlld0ludGVybmFsKQpAQCAtNzAxLDYgKzcwMyw4IEBA
IC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KIAogICAgIFtbX2NvbmZpZ3VyYXRpb24gX2NvbnRlbnRQcm92
aWRlclJlZ2lzdHJ5XSBhZGRQYWdlOipfcGFnZV07CiAgICAgX3BhZ2UtPnNldEZvcmNlQWx3YXlz
VXNlclNjYWxhYmxlKFtfY29uZmlndXJhdGlvbiBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0c10p
OworCisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxm
KSwgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5n
UmVmKVtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9h
cmRBdmFpbGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRp
b25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1B
QykKQEAgLTg0MCw2ICs4NDQsOCBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbW19jb25maWd1cmF0
aW9uIF9jb250ZW50UHJvdmlkZXJSZWdpc3RyeV0gcmVtb3ZlUGFnZToqX3BhZ2VdOwogICAgIFtb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07
CiAgICAgW19zY3JvbGxWaWV3IHNldEludGVybmFsRGVsZWdhdGU6bmlsXTsKKworICAgIENGTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3
aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIChDRlN0cmlu
Z1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJv
YXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIpOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9FVkVOVFMpCkBAIC0zMTAwLDYgKzMxMDYsMTMgQEAg
LSAodm9pZClfa2V5Ym9hcmRXaWxsSGlkZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
ICAgICBbc2VsZiBfa2V5Ym9hcmRDaGFuZ2VkV2l0aEluZm86bm90aWZpY2F0aW9uLnVzZXJJbmZv
IGFkanVzdFNjcm9sbFZpZXc6WUVTXTsKIH0KIAorc3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9p
ZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQor
eworICAgIEFTU0VSVChvYnNlcnZlcik7CisgICAgV0tXZWJWaWV3ICp3ZWJWaWV3ID0gKF9fYnJp
ZGdlIFdLV2ViVmlldyAqKW9ic2VydmVyOworICAgIHdlYlZpZXcuX3BhZ2UtPnVwZGF0ZUN1cnJl
bnRNb2RpZmllclN0YXRlKCk7Cit9CisKIC0gKHZvaWQpX3dpbmRvd0RpZFJvdGF0ZTooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBpZiAoIV9vdmVycmlkZXNJbnRlcmZhY2VP
cmllbnRhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGUwMjUxNGIxNmYxZTRjZjM1MmFmZDViYjA2YTQxMGE3Y2NkOWZjNTcuLmYyODJmNDIxYTkyYjgw
NDZhMWJhMTEwZWNhZGIzOWIyNDUyMGE1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMTU2MCw3ICsxNTYwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
c3BhdGNoQWN0aXZpdHlTdGF0ZUNoYW5nZSgpCiAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIExP
R19XSVRIX1NUUkVBTShBY3Rpdml0eVN0YXRlLCBzdHJlYW0gPDwgIldlYlBhZ2VQcm94eSAiIDw8
IHBhZ2VJRCgpIDw8ICIgZGlzcGF0Y2hBY3Rpdml0eVN0YXRlQ2hhbmdlOiBzdGF0ZSBjaGFuZ2Vk
IGZyb20gIiA8PCBwcmV2aW91c0FjdGl2aXR5U3RhdGUgPDwgIiB0byAiIDw8IG1fYWN0aXZpdHlT
dGF0ZSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoKGNo
YW5nZWQgJiBBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSkgJiYgaXNWaWV3V2luZG93QWN0
aXZlKCkpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGYyYTM3YjM4MDQ3ZGJiNWZl
MmU4ODdiNDVkZWM1ODk1OGIwNGVjMi4uNzQ4YmVhMDgxNmIyNzU2YTc4MWFlNGUyODA2MTg0YzIw
N2JmMDdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTc0Myw2
ICs3NDMsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNQcm9jZXNzaW5nS2V5Ym9hcmRFdmVudHMo
KSBjb25zdDsKICAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudCYpOwogCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19X
SU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCB1
cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOworI2VuZGlmCisKICNpZiBFTkFCTEUoTUFDX0dF
U1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IE5hdGl2ZVdl
Ykdlc3R1cmVFdmVudCYpOwogI2VuZGlmCkBAIC0xODQ5LDggKzE4NTMsNiBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQogICAgIHZvaWQgc3RhcnREaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklEKTsKICAg
ICB2b2lkIHN0b3BEaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklEKTsKLQotICAgIHZvaWQg
dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKICNlbmRpZgogCiAgICAgdm9pZCByZXBvcnRQ
YWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiA9IHsgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCA4OTIwNmQ1Njg2MTc4OWZmYzQxMzE3YzQ0NTA2ZDY5YTM3NGE3N2YxLi5m
MmU0MGY3Y2M4ODg4MDJlNTEzN2I0Y2IyZDNiOGQwZTNhMGVjNDFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTk1LDYgKzk1LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9z
L1VJS2l0U1BJLmg+CiAjaW1wb3J0IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgpAQCAtMzc0NCw5ICszNzQ1LDEz
IEBAIC0gKEJPT0wpcmVxdWlyZXNLZXlFdmVudHMKIAogLSAodm9pZClfaGFuZGxlS2V5VUlFdmVu
dDooOjpVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBib29sIGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50
ID0gISFldmVudC5faGlkRXZlbnQ7CisgICAgaWYgKGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ICYm
ICgoVUlQaHlzaWNhbEtleWJvYXJkRXZlbnQgKilldmVudCkuX2lucHV0RmxhZ3MgJiBrVUlLZXli
b2FyZElucHV0TW9kaWZpZXJGbGFnc0NoYW5nZWQpCisgICAgICAgIF9wYWdlLT51cGRhdGVDdXJy
ZW50TW9kaWZpZXJTdGF0ZSgpOworCiAgICAgLy8gV2Ugb25seSB3YW50IHRvIGhhbmRsZSBrZXkg
ZXZlbnQgZnJvbSB0aGUgaGFyZHdhcmUga2V5Ym9hcmQgd2hlbiB3ZSBhcmUKICAgICAvLyBmaXJz
dCByZXNwb25kZXIgYW5kIHdlIGFyZSBub3QgaW50ZXJhY3Rpbmcgd2l0aCBlZGl0YWJsZSBjb250
ZW50LgotICAgIGlmIChbc2VsZiBpc0ZpcnN0UmVzcG9uZGVyXSAmJiBldmVudC5faGlkRXZlbnQg
JiYgIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKSB7CisgICAgaWYgKFtz
ZWxmIGlzRmlyc3RSZXNwb25kZXJdICYmIGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ICYmICFfcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgewogICAgICAgICBbc2VsZiBoYW5k
bGVLZXlFdmVudDpldmVudF07CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAzODY1ODg0MTEzMTk0
YmVjOTQ4NGI2NDZjZWQwMDNjMWYyNDYxZjBlLi5jNGViYjQwMmE2YWY1NTJhMWY1MDZhNzZiZmJi
M2EzNjllOTFhZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KQEAgLTUzLDYgKzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9W
YWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEwODks
NiArMTA5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNTY3JvbGxpbmdPclpvb21pbmco
Ym9vbCBpc1Njcm9sbGluZ09yWm9vbWluZykKICAgICAgICAgbV92YWxpZGF0aW9uQnViYmxlLT5z
aG93KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0
ZSgpCit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVDdXJy
ZW50TW9kaWZpZXJTdGF0ZShbOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSksIG1fcGFnZUlEKTsK
K30KKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhNWRiMGZkNGNjOTQy
ZGNiNmU3OTQ1MTRhMzE0ZjdiNmY5NGQ5YmU3Li40ZjhhYTA3YjhlM2QzZTNmMTY2M2VmODRhN2M5
NWYzMzU2MzIwMjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC0xMDkxLDcgKzEwOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nQXBwbGljYXRpb25NYW5pZmVzdCh1aW50NjRfdCwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0PiYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKHVp
bnQzMl90IG1vZGlmaWVycyk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMGFiMjAwOTYxYTQzNDA0
NTA2MjkwNGYxNzM5NjVhZmNhZDQ3ZjA0MS4uZDJjYzI5NjQxMGIzYjc1N2NmNzgyM2VkYzNlYWY4
YzhhZmNkMWY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01MjgsNyArNTI4LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJz
TG9hZGluZykKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1Nf
V0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFVwZGF0
ZUN1cnJlbnRNb2RpZmllclN0YXRlKHVpbnQzMl90IG1vZGlmaWVycykKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCA4YWFmZGIzNTViZWEyMWU0Y2YwOGQ4NDAxMjg4ZDVmYzAzM2ZjZjE4Li43MWE0OTkyYzFl
Y2YwNDk3MDc1NzUyZjZlM2EzNDE2MDgxOTYwNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzA4Niw2ICszMDg2LDI0
IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordm9pZCBXZWJQYWdlOjp1cGRhdGVDdXJyZW50TW9k
aWZpZXJTdGF0ZSh1aW50MzJfdCBjdXJyZW50TW9kaWZpZXJzKQoreworICAgIE9wdGlvblNldDxQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOworICAgIGlmIChjdXJyZW50TW9kaWZp
ZXJzICYgV2ViRXZlbnRGbGFnTWFza1NoaWZ0S2V5KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmll
cnMgJiBXZWJFdmVudEZsYWdNYXNrQ29udHJvbEtleSkKKyAgICAgICAgbW9kaWZpZXJzLmFkZChQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmll
cnMgJiBXZWJFdmVudEZsYWdNYXNrT3B0aW9uS2V5KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOworICAgIGlmIChjdXJyZW50TW9kaWZpZXJz
ICYgV2ViRXZlbnRGbGFnTWFza0NvbW1hbmRLZXkpCisgICAgICAgIG1vZGlmaWVycy5hZGQoUGxh
dGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOworICAgIGlmIChjdXJyZW50TW9kaWZpZXJz
ICYgV2ViRXZlbnRGbGFnTWFza0xlZnRDYXBzTG9ja0tleSkKKyAgICAgICAgbW9kaWZpZXJzLmFk
ZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXkpOworICAgIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVyU3RhdGUobW9kaWZpZXJzKTsKKyAgICBpZiAo
YXV0byogZm9jdXNlZEZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkRnJh
bWUoKSkKKyAgICAgICAgZm9jdXNlZEZyYW1lLT5ldmVudEhhbmRsZXIoKS5jYXBzTG9ja1N0YXRl
TWF5SGF2ZUNoYW5nZWQoKTsKK30KKwogI2lmIFVTRShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdl
OjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBh
c3N3b3JkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggNmRkYWNhMTA4YzM3ZGZjNDRlNzNjOTcwYmU3YzY1ODY2YTgwYWE0MC4uOTBh
MDI1OTkwN2NjMWQ5YmY4MzE4MDYxMjNiNDUzYTVhMDVhOWU1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNjQsNyArMTY0LDkgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvV0FLU2Nyb2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XQUtX
aW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0tHcmFwaGljcy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CisjaW1w
b3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04MTQsNiArODE2LDE2IEBAIHN0YXRpYyBDYWNoZWRJbWFn
ZUNsaWVudCYgcHJvbWlzZWREYXRhQ2xpZW50KCkKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlv
biA9IEAiV2ViTWFya2VkVGV4dFVwZGF0ZWQiOworCitzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJv
YXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2
b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYp
Cit7CisgICAgQVNTRVJUKG9ic2VydmVyKTsKKyAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAg
V2ViSFRNTFZpZXcgKndlYlZpZXcgPSAoX19icmlkZ2UgV2ViSFRNTFZpZXcgKilvYnNlcnZlcjsK
KyAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFt3ZWJWaWV3IF9mcmFtZV0pKQor
ICAgICAgICAgICAgY29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5jYXBzTG9ja1N0YXRlTWF5SGF2
ZUNoYW5nZWQoKTsKKyAgICB9KTsKK30KICNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3
IChXZWJIVE1MVmlld0ZpbGVJbnRlcm5hbCkKQEAgLTI2MTAsNiArMjYyMiw3IEBAIC0gKGlkKWlu
aXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gCiAgICAgICAgICAgICBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihtYXJrZWRUZXh0VXBkYXRlOikgCiAgICAgICAgICAgICAgICAgICAgbmFtZTpXZWJNYXJr
ZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBDRk5vdGlmaWNhdGlv
bkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2Vu
dGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCBoYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrLCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dp
dGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRO
b3RpZmljYXRpb25dLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNv
YWxlc2NlKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjYyNiw2ICsyNjM5LDcg
QEAgLSAodm9pZClkZWFsbG9jCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
OldlYk1hcmtlZFRleHRVcGRhdGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIENGTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3
aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIChDRlN0cmlu
Z1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJv
YXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIpOwogI2VuZGlmCiAK
ICAgICAvLyBXZSBjYW4ndCBhc3NlcnQgdGhhdCBjbG9zZSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxl
ZCBiZWNhdXNlCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAwZGIxMDhmNzcwN2FhNTlkNjgxNzEzYTE2YmFiNDli
YmI2MTAxNjEwLi5mMzA4NzczMzBkMDU3NWQ3ODEwZWMwMDBhMDA1MjRhNzU0YWNjY2MzIDEwMDY0
NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0xMS0wMSAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9y
IGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ugc29t
ZSBtb3JlIHN5bWJvbHMuCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
aU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkOgor
CiAyMDE4LTA2LTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFbmFibGUgV2ViS2l0IGlPUyAxMiBidWlsZApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5m
cmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFw
aGljc1NlcnZpY2VzLnRiZAppbmRleCBhYjFjNDA2MDBlZjczOWVkMDc5NzBmNWZiMzdiOTVlNzg5
NzQxNTFjLi5kMzU0MzI0NjVkMWIzZDg2M2UyNjc5NDNjOGUzYWI1MmE3MTM0OWY0IDEwMDY0NAot
LS0gYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9H
cmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZAorKysgYi9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1Nl
cnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZApAQCAtMTUsMTAgKzE1LDEzIEBA
IGV4cG9ydHM6CiAgICAgICAtIHg4Nl82NAogICAgIHN5bWJvbHM6CiAgICAgICAtIF9HU0N1cnJl
bnRFdmVudFRpbWVzdGFtcAorICAgICAgLSBfR1NFdmVudElzSGFyZHdhcmVLZXlib2FyZEF0dGFj
aGVkCiAgICAgICAtIF9HU0ZvbnRJbml0aWFsaXplCiAgICAgICAtIF9HU0ZvbnRQdXJnZUZvbnRD
YWNoZQogICAgICAgLSBfR1NJbml0aWFsaXplCisgICAgICAtIF9HU0tleWJvYXJkR2V0TW9kaWZp
ZXJTdGF0ZQogICAgICAgLSBfR1NTeXN0ZW1Sb290RGlyZWN0b3J5CisgICAgICAtIF9rR1NFdmVu
dEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uCiBpbnN0YWxs
LW5hbWU6IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9HcmFwaGljc1NlcnZpY2Vz
LmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzCiBvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKIHBsYXRm
b3JtOiBpb3MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354002</attachid>
            <date>2018-11-06 14:05:27 -0800</date>
            <delta_ts>2018-11-06 14:06:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181106140526.patch</filename>
            <type>text/plain</type>
            <size>35319</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWExYzI3NmQ0YWE2NDcx
YTFiZTYxYTU1NTQ3ZTFlYmQwMGE2YmYyZi4uZjliMzZkODM0YTE4YzY0YjYzM2JiMmY1YzhiZTgw
NWE5ODg2YWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5n
ZWQgY29uc3QpOiBFeHRyYWN0ZWQgZnJvbSBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQo
KQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBzaGFyZWQgYmV0d2VlbiBXZWJDb3JlLCBNb2Rlcm4g
V2ViS2l0LCBhbmQgTGVnYWN5IFdlYktpdCBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KTogTW9kaWZpZWQgdG8gY2FsbCBjYXBzTG9ja1N0YXRl
TWF5SGF2ZUNoYW5nZWQoKS4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1h
Yy5tbSBzbyB0aGF0IGl0CisgICAgICAgIGNhbiBiZSBzaGFyZWQgYnkgYm90aCBNYWMgYW5kIGlP
Uy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogUXVlcnkg
dGhlIG1vZGlmaWVyIHN0YXRlIHRvIGRldGVybWluZQorICAgICAgICB3aGV0aGVyIGNhcHMgbG9j
ayBpcyBlbmFibGVkIG9yIGRpc2FibGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJFdmVu
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJFdmVudC5tbToKKyAgICAgICAgKCtbV2Vi
RXZlbnQgbW9kaWZpZXJGbGFnc10pOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2V5
RXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgbW92ZWQgdG8gS2V5RXZlbnRDb2NvYS5t
bSBzbworICAgICAgICB0aGF0IGl0IGNhbiBiZSBzaGFyZWQgYnkgYm90aCBNYWMgYW5kIGlPUy4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVD
b2NvYTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogTW92ZWQgZnJvbSBSZW5k
ZXJUaGVtZU1hYy5tbSBzbworICAgICAgICB0aGF0IGlzIGNhbiBiZSBzaGFyZWQgYnkgYm90aCBN
YWMgYW5kIGlPUy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yIGNvbnN0KTogRGVsZXRlZDsgbW92ZWQgdG8gUmVu
ZGVyVGhlbWVDb2NvYS5tbQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBiZSBzaGFyZWQgYnkgYm90
aCBNYWMgYW5kIGlPUy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmNhcHNMb2NrSXNPbik6CisKIDIwMTgtMTAtMzEgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
MzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9yIG5vdCBzaG93biBpbiBwYXNzd29yZCBmaWVsZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggMzUxMTBjYThkNDMwMmYyMzIwZjE2ZTlhZTdkNTIxYzljNjY1
ZjNjYi4uMGU2N2U4NjMyNmZlOWYwYWM4MTBhYWY5NzExMDI4OTI5MzdjYzU2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMTEtMDEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBk
ZWNsYXJlIHNvbWUgbW9yZSBTUEkuCisKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9HcmFwaGljc1Nl
cnZpY2VzU1BJLmg6CisgICAgICAgICogcGFsL3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOC0x
MS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
Tm9ybWFsaXplIGNoYXJhY3RlciBzdHJpbmcgYmFzZWQgb24ga2V5IGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZmFjMzVmYzJmZmZlZjBiMjcyYjY4NDJiZTg3YjAxZTA0ZTM5OTJhYS4uNmEwMTAxMWIwMjc4Zjc0
MTE0YWNlMjk3OTM2MDUzMzQ5NGI3Zjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAx
OC0xMS0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaXJlIHVwIGlPUyB0byB1cGRhdGUgdGhlIGN1cnJlbnQgbW9kaWZp
ZXIgc3RhdGUgYW5kIG5vdGlmeSBXZWJDb3JlIHRoYXQgdGhlIGNhcHMgbG9jayBzdGF0ZSBtYXkK
KyAgICAgICAgaGF2ZSBjaGFuZ2VkIHNvIHRoYXQgV2ViQ29yZSBjYW4gc2hvdyBvciBoaWRlIHRo
ZSBjYXBzIGxvY2sgaW5kaWNhdG9yIGFzIGFwcHJvcHJpYXRlLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlh
bGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBSZWdpc3RlciBmb3IgaGFyZHdhcmUgYXZhaWxhYmls
aXR5IGNoYW5nZSBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1dlYlZpZXcgZGVhbGxvY10p
OiBVbnJlZ2lzdGVyIGZyb20gaGFyZHdhcmUgYXZhaWxhYmlsaXR5IGNoYW5nZSBub3RpZmljYXRp
b25zLgorICAgICAgICAoaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFj
ayk6IEFkZGVkLiBVcGRhdGUgdGhlIGNhcHMgbG9jayBzdGF0ZS4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaXNw
YXRjaEFjdGl2aXR5U3RhdGVDaGFuZ2UpOiBPcHQgaU9TIGludG8gY29kZSB0byB1cGRhdGUgdGhl
IGN1cnJlbnQgbW9kaWZpZXIKKyAgICAgICAgc3RhdGUgb24gY2hhbmdlcyB0byB3aW5kb3cgYWN0
aXZhdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgX2hhbmRsZUtleVVJRXZlbnQ6XSk6IFVwZGF0ZSB0aGUgY3VycmVudCBtb2Rp
ZmllciBzdGF0ZSBpZiB0aGlzIGV2ZW50IGlzIGEgaGFyZHdhcmUKKyAgICAgICAga2V5Ym9hcmQg
ZmxhZ3MgY2hhbmdlZCBldmVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9k
aWZpZXJTdGF0ZSk6IEFkZGVkOyBpbXBsZW1lbnQgZm9yIGlPUy4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOiBPcHQgaU9TIGludG8gc3VwcG9ydGluZyB0aGUgVXBkYXRlQ3VycmVu
dE1vZGlmaWVyU3RhdGUgbWVzc2FnZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUN1cnJlbnRN
b2RpZmllclN0YXRlKTogQWRkZWQ7IGltcGxlbWVudCBmb3IgaU9TLiBXZSBub3RpZnkgdGhlIGZv
Y3VzZWQgZnJhbWUgKGlmIGFueSkKKyAgICAgICAgdG8gdXBkYXRlIGl0cyBjYXBzIGxvY2sgc3Rh
dGUgc28gdGhhdCB3ZSByZWFjdCB0byBtb2RpZmllciBrZXkgY2hhbmdlcyBhcyBhIHJlc3VsdCBv
ZiBhIGhhcmR3YXJlIGF2YWlsYWJpbGl0eQorICAgICAgICBjaGFuZ2UgKGUuZy4gdGhlIGhhcmR3
YXJlIGtleWJvYXJkIGlzIGRldGFjaGVkKS4KKwogMjAxOC0xMC0zMSAgUGVyIEFybmUgVm9sbGFu
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIzMDUyMyk6IENh
cHMgbG9jayBpbmRpY2F0b3Igbm90IHNob3duIGluIHBhc3N3b3JkIGZpZWxkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggYjM4N2Q3ZTc0NmIyYzU4NDQyMjVlZmI3NWM1ZGUzMWFiM2Jh
OTRlYi4uNWI5NjFmMThjNjhjMjRiZjI5NTMyYTZhMTVjODRjYWU0NTEzZjFiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTAxICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9j
ayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZSB0aGUgY2FwcyBsb2NrIHN0YXRlIHdoZW4gYSBoYXJkd2FyZSBrZXlib2FyZCBpcyBh
dHRhY2hlZCBvciBkZXRhY2hlZC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06
CisgICAgICAgIChoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKTog
QWRkZWQuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGluaXRXaXRoRnJhbWU6XSk6IFJlZ2lzdGVy
IGZvciBoYXJkd2FyZSBhdmFpbGFiaWxpdHkgY2hhbmdlIG5vdGlmaWNhdGlvbnMuCisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IGRlYWxsb2NdKTogVW5yZWdpc3RlciBmcm9tIGhhcmR3YXJlIGF2YWls
YWJpbGl0eSBjaGFuZ2Ugbm90aWZpY2F0aW9ucy4KKwogMjAxOC0xMS0wMiAgRGFuaWVsIEJhdGVz
ICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gV2ViS2l0IHNob3VsZCBkaXNw
YXRjaCBET00gZXZlbnRzIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgcHJlc3NlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKaW5k
ZXggMWNjOGIzMTE4MDQyMDU0YjNhM2MyYTc2YTc5OTE0NDFjZDFhNDVjMy4uMWI1YmQ5Nzg0ZmFj
NjNlMWJhYWQzNTU5YWJmYjdiZWU1YzEwMTZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDEyIEBAIENG
U3RyaW5nUmVmIEdTU3lzdGVtUm9vdERpcmVjdG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlh
bGl6ZSh2b2lkKTsKIHZvaWQgR1NGb250UHVyZ2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYg
c3RydWN0IF9fR1NLZXlib2FyZCogR1NLZXlib2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRH
ZXRNb2RpZmllclN0YXRlKEdTS2V5Ym9hcmRSZWYpOworQm9vbGVhbiBHU0V2ZW50SXNIYXJkd2Fy
ZUtleWJvYXJkQXR0YWNoZWQoKTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKmtHU0V2ZW50SGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb247CisKIFdURl9FWFRFUk5f
Q19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9p
b3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5o
CmluZGV4IDdjOTQ3MTQ4NjVkZGExOWNmYTlmY2U3MGMzYmJlNzJhMmIzNTU5NjkuLjFhODdhZjVh
ZjNhNDg5YzExMzY2MGJiMmZkNTRmOGM3NjZlNGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9w
YWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0yMyw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBz
dHJ1Y3QgX19HU0tleWJvYXJkKiBHU0tleWJvYXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhT
dHlsZV9Qcml2YXRlLmg+CkBAIC00NCw2ICs0OCw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNh
dGlvbiAoKQogKyAoVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOwor
LSAoR1NLZXlib2FyZFJlZilfaGFyZHdhcmVLZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc1
LDEwICs4MCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2Vu
ZUNsYXNzaWNNb2RlKSB7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAt
IChCT09MKV9pc0NsYXNzaWM7CiArIChVSUFwcGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xh
c3NpY01vZGU7Ci0KKy0gKEdTS2V5Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAK
IEBpbnRlcmZhY2UgVUlDb2xvciAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDk5Yjc0YmZiNjYzYmY5OTY4MmZiNjRmYzBhYWViM2YzN2E3OGMxYTAuLjk3YmQwNGYwODVh
ZGVmNDM2NzNlYjQ3NWFiYjc1YmYwYTBiN2IyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTMxNjIsNiArMzE2MiwxNCBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCkKICAgICByZXR1cm4gd2Fz
SGFuZGxlZDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpIGNvbnN0Cit7CisgICAgYXV0byogZm9jdXNlZEVsZW1lbnQgPSBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmZvY3VzZWRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MSW5wdXRFbGVtZW50Pihm
b2N1c2VkRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PigqZm9jdXNlZEVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwor
fQorCiBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3Rl
ZEZyYW1lKG1fZnJhbWUpOwpAQCAtMzE5NCwxMiArMzIwMiw4IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtl
eUV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAoaW5pdGlhbEtleUV2ZW50LndpbmRvd3NW
aXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpIHsKLSAgICAgICAgaWYgKGF1dG8qIGVsZW1l
bnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsKLSAgICAgICAgICAg
IGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hh
bmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQud2luZG93
c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkKKyAgICAgICAgY2Fwc0xvY2tTdGF0ZU1h
eUhhdmVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICBpZiAobV9m
cmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGY1ZmUwOGY2MTZlNTJkMTc0MDM0NDU3
ODM1OGNiMGRkYjIwZDllODQuLjkyZmJjNWFmY2Y4OGViMjA0NDQwNDkyMDEyY2M5ZGE4NDA2YmI0
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjU2LDYgKzI1Niw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGtleUV2ZW50KGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQgZGVmYXVsdEtleWJvYXJkRXZl
bnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhcHNM
b2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0OwogCiAgICAgYm9vbCBhY2Nlc3NpYmlsaXR5
UHJldmVudHNFdmVudFByb3BhZ2F0aW9uKEtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JBY2Nlc3NpYmlsaXR5
KEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgKaW5kZXggM2JkOTQ0ZDQ5MTBjMWRlOGZkMGQ2MzhlYzAyMzc5ZWZjNDVl
OGM5Yi4uMTczZjBiODRmMDEzMTViZTVjNDZhOThlYzc5Y2ZjOWM3OTVhZGMzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKQEAgLTEzNyw3
ICsxMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGJvb2wgY3VycmVudENhcHNMb2NrU3RhdGUoKTsKICAgICAgICAgc3RhdGljIHZvaWQg
Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJv
b2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSk7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBF
TkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRNb2Rp
ZmllclN0YXRlKE9wdGlvblNldDxNb2RpZmllcj4pOwogI2VuZGlmCiAKQEAgLTIxMCw3ICsyMTAs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbXBvc2l0aW9uUmVzdWx0cyBtX2Nv
bXBvc2l0aW9uUmVzdWx0czsKICNlbmRpZgogICAgICAgICAKLSNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICAgICAgLy8gVGhlIG1vZGlmaWVyIHN0YXRlIGlzIG9wdGlvbmFs
LCBzaW5jZSBpdCBpcyBub3QgbmVlZGVkIGluIHRoZSBVSSBwcm9jZXNzIG9yIGluIGxlZ2FjeSBX
ZWJLaXQuCiAgICAgICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE9wdGlvblNldDxNb2RpZmllcj4+
IHNfY3VycmVudE1vZGlmaWVyczsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KaW5kZXggNjMxZGQxNDBkN2JlYmQ3Y2ZiOGZmNTRlMzM5
MjZlNGUzODhhYzUxZC4uNTQ4OTExMGFhYmM3YThmOWM2ODUxNDYyMGI3ZDlmYTZkZmQ2N2I5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCkBA
IC0yNyw4ICsyNywxMCBAQAogI2ltcG9ydCAiS2V5RXZlbnRDb2NvYS5oIgogCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIldp
bmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5oPgorI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTM5LDYgKzQxLDE2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFURk9STShJT1NfRkFN
SUxZKQorc3RkOjpvcHRpb25hbDxPcHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+PiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNfY3VycmVudE1vZGlmaWVyczsKKwordm9pZCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRlKE9wdGlvblNldDxNb2RpZmll
cj4gbW9kaWZpZXJzKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc19jdXJy
ZW50TW9kaWZpZXJzID0gbW9kaWZpZXJzOworfQorI2VuZGlmCisKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby91aWV2ZW50cy1rZXkvCiBTdHJpbmcga2V5Rm9yQ2hhckNvZGUodW5pY2hhciBjaGFy
Q29kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVu
dElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRl
eCAxOWNhOWJmZGY0YjE2OGEzMTA3NDMyNDJjZGIxOTMxYmMwOTMzMGJlLi4wNjEyYTlhMGYyOGQ0
ODYwZDg2ZGM1Zjc1MTk0MzI2ZTc4OWEzYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJLZXlFdmVudENv
Y29hLmgiCiAjaW1wb3J0ICJLZXlFdmVudENvZGVzSU9TLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1l
bnRlZC5oIgorI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NLZXlib2FyZENv
ZGVzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+CiAKQEAgLTMxNCw4ICsz
MTUsOSBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2
ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogCiBib29sIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChzX2N1cnJlbnRNb2RpZmllcnMpCisgICAgICAgIHJl
dHVybiBzX2N1cnJlbnRNb2RpZmllcnMtPmNvbnRhaW5zKE1vZGlmaWVyOjpDYXBzTG9ja0tleSk7
CisgICAgcmV0dXJuIFs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdICYgV2ViRXZlbnRGbGFnTWFz
a0xlZnRDYXBzTG9ja0tleTsKIH0KIAogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1
cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBh
bHRLZXksIGJvb2wmIG1ldGFLZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5o
CmluZGV4IDNiZDM2YmY3Mzc0YWRmNTBhOGZhM2M5ZjBkNDEwOTMyNDcxNGVlMzUuLjIyNGEwN2Uy
Mjc4NjYzYmQyYWM2MGQ5OGQyMTJkYzhmNTI3NmJiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5vbmF0b21pYykgQk9PTCB3
YXNIYW5kbGVkOwogCitAcHJvcGVydHkgKGNsYXNzLCByZWFkb25seSkgV2ViRXZlbnRGbGFncyBt
b2RpZmllckZsYWdzOworCiBAZW5kCiAKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0KaW5kZXggZTY3OGU5ZTQ0YjZmNzg4MmU3
NDkzYjU1NjZkZTAxZTcyM2QwN2Y0Yi4uYTZiZDczMzM0NTNjMTU3ZjE1YzhhODVjMDk2NjViNDVh
YWZkNDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQpAQCAtMzYs
NiArMzYsMTQgQEAKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNpbXBvcnQgIldBS0Fw
cEtpdFN0dWJzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+CisjaW1wb3J0
IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lv
cy9VSUtpdFNQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19G
UkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGljYXRpb24pOwor
CisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkKIAogdXNpbmcg
V2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlDb2RlOwogdXNpbmcgV2ViQ29yZTo6d2luZG93
c0tleUNvZGVGb3JDaGFyQ29kZTsKQEAgLTQ5MSw2ICs0OTksMTEgQEAgLSAoZmxvYXQpZ2VzdHVy
ZVJvdGF0aW9uCiAgICAgcmV0dXJuIF9nZXN0dXJlUm90YXRpb247CiB9CiAKKysgKFdlYkV2ZW50
RmxhZ3MpbW9kaWZpZXJGbGFncworeworICAgIHJldHVybiBHU0V2ZW50SXNIYXJkd2FyZUtleWJv
YXJkQXR0YWNoZWQoKSA/IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKFtVSUFwcGxpY2F0aW9u
IHNoYXJlZEFwcGxpY2F0aW9uXS5faGFyZHdhcmVLZXlib2FyZCkgOiAwOworfQorCiBAZW5kCiAK
ICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IGYwOTM2M2M1YTUzZDZmMzYyN2JhZTE5NTIzOTc2ZGI1
NmIxOWU0YmIuLjg3MWRjOWQ5MWJjMzk2YjQwYWM1MzM5MGIzMDAyNDU3MTAzZmRkNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTIzMywxMCArMjMz
LDYgQEAgaW50IHdpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKICAg
ICByZXR1cm4gMDsKIH0KIAotI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9D
S0lORykKLXN0ZDo6b3B0aW9uYWw8T3B0aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPj4g
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpzX2N1cnJlbnRNb2RpZmllcnM7Ci0jZW5kaWYKLQogdm9p
ZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChUeXBlIHR5
cGUsIGJvb2wgYmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSkKIHsKICAgICAvLyBDYW4gb25seSBj
aGFuZ2UgdHlwZSBmcm9tIEtleURvd24gdG8gUmF3S2V5RG93biBvciBDaGFyLCBhcyB3ZSBsYWNr
IGluZm9ybWF0aW9uIGZvciBvdGhlciBjb252ZXJzaW9ucy4KQEAgLTI5MSwxNCArMjg3LDYgQEAg
dm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wm
IHNoaWZ0S2V5LCBib29sJiBjdHJsS2UKICAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycyAm
IDo6Y21kS2V5OwogfQogCi0jaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OnNldEN1cnJlbnRNb2RpZmllclN0YXRl
KE9wdGlvblNldDxNb2RpZmllcj4gbW9kaWZpZXJzKQotewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7Ci0gICAgc19jdXJyZW50TW9kaWZpZXJzID0gbW9kaWZpZXJzOwotfQotI2VuZGlmCi0K
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCmluZGV4IGE0NjRjMTA0MDJm
MDQ3MTMyODZiNDQ2MGM3MTE4MzdhNjI3ODdkZTAuLmYxODg3NDI0ZjYzZjRlOWM3OTgxZGJjM2Q2
NGE5ODNhYTNiMWU0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaApAQCAtMzYsNiArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJl
bmRlclRoZW1lQ29jb2EgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogcHJpdmF0ZToKKyAgICBib29s
IHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29u
c3QgZmluYWw7CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogICAgIHZvaWQgYWRqdXN0QXBwbGVQ
YXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50
KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KaW5kZXggZmVh
Y2ZjNWIzM2M3NWQ2YTA5YTJlOGNhYWNjOTBjMzI0MGEyMjE4OC4uYjRhYWY2NDIxZDJiNmQzYzVi
MzBkZWFhNzRlM2U3MjYzMjlkMmFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIlJlbmRlclRoZW1l
Q29jb2EuaCIKIAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclRleHQuaCIKIAogI2lmIEVOQUJMRShBUFBM
RV9QQVkpCkBAIC01MSw2ICs1MiwxMSBAQCBTT0ZUX0xJTktfTUFZX0ZBSUwoUGFzc0tpdCwgUEtE
cmF3QXBwbGVQYXlCdXR0b24sIHZvaWQsIChDR0NvbnRleHRSZWYgY29udGV4dCwgQwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgUmVuZGVyVGhlbWVDb2NvYTo6c2hvdWxkSGF2ZUNhcHNM
b2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNzd29yZEZpZWxkKCk7Cit9CisKICNpZiBFTkFCTEUoQVBQ
TEVfUEFZKQogCiBzdGF0aWMgY29uc3QgYXV0byBhcHBsZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9
IDE0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKaW5kZXggZDRk
NmVmOTgxODgzYmFhZmVhYTA2OGRhMjI3MTI3Yzc4YTk3NmQwNy4uNTc3NWNkZjUzYmYxNmQzOWQ4
MWU4NDY3MDA5YTIxM2YyZjVhMDI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLmgKQEAgLTExNyw3ICsxMTcsNiBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAg
IGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAg
ICBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBhNmM5MTAzNGI4ZDQ5MzVkMTIy
MDVlNmRjODBhYzM4ZTRkYjRjNjYzLi5mOWM2ZTgxMDA0ZjAxMjRiOWM3ODBjMjRhZWE1ZGY0NzFh
YzU1NzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBA
IC0xMTMwLDExICsxMTMwLDYgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZVNwaW5C
dXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIFJlbmRlclRoZW1lSU9TOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29u
c3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBG
b250Q2FzY2FkZURlc2NyaXB0aW9uJiBSZW5kZXJUaGVtZUlPUzo6Y2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQgdmFsdWVJRCkgY29uc3QKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Rm9udENhc2NhZGVEZXNjcmlwdGlvbj4gc3lzdGVtRm9udDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggZDg1NzYxYWJjOWIxMmRmZGRhNTU0
NWRkMTRmODAzNDk2Mzc5NTBkNy4uOGNlZDg4NDQxYzgyNmIxZDA4OGMzMzk5Yzc2ZTUxNjI2ZGJi
ZGFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTE2
NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5n
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICBib29sIHNob3Vs
ZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3QgZmlu
YWw7Ci0KICAgICBib29sIHBhaW50U25hcHNob3R0ZWRQbHVnaW5PdmVybGF5KGNvbnN0IFJlbmRl
ck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBmaW5hbDsKIAogI2lm
IEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KaW5kZXggM2ZiZDYwZDYxNzE3OWQ4MGIxOTI2NTlhOWI4ZjBiYzljOWU2
Y2RkNS4uZTkxMjE1MDYwZWY5YWI4ZDYxZDM1ZWIyYzViYWI5MjhmYzI4MzYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjM0MiwxMSArMjM0Miw2
IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjCiAgICAgfQogfQogCi1ib29sIFJlbmRlclRoZW1l
TWFjOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgY29uc3QKLXsKLSAgICByZXR1cm4gZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQoKTsK
LX0KLQogTlNQb3BVcEJ1dHRvbkNlbGwqIFJlbmRlclRoZW1lTWFjOjpwb3B1cEJ1dHRvbigpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3BvcHVwQnV0dG9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggOTlmYmExNGNiMWMwZmQ3NzdhNjhmNTA2NDI0ZmVmZjA3OWZkYjE1MS4u
MzMwNWJkNzQyNzhhNzk2YWI5M2EwNDg1YmJiOTk5YzlkMmM3NWViNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDczMyw3ICs0NzMzLDcgQEAgdW5zaWduZWQgSW50ZXJu
YWxzOjpwcmltYXJ5U2NyZWVuRGlzcGxheUlEKCkKIAogYm9vbCBJbnRlcm5hbHM6OmNhcHNMb2Nr
SXNPbigpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHJl
dHVybiBXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRl
KCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDljNjhlOGY2ZmE4NTFmOWM4NTIzMGIxYzdh
MjRkY2Q0OTcxNzBiN2UuLjY1YjhjNTVmODZkY2NkODRkYTQzODAxYjc0NDRhOGUyZWVmMTg2OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMTQyLDggKzE0Miw2IEBACiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQgIldL
V2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXIuaCIKLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2Vy
dmljZXMuaD4KLSNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb24uaD4KICNpbXBvcnQgPFdlYkNv
cmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGFibGVBcmVhLmg+CkBAIC0xNTEsOCArMTQ5LDEy
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2
aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgogCisjaW1wb3J0
IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CisjaW1wb3J0IDxVSUtp
dC9VSUFwcGxpY2F0aW9uLmg+CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4p
IFJFTEVBU0VfTE9HX0lGKF9wYWdlICYmIF9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykKIAogQGludGVyZmFjZSBVSVZpZXcgKFVJVmlld0lu
dGVybmFsKQpAQCAtNzAxLDYgKzcwMyw4IEBAIC0gKHZvaWQpX2luaXRpYWxpemVXaXRoQ29uZmln
dXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIAogICAgIFtb
X2NvbmZpZ3VyYXRpb24gX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5XSBhZGRQYWdlOipfcGFnZV07
CiAgICAgX3BhZ2UtPnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKFtfY29uZmlndXJhdGlvbiBp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0c10pOworCisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJB
ZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCAo
X19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0
cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0
aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNjZSk7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTgzOCw2ICs4NDIsOCBAQCAtICh2b2lk
KWRlYWxsb2MKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250ZW50UHJvdmlkZXJSZWdpc3RyeV0g
cmVtb3ZlUGFnZToqX3BhZ2VdOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAgICAgW19zY3JvbGxWaWV3IHNldEludGVybmFs
RGVsZWdhdGU6bmlsXTsKKworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNv
bnN0IHZvaWQgKikoc2VsZiksIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhT
dHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNh
dGlvbl0sIG51bGxwdHIpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9FVkVO
VFMpCkBAIC0zMDk4LDYgKzMxMDQsMTMgQEAgLSAodm9pZClfa2V5Ym9hcmRXaWxsSGlkZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KICAgICBbc2VsZiBfa2V5Ym9hcmRDaGFuZ2VkV2l0
aEluZm86bm90aWZpY2F0aW9uLnVzZXJJbmZvIGFkanVzdFNjcm9sbFZpZXc6WUVTXTsKIH0KIAor
c3RhdGljIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25z
dCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVmKQoreworICAgIEFTU0VSVChvYnNlcnZlcik7CisgICAg
V0tXZWJWaWV3ICp3ZWJWaWV3ID0gKF9fYnJpZGdlIFdLV2ViVmlldyAqKW9ic2VydmVyOworICAg
IHdlYlZpZXcuX3BhZ2UtPnVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCk7Cit9CisKIC0gKHZv
aWQpX3dpbmRvd0RpZFJvdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAg
ICBpZiAoIV9vdmVycmlkZXNJbnRlcmZhY2VPcmllbnRhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDIwZDc5NTY0M2I2NTkxNDU2OWM0NWY0MWVmZmI0
ZTQ5NTA5OTQ0ZTguLmI4ZmIzNWQzNWEyOTkzYWVhMmVjNGM3OWIxYzlkOWY0MTgyNTA1ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTU2MSw3ICsxNTYx
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpc3BhdGNoQWN0aXZpdHlTdGF0ZUNoYW5nZSgpCiAg
ICAgaWYgKGNoYW5nZWQpCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShBY3Rpdml0eVN0YXRlLCBz
dHJlYW0gPDwgIldlYlBhZ2VQcm94eSAiIDw8IHBhZ2VJRCgpIDw8ICIgZGlzcGF0Y2hBY3Rpdml0
eVN0YXRlQ2hhbmdlOiBzdGF0ZSBjaGFuZ2VkIGZyb20gIiA8PCBwcmV2aW91c0FjdGl2aXR5U3Rh
dGUgPDwgIiB0byAiIDw8IG1fYWN0aXZpdHlTdGF0ZSk7CiAKLSNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoKGNoYW5nZWQgJiBBY3Rpdml0eVN0YXRlOjpXaW5kb3dJ
c0FjdGl2ZSkgJiYgaXNWaWV3V2luZG93QWN0aXZlKCkpCiAgICAgICAgIHVwZGF0ZUN1cnJlbnRN
b2RpZmllclN0YXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggNzE5YWI4MmNhYjZjN2Q2Y2UyNGNhZWM1ODI3OTRkZmJiNTBmNGRlNC4uZWUzOWZh
ZmE5MGQxMDRhNTFhZmY4MzBmNGU5MDIxNjEyZWIzNzVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTc0Myw2ICs3NDMsMTAgQEAgcHVibGljOgogICAgIGJvb2wg
aXNQcm9jZXNzaW5nS2V5Ym9hcmRFdmVudHMoKSBjb25zdDsKICAgICB2b2lkIGhhbmRsZUtleWJv
YXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYpOwogCisjaWYgUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxl
R2VzdHVyZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYkdlc3R1cmVFdmVudCYpOwogI2VuZGlmCkBAIC0x
ODQ5LDggKzE4NTMsNiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdF
QlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIHZvaWQgc3RhcnREaXNwbGF5TGlu
ayh1bnNpZ25lZCBvYnNlcnZlcklEKTsKICAgICB2b2lkIHN0b3BEaXNwbGF5TGluayh1bnNpZ25l
ZCBvYnNlcnZlcklEKTsKLQotICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsK
ICNlbmRpZgogCiAgICAgdm9pZCByZXBvcnRQYWdlTG9hZFJlc3VsdChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiA9IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAxOGU4YTgzNGQ3MjQ0YTIx
ZDRhNjgxMjhiMjQwZGI4ZTg0YmRiNjc2Li42M2NhYmVmM2JlYjI4ZDcwN2JlMjdkODIxZTVkYzcy
NDUxMGQ4ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTk1LDYgKzk1LDcgQEAKICNpbXBvcnQgPHBh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0RhdGFE
ZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+CiAjaW1wb3J0IDx3dGYvT3B0
aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JT
Y29wZS5oPgpAQCAtMzc0Niw5ICszNzQ3LDEzIEBAIC0gKEJPT0wpcmVxdWlyZXNLZXlFdmVudHMK
IAogLSAodm9pZClfaGFuZGxlS2V5VUlFdmVudDooOjpVSUV2ZW50ICopZXZlbnQKIHsKKyAgICBi
b29sIGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ID0gISFldmVudC5faGlkRXZlbnQ7CisgICAgaWYg
KGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ICYmICgoVUlQaHlzaWNhbEtleWJvYXJkRXZlbnQgKill
dmVudCkuX2lucHV0RmxhZ3MgJiBrVUlLZXlib2FyZElucHV0TW9kaWZpZXJGbGFnc0NoYW5nZWQp
CisgICAgICAgIF9wYWdlLT51cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOworCiAgICAgLy8g
V2Ugb25seSB3YW50IHRvIGhhbmRsZSBrZXkgZXZlbnQgZnJvbSB0aGUgaGFyZHdhcmUga2V5Ym9h
cmQgd2hlbiB3ZSBhcmUKICAgICAvLyBmaXJzdCByZXNwb25kZXIgYW5kIHdlIGFyZSBub3QgaW50
ZXJhY3Rpbmcgd2l0aCBlZGl0YWJsZSBjb250ZW50LgotICAgIGlmIChbc2VsZiBpc0ZpcnN0UmVz
cG9uZGVyXSAmJiBldmVudC5faGlkRXZlbnQgJiYgIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29u
dGVudEVkaXRhYmxlKSB7CisgICAgaWYgKFtzZWxmIGlzRmlyc3RSZXNwb25kZXJdICYmIGlzSGFy
ZHdhcmVLZXlib2FyZEV2ZW50ICYmICFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0
YWJsZSkgewogICAgICAgICBbc2VsZiBoYW5kbGVLZXlFdmVudDpldmVudF07CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQppbmRleCAzODY1ODg0MTEzMTk0YmVjOTQ4NGI2NDZjZWQwMDNjMWYyNDYxZjBlLi5j
NGViYjQwMmE2YWY1NTJhMWY1MDZhNzZiZmJiM2EzNjllOTFhZGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTUzLDYgKzUzLDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJB
Z2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKICNp
ZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEwODksNiArMTA5MCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoYm9vbCBpc1Njcm9sbGluZ09yWm9vbWluZykKICAg
ICAgICAgbV92YWxpZGF0aW9uQnViYmxlLT5zaG93KCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5
Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpCit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpVcGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZShbOjpXZWJFdmVudCBt
b2RpZmllckZsYWdzXSksIG1fcGFnZUlEKTsKK30KKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25S
ZXF1ZXN0KGJvb2wgc3RhcnRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCBhNWRiMGZkNGNjOTQyZGNiNmU3OTQ1MTRhMzE0ZjdiNmY5NGQ5YmU3Li40
ZjhhYTA3YjhlM2QzZTNmMTY2M2VmODRhN2M5NWYzMzU2MzIwMjVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDkxLDcgKzEwOTEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nQXBwbGljYXRpb25NYW5pZmVzdCh1aW50NjRf
dCwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0PiYpOwog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIHVw
ZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKHVpbnQzMl90IG1vZGlmaWVycyk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggMGFiMjAwOTYxYTQzNDA0NTA2MjkwNGYxNzM5NjVhZmNhZDQ3ZjA0MS4uZDJj
YzI5NjQxMGIzYjc1N2NmNzgyM2VkYzNlYWY4YzhhZmNkMWY0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01Mjgs
NyArNTI4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBT
ZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKIAotI2lmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQorI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKSB8fCBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKHVpbnQzMl90
IG1vZGlmaWVycykKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4YWFmZGIzNTViZWEyMWU0Y2YwOGQ4NDAx
Mjg4ZDVmYzAzM2ZjZjE4Li43MWE0OTkyYzFlY2YwNDk3MDc1NzUyZjZlM2EzNDE2MDgxOTYwNzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQpAQCAtMzA4Niw2ICszMDg2LDI0IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVz
ZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordm9p
ZCBXZWJQYWdlOjp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSh1aW50MzJfdCBjdXJyZW50TW9k
aWZpZXJzKQoreworICAgIE9wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzOworICAgIGlmIChjdXJyZW50TW9kaWZpZXJzICYgV2ViRXZlbnRGbGFnTWFza1NoaWZ0S2V5
KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtl
eSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmllcnMgJiBXZWJFdmVudEZsYWdNYXNrQ29udHJvbEtl
eSkKKyAgICAgICAgbW9kaWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtl
eSk7CisgICAgaWYgKGN1cnJlbnRNb2RpZmllcnMgJiBXZWJFdmVudEZsYWdNYXNrT3B0aW9uS2V5
KQorICAgICAgICBtb2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkp
OworICAgIGlmIChjdXJyZW50TW9kaWZpZXJzICYgV2ViRXZlbnRGbGFnTWFza0NvbW1hbmRLZXkp
CisgICAgICAgIG1vZGlmaWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkp
OworICAgIGlmIChjdXJyZW50TW9kaWZpZXJzICYgV2ViRXZlbnRGbGFnTWFza0xlZnRDYXBzTG9j
a0tleSkKKyAgICAgICAgbW9kaWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fw
c0xvY2tLZXkpOworICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2V0Q3VycmVudE1vZGlmaWVy
U3RhdGUobW9kaWZpZXJzKTsKKyAgICBpZiAoYXV0byogZm9jdXNlZEZyYW1lID0gbV9wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkRnJhbWUoKSkKKyAgICAgICAgZm9jdXNlZEZyYW1lLT5l
dmVudEhhbmRsZXIoKS5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKK30KKwogI2lmIFVT
RShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xv
b2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmRkYWNhMTA4YzM3ZGZjNDRl
NzNjOTcwYmU3YzY1ODY2YTgwYWE0MC4uOTBhMDI1OTkwN2NjMWQ5YmY4MzE4MDYxMjNiNDUzYTVh
MDVhOWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC0xNjQsNyArMTY0LDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvV0FLU2Nyb2xsVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XQUtXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0tH
cmFwaGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZp
Y2VzU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04MTQsNiAr
ODE2LDE2IEBAIHN0YXRpYyBDYWNoZWRJbWFnZUNsaWVudCYgcHJvbWlzZWREYXRhQ2xpZW50KCkK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJN
YXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiA9IEAiV2ViTWFya2VkVGV4dFVwZGF0ZWQiOwor
CitzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNr
KENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYsIGNv
bnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCit7CisgICAgQVNTRVJUKG9ic2VydmVyKTsKKyAg
ICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgV2ViSFRNTFZpZXcgKndlYlZpZXcgPSAoX19icmlk
Z2UgV2ViSFRNTFZpZXcgKilvYnNlcnZlcjsKKyAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKFt3ZWJWaWV3IF9mcmFtZV0pKQorICAgICAgICAgICAgY29yZUZyYW1lLT5ldmVudEhh
bmRsZXIoKS5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKKyAgICB9KTsKK30KICNlbmRp
ZgogCiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3IChXZWJIVE1MVmlld0ZpbGVJbnRlcm5hbCkKQEAg
LTI2MTAsNiArMjYyMiw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gCiAgICAgICAgICAgICBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihtYXJrZWRUZXh0VXBkYXRlOikgCiAgICAg
ICAgICAgICAgICAgICAgbmFtZTpXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICop
KHNlbGYpLCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrLCAoQ0ZT
dHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyLCBDRk5vdGlm
aWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtMjYyNiw2ICsyNjM5LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOldlYk1hcmtlZFRleHRVcGRhdGVkTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNv
bnN0IHZvaWQgKikoc2VsZiksIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhT
dHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNh
dGlvbl0sIG51bGxwdHIpOwogI2VuZGlmCiAKICAgICAvLyBXZSBjYW4ndCBhc3NlcnQgdGhhdCBj
bG9zZSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBiZWNhdXNlCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAwZGIx
MDhmNzcwN2FhNTlkNjgxNzEzYTE2YmFiNDliYmI2MTAxNjEwLi5mMzA4NzczMzBkMDU3NWQ3ODEw
ZWMwMDBhMDA1MjRhNzU0YWNjY2MzIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OC0xMS0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvc2Ugc29tZSBtb3JlIHN5bWJvbHMuCisKKyAgICAgICAgKiBX
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3
b3JrL0dyYXBoaWNzU2VydmljZXMudGJkOgorCiAyMDE4LTA2LTI3ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgV2ViS2l0IGlPUyAxMiBidWls
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQg
Yi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFw
aGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZAppbmRleCBhYjFjNDA2
MDBlZjczOWVkMDc5NzBmNWZiMzdiOTVlNzg5NzQxNTFjLi5kMzU0MzI0NjVkMWIzZDg2M2UyNjc5
NDNjOGUzYWI1MmE3MTM0OWY0IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFw
aGljc1NlcnZpY2VzLnRiZAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZp
Y2VzLnRiZApAQCAtMTUsMTAgKzE1LDEzIEBAIGV4cG9ydHM6CiAgICAgICAtIHg4Nl82NAogICAg
IHN5bWJvbHM6CiAgICAgICAtIF9HU0N1cnJlbnRFdmVudFRpbWVzdGFtcAorICAgICAgLSBfR1NF
dmVudElzSGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkCiAgICAgICAtIF9HU0ZvbnRJbml0aWFsaXpl
CiAgICAgICAtIF9HU0ZvbnRQdXJnZUZvbnRDYWNoZQogICAgICAgLSBfR1NJbml0aWFsaXplCisg
ICAgICAtIF9HU0tleWJvYXJkR2V0TW9kaWZpZXJTdGF0ZQogICAgICAgLSBfR1NTeXN0ZW1Sb290
RGlyZWN0b3J5CisgICAgICAtIF9rR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlD
aGFuZ2VkTm90aWZpY2F0aW9uCiBpbnN0YWxsLW5hbWU6IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzCiBv
YmpjLWNvbnN0cmFpbnQ6IG5vbmUKIHBsYXRmb3JtOiBpb3MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354015</attachid>
            <date>2018-11-06 15:11:28 -0800</date>
            <delta_ts>2018-11-07 09:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181106151127.patch</filename>
            <type>text/plain</type>
            <size>36516</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5MGIzZDc1OThhNWVi
YTRhYTBjYjIzMjNlMThmMjI0MDU0OWIyYS4uMzdkNTcyOWJiMTFlOTdhODU3ZDRmMmExMWJlZTBl
ZmZkMWFhNzY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTA2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkIGNvbnN0KTog
RXh0cmFjdGVkIGZyb20gRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KCkKKyAgICAgICAg
c28gdGhhdCBpdCBjYW4gc2hhcmVkIGJldHdlZW4gV2ViQ29yZSwgTW9kZXJuIFdlYktpdCwgYW5k
IExlZ2FjeSBXZWJLaXQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudCk6IE1vZGlmaWVkIHRvIGNhbGwgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSk6IE1vdmVkIGZyb20gS2V5RXZlbnRNYWMu
bW0uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRN
b2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKTogRmV0Y2ggdGhlIGN1cnJlbnQg
bW9kaWZpZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tOgorICAgICAgICAoK1tXZWJFdmVudCBtb2RpZmll
ckZsYWdzXSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUpOiBEZWxldGVkOyBtb3ZlZCB0byBLZXlFdmVudENvY29hLm1tIHRvIGJlIHNoYXJlZAor
ICAgICAgICBieSBib3RoIE1hYyBhbmQgaU9TLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IERlbGV0ZWQ7IG1vdmVkIHRv
IEtleUV2ZW50Q29jb2EubW0gdG8gYmUgc2hhcmVkCisgICAgICAgIGJ5IGJvdGggTWFjIGFuZCBp
T1MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMubW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERlbGV0ZWQ7IG1vdmVk
IHRvIFJlbmRlclRoZW1lQ29jb2EubW0gdG8gYmUKKyAgICAgICAgc2hhcmVkIGJ5IGJvdGggTWFj
IGFuZCBpT1MuCisKIDIwMTgtMTEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9y
IG5vdCBzaG93biBpbiBwYXNzd29yZCBmaWVsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMzUxMTBj
YThkNDMwMmYyMzIwZjE2ZTlhZTdkNTIxYzljNjY1ZjNjYi4uMTQwMjA1ODQxMzBhNjUxNWEzNDdh
NzA5ZWI5ZDE2MmZmMjdkMjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTgtMTEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDU2NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUgbW9yZSBTUEkuCisKKyAg
ICAgICAgKiBwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOC0xMS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTm9ybWFsaXplIGNoYXJhY3RlciBzdHJpbmcg
YmFzZWQgb24ga2V5IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGQyZjQ5NGNhY2E5NzQ5MDU5N2Q2OTVlOGJj
ZDkzYmVmNTgxZWUzZS4uYThlZTcxMDA1ZTNlODE4YmFmNTc0NGU0OTM0NzExMjNiYmUzYWY4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxOC0xMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9y
IGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHRoZSBjdXJyZW50IG1vZGlmZXIgc3RhdGUgb24gd2lu
ZG93IGFjdGl2YXRpb24gY2hhbmdlcy4gTm90aWZ5CisgICAgICAgIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3Mgd2hlbiBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyAoZS5nLiBh
IGtleWJvYXJkIGlzIGF0dGFjaGVkKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmln
dXJhdGlvbjpdKTogUmVnaXN0ZXIgZm9yIGhhcmR3YXJlIGtleWJvYXJkIGF2YWlsYWJpbGl0eSBj
aGFuZ2VkIG5vdGlmaWNhdGlvbnMuCisgICAgICAgICgtW1dLV2ViVmlldyBkZWFsbG9jXSk6IFVu
cmVnaXN0ZXIgZnJvbSBoYXJkd2FyZSBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3RpZmljYXRpb25z
LgorICAgICAgICAoaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayk6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKTogQ29tcGls
ZSB0aGlzIGNvZGUgd2hlbiBidWlsZGluZyBmb3IgaU9TLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfaGFuZGxlS2V5VUlFdmVudDpd
KTogVXBkYXRlIHRoZSBjdXJyZW50IG1vZGlmaWVyIHN0YXRlIGlmIHRoaXMgZXZlbnQgaXMgYSBo
YXJkd2FyZQorICAgICAgICBrZXlib2FyZCBmbGFncyBjaGFuZ2VkIGV2ZW50LgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKTogQWRkZWQuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQpOgorICAgICAgICBBZGRlZCBuZXcgbWVz
c2FnZSBIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZC4gTm90aWZ5IHRoZSBmb2N1
c2VkIEhUTUwgaW5wdXQgZWxlbWVudCAoaWYgd2UgaGF2ZQorICAgICAgICBvbmUpIHRoYXQgdGhl
IGNhcHMgbG9jayBzdGF0ZSBtYXkgaGF2ZSBjaGFuZ2VkIHdoZW4gd2UgcmVjZWl2ZSBtZXNzYWdl
IEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkCisgICAgICAgIHNvIHRoYXQgd2Ug
dG9nZ2xlIHZpc2liaWxpdHkgb2YgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IuCisKIDIwMTgtMTEt
MDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyMzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9yIG5vdCBzaG93biBpbiBwYXNzd29y
ZCBmaWVsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGIzODdkN2U3NDZiMmM1ODQ0
MjI1ZWZiNzVjNWRlMzFhYjNiYTk0ZWIuLjNhYjRhOTIzMGMwN2EwZDkxNmJkZWJiZmFhMjU3NTlh
YjUzNzE0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxOC0xMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIGNhcHMgbG9jayBzdGF0ZSB3aGVuIGEgaGFy
ZHdhcmUga2V5Ym9hcmQgaXMgYXR0YWNoZWQgb3IgZGV0YWNoZWQuCisKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWRDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBpbml0V2l0
aEZyYW1lOl0pOiBSZWdpc3RlciBmb3IgaGFyZHdhcmUga2V5Ym9hcmQgYXZhaWxhYmlsaXR5IGNo
YW5nZWQgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgZGVhbGxvY10pOiBV
bnJlZ2lzdGVyIGZyb20gaGFyZHdhcmUga2V5Ym9hcmQgYXZhaWxhYmlsaXR5IGNoYW5nZWQgbm90
aWZpY2F0aW9ucy4KKwogMjAxOC0xMS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gV2ViS2l0IHNob3VsZCBkaXNwYXRjaCBET00gZXZlbnRzIHdo
ZW4gYSBtb2RpZmllciBrZXkgaXMgcHJlc3NlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKaW5kZXggMWNjOGIzMTE4MDQyMDU0
YjNhM2MyYTc2YTc5OTE0NDFjZDFhNDVjMy4uMWI1YmQ5Nzg0ZmFjNjNlMWJhYWQzNTU5YWJmYjdi
ZWU1YzEwMTZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dy
YXBoaWNzU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3Mv
R3JhcGhpY3NTZXJ2aWNlc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDYgKzQzLDEyIEBAIENGU3RyaW5nUmVmIEdTU3lzdGVt
Um9vdERpcmVjdG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQg
R1NGb250UHVyZ2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYgc3RydWN0IF9fR1NLZXlib2Fy
ZCogR1NLZXlib2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKEdT
S2V5Ym9hcmRSZWYpOworQm9vbGVhbiBHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQo
KTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJp
bGl0eUNoYW5nZWROb3RpZmljYXRpb247CisKIFdURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDdjOTQ3MTQ4NjVk
ZGExOWNmYTlmY2U3MGMzYmJlNzJhMmIzNTU5NjkuLjFhODdhZjVhZjNhNDg5YzExMzY2MGJiMmZk
NTRmOGM3NjZlNGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lv
cy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQ
SS5oCkBAIC0yMyw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKK1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBzdHJ1Y3QgX19HU0tleWJvYXJk
KiBHU0tleWJvYXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKIAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhTdHlsZV9Qcml2YXRlLmg+CkBA
IC00NCw2ICs0OCw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQogKyAoVUlBcHBs
aWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOworLSAoR1NLZXlib2FyZFJlZilf
aGFyZHdhcmVLZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc1LDEwICs4MCw5IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKSB7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAtIChCT09MKV9pc0NsYXNzaWM7
CiArIChVSUFwcGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xhc3NpY01vZGU7Ci0KKy0gKEdT
S2V5Ym9hcmRSZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlDb2xv
ciAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGZiZmM3NTg3MjQyMDk5Mzc4Mjc3NTRlODBjZjViY2Y2ZmJiZWFlYWMuLjBiODRh
M2VjNjg4NTk0ODc0OTA2MmNkYTMwZDRmODRjYzQ4YTg1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjQzLDYgKzEzNjQz
LDcgQEAKIAkJQ0UyODQ5ODgxQ0EzNjE0NjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGlj
eURpcmVjdGl2ZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9Db250
ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNFNUNCMUIzMTRFREFCNkYwMEJCMjc5NSAvKiBFdmVudFNlbmRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFNlbmRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRTVGQTI1MzIwOUU0OEM1MDA1MUQ3MDAgLyogQ29udGVudFNlY3Vy
aXR5UG9saWN5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeUNs
aWVudC5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRTY4QzhGRjIxOTI0RUU1MDAxMjMwQjMgLyogUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBB
RDg5QjNERCAvKiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9D
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5
UG9saWN5UmVzcG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjQ5OTEsNiArMjQ5OTIsNyBAQAogCQkJCUExNDk3ODcwMUFCQUYzQTUwMENFRjdF
NCAvKiBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlCQzVDNzYyOTE0OTdGRTE0MDBC
QzQ3NzUgLyogUGxhdGZvcm1FdmVudC5oICovLAogCQkJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRC
RSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovLAorCQkJCUNFNjhDOEZGMjE5MjRFRTUwMDEy
MzBCMyAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuY3BwICovLAogCQkJCTkzNUM0NzY2MDlBQzRE
NDMwMEE2QUFCNCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQk5MzVDNDc2NzA5
QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggKi8sCiAJCQkJQzVCQUMxNkYx
NEUzMEU0NzAwMDA4ODM3IC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDk5Yjc0YmZiNjYzYmY5OTY4MmZiNjRmYzBhYWViM2Yz
N2E3OGMxYTAuLjk3YmQwNGYwODVhZGVmNDM2NzNlYjQ3NWFiYjc1YmYwYTBiN2IyMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxNjIsNiArMzE2MiwxNCBAQCBib29s
IEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlF
dmVudCkKICAgICByZXR1cm4gd2FzSGFuZGxlZDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmNh
cHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0Cit7CisgICAgYXV0byogZm9jdXNlZEVs
ZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCk7CisgICAgaWYgKCFp
czxIVE1MSW5wdXRFbGVtZW50Pihmb2N1c2VkRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKyAg
ICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZm9jdXNlZEVsZW1lbnQpLmNhcHNMb2NrU3Rh
dGVNYXlIYXZlQ2hhbmdlZCgpOworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlF
dmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIHsKICAg
ICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMzE5NCwxMiArMzIwMiw4
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5
Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAoaW5p
dGlhbEtleUV2ZW50LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVt
ZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkp
Ci0gICAgICAgICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmNh
cHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChp
bml0aWFsS2V5RXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkKKyAg
ICAgICAgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoUEFOX1ND
Uk9MTElORykKICAgICBpZiAobV9mcmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5T
Y3JvbGxJblByb2dyZXNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGY1
ZmUwOGY2MTZlNTJkMTc0MDM0NDU3ODM1OGNiMGRkYjIwZDllODQuLjkyZmJjNWFmY2Y4OGViMjA0
NDQwNDkyMDEyY2M5ZGE4NDA2YmI0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApA
QCAtMjU2LDYgKzI1Niw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRs
ZUFjY2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZv
aWQgZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0OwogCiAg
ICAgYm9vbCBhY2Nlc3NpYmlsaXR5UHJldmVudHNFdmVudFByb3BhZ2F0aW9uKEtleWJvYXJkRXZl
bnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92
ZW1lbnRGb3JBY2Nlc3NpYmlsaXR5KEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IDYzMWRkMTQwZDdiZWJkN2Nm
YjhmZjU0ZTMzOTI2ZTRlMzg4YWM1MWQuLjA1YzBhOGNlNzA4MjI3YzNmNTRiMDhjODc2MTg2NTM4
MjMyMmM2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2
ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRD
b2NvYS5tbQpAQCAtMjcsOCArMjcsMTAgQEAKICNpbXBvcnQgIktleUV2ZW50Q29jb2EuaCIKIAog
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAj
aW1wb3J0ICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUu
aD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zOSw2ICs0MSwyMCBAQCB1c2lu
ZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJuIGN1cnJl
bnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6
OkNhcHNMb2NrS2V5KTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJl
bnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRL
ZXksIGJvb2wmIG1ldGFLZXkpCit7CisgICAgYXV0byBjdXJyZW50TW9kaWZpZXJzID0gY3VycmVu
dFN0YXRlT2ZNb2RpZmllcktleXMoKTsKKyAgICBzaGlmdEtleSA9IGN1cnJlbnRNb2RpZmllcnMu
Y29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKKyAgICBjdHJsS2V5
ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3Ry
bEtleSk7CisgICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2
ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycy5j
b250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7Cit9CisKIC8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1rZXkvCiBTdHJpbmcga2V5Rm9yQ2hhckNvZGUodW5p
Y2hhciBjaGFyQ29kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9LZXlFdmVudElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElP
Uy5tbQppbmRleCAxOWNhOWJmZGY0YjE2OGEzMTA3NDMyNDJjZGIxOTMxYmMwOTMzMGJlLi45YmQ1
N2U3NGFjODgyYjU0Mzc0NTU4MjA5NDM3MmM3Y2FmN2Q5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCkBAIC0zMSw4ICszMSwxMCBAQAogI2ltcG9ydCAi
S2V5RXZlbnRDb2NvYS5oIgogI2ltcG9ydCAiS2V5RXZlbnRDb2Rlc0lPUy5oIgogI2ltcG9ydCAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT0tpdFNQSS5oPgorI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtMzEy
LDE5ICszMTQsMjkgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtl
eURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAKLWJvb2wg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCitPcHRpb25TZXQ8
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudFN0
YXRlT2ZNb2RpZmllcktleXMoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQorICAgIC8vIHNfY3VycmVudE1vZGlmaWVycyBpcyBvbmx5IHNldCBpbiB0aGUg
V2ViQ29udGVudCBwcm9jZXNzLCBub3QgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgaWYgKHNfY3Vy
cmVudE1vZGlmaWVycykgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICByZXR1cm4gKnNfY3VycmVudE1vZGlmaWVyczsKKyAgICB9CiAKLXZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYg
Y3RybEtleSwgYm9vbCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgc2hpZnRLZXkgPSBmYWxzZTsKLSAgICBjdHJsS2V5ID0gZmFsc2U7Ci0gICAg
YWx0S2V5ID0gZmFsc2U7Ci0gICAgbWV0YUtleSA9IGZhbHNlOworICAgIDo6V2ViRXZlbnRGbGFn
cyBjdXJyZW50TW9kaWZpZXJzID0gWzo6V2ViRXZlbnQgbW9kaWZpZXJGbGFnc107CisKKyAgICBP
cHRpb25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKKyAgICBpZiAoY3Vy
cmVudE1vZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza1NoaWZ0S2V5KQorICAgICAgICBtb2Rp
ZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYgKGN1
cnJlbnRNb2RpZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tDb250cm9sS2V5KQorICAgICAgICBt
b2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5KTsKKyAgICBpZiAo
Y3VycmVudE1vZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza09wdGlvbktleSkKKyAgICAgICAg
bW9kaWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKKyAgICBpZiAo
Y3VycmVudE1vZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza0NvbW1hbmRLZXkpCisgICAgICAg
IG1vZGlmaWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOworICAgIGlm
IChjdXJyZW50TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrTGVmdENhcHNMb2NrS2V5KQor
ICAgICAgICBtb2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tl
eSk7CisKKyAgICByZXR1cm4gbW9kaWZpZXJzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJFdmVudC5oCmluZGV4IDNiZDM2YmY3Mzc0YWRmNTBhOGZhM2M5ZjBkNDEwOTMyNDcx
NGVlMzUuLjIyNGEwN2UyMjc4NjYzYmQyYWM2MGQ5OGQyMTJkYzhmNTI3NmJiNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5v
bmF0b21pYykgQk9PTCB3YXNIYW5kbGVkOwogCitAcHJvcGVydHkgKGNsYXNzLCByZWFkb25seSkg
V2ViRXZlbnRGbGFncyBtb2RpZmllckZsYWdzOworCiBAZW5kCiAKICNlbmRpZiAvLyBUQVJHRVRf
T1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZl
bnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0KaW5kZXggZTY3
OGU5ZTQ0YjZmNzg4MmU3NDkzYjU1NjZkZTAxZTcyM2QwN2Y0Yi4uYTZiZDczMzM0NTNjMTU3ZjE1
YzhhODVjMDk2NjViNDVhYWZkNDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJF
dmVudC5tbQpAQCAtMzYsNiArMzYsMTQgQEAKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIK
ICNpbXBvcnQgIldBS0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0
U1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CisjaW1w
b3J0IDxwYWwvc3BpL2lvcy9VSUtpdFNQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+
CisKK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJ
QXBwbGljYXRpb24pOworCisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNs
YXNzKCkKIAogdXNpbmcgV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlDb2RlOwogdXNpbmcg
V2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JDaGFyQ29kZTsKQEAgLTQ5MSw2ICs0OTksMTEgQEAg
LSAoZmxvYXQpZ2VzdHVyZVJvdGF0aW9uCiAgICAgcmV0dXJuIF9nZXN0dXJlUm90YXRpb247CiB9
CiAKKysgKFdlYkV2ZW50RmxhZ3MpbW9kaWZpZXJGbGFncworeworICAgIHJldHVybiBHU0V2ZW50
SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoKSA/IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRl
KFtVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXS5faGFyZHdhcmVLZXlib2FyZCkgOiAw
OworfQorCiBAZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IGIwOGE1M2VlNDNkNjFmZGI5
ZjU2ZDAxZTVkNDQzYWEwNGQxOWM1MmIuLjJiY2I1MTBjN2E0Yzg1MjRlNjhiYTE0YTUwMWZkYzll
NWYwYjJhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVu
dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0K
QEAgLTI1OCwyMSArMjU4LDYgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmln
dWF0ZUtleURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAK
LWJvb2wgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCi17Ci0g
ICAgYXV0byBjdXJyZW50TW9kaWZpZXJzID0gY3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsK
LSAgICByZXR1cm4gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcjo6Q2Fwc0xvY2tLZXkpOwotfQotCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0
Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wm
IGFsdEtleSwgYm9vbCYgbWV0YUtleSkKLXsKLSAgICBhdXRvIGN1cnJlbnRNb2RpZmllcnMgPSBj
dXJyZW50U3RhdGVPZk1vZGlmaWVyS2V5cygpOwotICAgIHNoaWZ0S2V5ID0gY3VycmVudE1vZGlm
aWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOwotICAgIGN0
cmxLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
OjpDdHJsS2V5KTsKLSAgICBhbHRLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRm
b3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOwotICAgIG1ldGFLZXkgPSBjdXJyZW50TW9kaWZp
ZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKLX0KLQogT3B0
aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1
cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCkKIHsKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5E
T1dTRVJWRVJfQkxPQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q29jb2EuaAppbmRleCBhNDY0YzEwNDAyZjA0NzEzMjg2YjQ0NjBjNzExODM3YTYyNzg3ZGUwLi5m
MTg4NzQyNGY2M2Y0ZTljNzk4MWRiYzNkNjRhOTgzYWEzYjFlNGYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGljIFJlbmRlclRo
ZW1lIHsKIHByaXZhdGU6CisgICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29u
c3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKICAgICB2b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJl
bmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFp
bnRBcHBsZVBheUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNvY29hLm1tCmluZGV4IGZlYWNmYzViMzNjNzVkNmEwOWEyZThjYWFjYzkwYzMyNDBh
MjIxODguLmI0YWFmNjQyMWQyYjZkM2M1YjMwZGVhYTc0ZTNlNzI2MzI5ZDJhY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW1wb3J0ICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dENHLmgiCisjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJU
ZXh0LmgiCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNTEsNiArNTIsMTEgQEAgU09GVF9M
SU5LX01BWV9GQUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2b2lkLCAoQ0dDb250
ZXh0UmVmIGNvbnRleHQsIEMKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50LmlzUGFzc3dvcmRGaWVs
ZCgpOworfQorCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogc3RhdGljIGNvbnN0IGF1dG8gYXBw
bGVQYXlCdXR0b25NaW5pbXVtV2lkdGggPSAxNDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5oCmluZGV4IGNhOGMwYmEyZjIwYzdhYzBmYTNjMmQ0ZTZhMTM1YjhiYTYx
Yzg2ZDIuLmE1YTMwYWMyYTk0MWJiMmMzNThmNDRhN2E2ZmY3YzZiZjVmMjAwNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTcsNyArMTE3LDYgQEAg
cHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICBib29sIHNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0
IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZEhhdmVD
YXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3Qgb3ZlcnJpZGU7
CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0
KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0K
aW5kZXggMWQxN2FlYWYyZDdkNWUyOTQwZTQzMWQxNDRhZDFhY2ZhYTViY2EyOS4uNTJiNGQ3NDVi
OTk3MzNhYzZhZjBiNWI3MmMzNjBiNmIyZDRiMGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQpAQCAtMTEzNSwxMSArMTEzNSw2IEBAIGJvb2wgUmVuZGVy
VGhlbWVJT1M6OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUlPUzo6c2hvdWxk
SGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAotewot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgUmVuZGVyVGhl
bWVJT1M6OmNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVlSUQpIGNv
bnN0CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRlRGVzY3JpcHRpb24+
IHN5c3RlbUZvbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmlu
ZGV4IGQ4NTc2MWFiYzliMTJkZmRkYTU1NDVkZDE0ZjgwMzQ5NjM3OTUwZDcuLjhjZWQ4ODQ0MWM4
MjZiMWQwODhjMzM5OWM3NmU1MTYyNmRiYmRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29s
IHN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICNlbmRpZgogCi0gICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRN
TElucHV0RWxlbWVudCYpIGNvbnN0IGZpbmFsOwotCiAgICAgYm9vbCBwYWludFNuYXBzaG90dGVk
UGx1Z2luT3ZlcmxheShjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgZmluYWw7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDNmYmQ2MGQ2MTcx
NzlkODBiMTkyNjU5YTliOGYwYmM5YzllNmNkZDUuLmU5MTIxNTA2MGVmOWFiOGQ2MWQzNWViMmM1
YmFiOTI4ZmMyODM2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KQEAgLTIzNDIsMTEgKzIzNDIsNiBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RT
bGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KikgYwogICAg
IH0KIH0KIAotYm9vbCBSZW5kZXJUaGVtZU1hYzo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9y
KGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVs
ZW1lbnQuaXNQYXNzd29yZEZpZWxkKCk7Ci19Ci0KIE5TUG9wVXBCdXR0b25DZWxsKiBSZW5kZXJU
aGVtZU1hYzo6cG9wdXBCdXR0b24oKSBjb25zdAogewogICAgIGlmICghbV9wb3B1cEJ1dHRvbikg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggOWVjNjU5OGQ3ZjU2YWEzM2U4NzUxOTdlNDlhNzcyZmQ1MzNiNjA4Zi4uZmY3ZDkwYTgyMjBl
YzFlY2RmYzkwYWUyZDQ4YjY0OTNmNDRhZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg+CiAjaW1wb3J0IDxwYWwv
c3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAj
aW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKF9wYWdlICYmIF9wYWdlLT5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykKQEAgLTcwMiw2ICs3MDMs
OCBAQCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCiAKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250ZW50
UHJvdmlkZXJSZWdpc3RyeV0gYWRkUGFnZToqX3BhZ2VdOwogICAgIF9wYWdlLT5zZXRGb3JjZUFs
d2F5c1VzZXJTY2FsYWJsZShbX2NvbmZpZ3VyYXRpb24gaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHNdKTsKKworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRp
b25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKiko
c2VsZiksIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0
cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtl
eWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZp
Y2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpCkBAIC04MzksNiArODQyLDggQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW1tfY29uZmln
dXJhdGlvbiBfY29udGVudFByb3ZpZGVyUmVnaXN0cnldIHJlbW92ZVBhZ2U6Kl9wYWdlXTsKICAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNl
bGZdOwogICAgIFtfc2Nyb2xsVmlldyBzZXRJbnRlcm5hbERlbGVnYXRlOm5pbF07CisKKyAgICBD
Rk5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0
RGFyd2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZT
dHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfRVZFTlRTKQpAQCAtMzA5OSw2ICszMTA0LDEz
IEBAIC0gKHZvaWQpX2tleWJvYXJkV2lsbEhpZGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiAgICAgW3NlbGYgX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2Vy
SW5mbyBhZGp1c3RTY3JvbGxWaWV3OllFU107CiB9CiAKK3N0YXRpYyB2b2lkIGhhcmR3YXJlS2V5
Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYs
IHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJl
ZikKK3sKKyAgICBBU1NFUlQob2JzZXJ2ZXIpOworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IChf
X2JyaWRnZSBXS1dlYlZpZXcgKilvYnNlcnZlcjsKKyAgICB3ZWJWaWV3Ll9wYWdlLT5oYXJkd2Fy
ZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpOworfQorCiAtICh2b2lkKV93aW5kb3dEaWRS
b3RhdGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKCFfb3ZlcnJp
ZGVzSW50ZXJmYWNlT3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBjOGY4NmRlODUzYmMyMjBjMDY4MDFlMTY0ODM4ODEzODNlM2ZjYjgyLi44
ODVkZWU1Njc5MjZiNWY0M2U1OGUyZTgwZGYzOWUzMmMxMjdkYTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgxMzEsNyArODEzMSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpnZXRJc1ZpZXdWaXNpYmxlKGJvb2wmIHJlc3VsdCkKIAogdm9pZCBXZWJQYWdl
UHJveHk6OnVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCkKIHsKLSNpZiBQTEFURk9STShNQUMp
ICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBhdXRvIG1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6Y3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKG1vZGlmaWVycyks
IG1fcGFnZUlEKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA0NjgyZDc0YzEyZjA3NzAzOWRlOGIxNWYwNDU0ZWNkOThlNjVjZWNjLi40MzViOWIwOTA3
NjdiMjIxZmJkMGMwNjhiZjZhMjdiZDE1NDg4ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNjQ1LDYgKzY0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3Jl
U2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eShib29sKTsKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9s
bEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb25JbldpbmRvdyk7
CiAgICAgdm9pZCBjYW5jZWxBdXRvc2Nyb2xsKCk7CisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJk
QXZhaWxhYmlsaXR5Q2hhbmdlZCgpOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAg
IHZvaWQgZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCk7
CiAgICAgdm9pZCBkaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVk
KTsKQEAgLTEzNjksNiArMTM3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2Vz
dGlvbnMoKTsKICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgp
OworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1By
b3h5JiwgdWludDY0X3QgcGFnZUlELCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTE4NTEsOCArMTg1NCw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9wRGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCk7CiAjZW5k
aWYKIAotICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKLQogICAgIHZvaWQg
cmVwb3J0UGFnZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0p
OwogCiAgICAgdm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0
aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0MjBiNjI4
ZDA2ZGNkN2IzOThjMjJhNzI0YmRmYjBjNzUzYzkzOGVjLi44ODFkNDk4MDBhNGFkMzNjYjc3N2Vj
ODg5M2VkMDZjMmU1NmY5MTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTk1LDYgKzk1LDcgQEAKICNp
bXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0
ZWN0b3JzVUlTUEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+CiAjaW1wb3J0
IDx3dGYvT3B0aW9uYWwuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0
Zi9TZXRGb3JTY29wZS5oPgpAQCAtMzc1Niw5ICszNzU3LDEzIEBAIC0gKEJPT0wpcmVxdWlyZXNL
ZXlFdmVudHMKIAogLSAodm9pZClfaGFuZGxlS2V5VUlFdmVudDooOjpVSUV2ZW50ICopZXZlbnQK
IHsKKyAgICBib29sIGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ID0gISFldmVudC5faGlkRXZlbnQ7
CisgICAgaWYgKGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ICYmICgoVUlQaHlzaWNhbEtleWJvYXJk
RXZlbnQgKilldmVudCkuX2lucHV0RmxhZ3MgJiBrVUlLZXlib2FyZElucHV0TW9kaWZpZXJGbGFn
c0NoYW5nZWQpCisgICAgICAgIF9wYWdlLT51cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOwor
CiAgICAgLy8gV2Ugb25seSB3YW50IHRvIGhhbmRsZSBrZXkgZXZlbnQgZnJvbSB0aGUgaGFyZHdh
cmUga2V5Ym9hcmQgd2hlbiB3ZSBhcmUKICAgICAvLyBmaXJzdCByZXNwb25kZXIgYW5kIHdlIGFy
ZSBub3QgaW50ZXJhY3Rpbmcgd2l0aCBlZGl0YWJsZSBjb250ZW50LgotICAgIGlmIChbc2VsZiBp
c0ZpcnN0UmVzcG9uZGVyXSAmJiBldmVudC5faGlkRXZlbnQgJiYgIV9wYWdlLT5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlKSB7CisgICAgaWYgKFtzZWxmIGlzRmlyc3RSZXNwb25kZXJd
ICYmIGlzSGFyZHdhcmVLZXlib2FyZEV2ZW50ICYmICFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZSkgewogICAgICAgICBbc2VsZiBoYW5kbGVLZXlFdmVudDpldmVudF07CiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCAzODY1ODg0MTEzMTk0YmVjOTQ4NGI2NDZjZWQwMDNjMWYy
NDYxZjBlLi45OWRmZmU1MWI0YzJiOWEyYjFkYmEwYjcyYjBlNjBkZDUxZjM0OWViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTUzLDYg
KzUzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9UZXh0U3RyZWFt
Lmg+CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEwODksNiArMTA5MCwxMiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoYm9vbCBpc1Njcm9sbGluZ09yWm9v
bWluZykKICAgICAgICAgbV92YWxpZGF0aW9uQnViYmxlLT5zaG93KCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCit7CisgICAg
dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKCksIG1fcGFn
ZUlEKTsKK30KKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MDc2ZWE3
Yjc0NTI5M2VkY2UwNzdiODI4ZmM1YzNjNjVhZDZmYTk0Li45OWY0NDI0YjdmOWZhMWIyYWZlZGEy
OGRlNWU0NzFlYmEwMmU2MGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC05MTMsNiArOTEzLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBwbGF0Zm9y
bVByZWZlcnNUZXh0TGVnaWJpbGl0eUJhc2VkWm9vbVNjYWxpbmcoKSBjb25zdDsKICAgICBjb25z
dCBXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb24mIHZpZXdwb3J0Q29uZmlndXJhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRDb25maWd1cmF0aW9uOyB9CisKKyAgICB2b2lkIGhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZmQ0MzBkNjlhZTI1NDViMjA5ZjIyNjdh
N2VhZTU2ZGIyNWQ5MGZlNC4uNzYyNmZiYjI2NTM0ZjQ3NjY3ZGQ2MjFkZjc3N2Y1MDMwNjgwNTJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0xMDYsNiArMTA2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgU3RhcnRBdXRvc2Nyb2xsQXRQb3NpdGlvbihXZWJDb3JlOjpGbG9h
dFBvaW50IHBvc2l0aW9uSW5XaW5kb3cpCiAgICAgQ2FuY2VsQXV0b3Njcm9sbCgpCiAgICAgUmVx
dWVzdEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQorICAgIEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKCkKICNlbmRpZgogCiAg
ICAgU2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihib29sIGNvbnRyb2xsZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDhh
YWZkYjM1NWJlYTIxZTRjZjA4ZDg0MDEyODhkNWZjMDMzZmNmMTguLmIxZjQ0YTdjYTRiNDk0YjEz
NWM1MGMxOTVmZDAwODBjZDNlNDFlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0zMDg2LDYgKzMwODYsMTIgQEAgU3Ry
aW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0CiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCit2b2lkIFdlYlBhZ2U6OmhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFi
aWxpdHlDaGFuZ2VkKCkKK3sKKyAgICBpZiAoYXV0byogZm9jdXNlZEZyYW1lID0gbV9wYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkRnJhbWUoKSkKKyAgICAgICAgZm9jdXNlZEZyYW1lLT5l
dmVudEhhbmRsZXIoKS5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKK30KKwogI2lmIFVT
RShRVUlDS19MT09LKQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xv
b2tEb2N1bWVudChjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggNmRkYWNhMTA4YzM3ZGZjNDRl
NzNjOTcwYmU3YzY1ODY2YTgwYWE0MC4uOTBhMDI1OTkwN2NjMWQ5YmY4MzE4MDYxMjNiNDUzYTVh
MDVhOWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCkBAIC0xNjQsNyArMTY0LDkgQEAKICNpbXBvcnQgPFdlYkNvcmUvV0FLU2Nyb2xsVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XQUtXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0tH
cmFwaGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZp
Y2VzU1BJLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04MTQsNiAr
ODE2LDE2IEBAIHN0YXRpYyBDYWNoZWRJbWFnZUNsaWVudCYgcHJvbWlzZWREYXRhQ2xpZW50KCkK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBXZWJN
YXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiA9IEAiV2ViTWFya2VkVGV4dFVwZGF0ZWQiOwor
CitzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNr
KENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYsIGNv
bnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCit7CisgICAgQVNTRVJUKG9ic2VydmVyKTsKKyAg
ICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgV2ViSFRNTFZpZXcgKndlYlZpZXcgPSAoX19icmlk
Z2UgV2ViSFRNTFZpZXcgKilvYnNlcnZlcjsKKyAgICAgICAgaWYgKEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKFt3ZWJWaWV3IF9mcmFtZV0pKQorICAgICAgICAgICAgY29yZUZyYW1lLT5ldmVudEhh
bmRsZXIoKS5jYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKKyAgICB9KTsKK30KICNlbmRp
ZgogCiBAaW50ZXJmYWNlIFdlYkhUTUxWaWV3IChXZWJIVE1MVmlld0ZpbGVJbnRlcm5hbCkKQEAg
LTI2MTAsNiArMjYyMiw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gCiAgICAgICAgICAgICBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihtYXJrZWRUZXh0VXBkYXRlOikgCiAgICAg
ICAgICAgICAgICAgICAgbmFtZTpXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0
aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICop
KHNlbGYpLCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrLCAoQ0ZT
dHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyLCBDRk5vdGlm
aWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oTUFDKQpAQCAtMjYyNiw2ICsyNjM5LDcgQEAgLSAodm9pZClkZWFsbG9jCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOldlYk1hcmtlZFRleHRVcGRhdGVkTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIo
Q0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNv
bnN0IHZvaWQgKikoc2VsZiksIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhT
dHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNh
dGlvbl0sIG51bGxwdHIpOwogI2VuZGlmCiAKICAgICAvLyBXZSBjYW4ndCBhc3NlcnQgdGhhdCBj
bG9zZSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBiZWNhdXNlCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAwZGIx
MDhmNzcwN2FhNTlkNjgxNzEzYTE2YmFiNDliYmI2MTAxNjEwLi4zMTRmZmZmYjBiYmFkMDExNjU1
NThjNjA3NTBiNzlmOWRlYTI3MDA1IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OC0xMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lP
U10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBFeHBvc2Ugc29tZSBtb3JlIHN5bWJvbHMuCisKKyAgICAgICAgKiBX
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3
b3JrL0dyYXBoaWNzU2VydmljZXMudGJkOgorCiAyMDE4LTA2LTI3ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgV2ViS2l0IGlPUyAxMiBidWls
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQg
Yi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFw
aGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZAppbmRleCBhYjFjNDA2
MDBlZjczOWVkMDc5NzBmNWZiMzdiOTVlNzg5NzQxNTFjLi5kMzU0MzI0NjVkMWIzZDg2M2UyNjc5
NDNjOGUzYWI1MmE3MTM0OWY0IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFw
aGljc1NlcnZpY2VzLnRiZAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZp
Y2VzLnRiZApAQCAtMTUsMTAgKzE1LDEzIEBAIGV4cG9ydHM6CiAgICAgICAtIHg4Nl82NAogICAg
IHN5bWJvbHM6CiAgICAgICAtIF9HU0N1cnJlbnRFdmVudFRpbWVzdGFtcAorICAgICAgLSBfR1NF
dmVudElzSGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkCiAgICAgICAtIF9HU0ZvbnRJbml0aWFsaXpl
CiAgICAgICAtIF9HU0ZvbnRQdXJnZUZvbnRDYWNoZQogICAgICAgLSBfR1NJbml0aWFsaXplCisg
ICAgICAtIF9HU0tleWJvYXJkR2V0TW9kaWZpZXJTdGF0ZQogICAgICAgLSBfR1NTeXN0ZW1Sb290
RGlyZWN0b3J5CisgICAgICAtIF9rR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlD
aGFuZ2VkTm90aWZpY2F0aW9uCiBpbnN0YWxsLW5hbWU6IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzCiBv
YmpjLWNvbnN0cmFpbnQ6IG5vbmUKIHBsYXRmb3JtOiBpb3MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354102</attachid>
            <date>2018-11-07 09:52:50 -0800</date>
            <delta_ts>2018-11-07 11:33:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181107095249.patch</filename>
            <type>text/plain</type>
            <size>37354</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5MGIzZDc1OThhNWVi
YTRhYTBjYjIzMjNlMThmMjI0MDU0OWIyYS4uMzdkNTcyOWJiMTFlOTdhODU3ZDRmMmExMWJlZTBl
ZmZkMWFhNzY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTA2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkIGNvbnN0KTog
RXh0cmFjdGVkIGZyb20gRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KCkKKyAgICAgICAg
c28gdGhhdCBpdCBjYW4gc2hhcmVkIGJldHdlZW4gV2ViQ29yZSwgTW9kZXJuIFdlYktpdCwgYW5k
IExlZ2FjeSBXZWJLaXQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudCk6IE1vZGlmaWVkIHRvIGNhbGwgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSk6IE1vdmVkIGZyb20gS2V5RXZlbnRNYWMu
bW0uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRN
b2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKTogRmV0Y2ggdGhlIGN1cnJlbnQg
bW9kaWZpZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tOgorICAgICAgICAoK1tXZWJFdmVudCBtb2RpZmll
ckZsYWdzXSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUpOiBEZWxldGVkOyBtb3ZlZCB0byBLZXlFdmVudENvY29hLm1tIHRvIGJlIHNoYXJlZAor
ICAgICAgICBieSBib3RoIE1hYyBhbmQgaU9TLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IERlbGV0ZWQ7IG1vdmVkIHRv
IEtleUV2ZW50Q29jb2EubW0gdG8gYmUgc2hhcmVkCisgICAgICAgIGJ5IGJvdGggTWFjIGFuZCBp
T1MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMubW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERlbGV0ZWQ7IG1vdmVk
IHRvIFJlbmRlclRoZW1lQ29jb2EubW0gdG8gYmUKKyAgICAgICAgc2hhcmVkIGJ5IGJvdGggTWFj
IGFuZCBpT1MuCisKIDIwMTgtMTEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9y
IG5vdCBzaG93biBpbiBwYXNzd29yZCBmaWVsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMzUxMTBj
YThkNDMwMmYyMzIwZjE2ZTlhZTdkNTIxYzljNjY1ZjNjYi4uMTQwMjA1ODQxMzBhNjUxNWEzNDdh
NzA5ZWI5ZDE2MmZmMjdkMjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTgtMTEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDU2NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUgbW9yZSBTUEkuCisKKyAg
ICAgICAgKiBwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOC0xMS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTm9ybWFsaXplIGNoYXJhY3RlciBzdHJpbmcg
YmFzZWQgb24ga2V5IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGQyZjQ5NGNhY2E5NzQ5MDU5N2Q2OTVlOGJj
ZDkzYmVmNTgxZWUzZS4uNWM5YzVkNDU2ODQ1ZTBhMjkxMWI3MjYyY2E3ZTAwNWQ5MWUzYjg4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxOC0xMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9y
IGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHRoZSBjdXJyZW50IG1vZGlmZXIgc3RhdGUgb24gd2lu
ZG93IGFjdGl2YXRpb24gY2hhbmdlcy4gTm90aWZ5CisgICAgICAgIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3Mgd2hlbiBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyAoZS5nLiBh
IGtleWJvYXJkIGlzIGF0dGFjaGVkKS4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaDogRml4IHVwIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgVUlLaXQgYWRkZWQgTlNVUkwg
cHJvcGVydHksIF90aXRsZSwgYXMgaXQgaXMKKyAgICAgICAgbm90IGNvcnJlY3QuIFRoaXMgYWxz
byBtYWtlcyB0aGlzIGZvcndhcmQgZGVjbGFyYXRpb24gbWF0Y2ggdGhlIGZvcndhcmQgZGVjbGFy
YXRpb24gb2YgdGhlIHNhbWUgcHJvcGVydHkKKyAgICAgICAgaW4gaGVhZGVyIFdlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3Vy
YXRpb246XSk6IFJlZ2lzdGVyIGZvciBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hh
bmdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1dlYlZpZXcgZGVhbGxvY10pOiBVbnJl
Z2lzdGVyIGZyb20gaGFyZHdhcmUgYXZhaWxhYmlsaXR5IGNoYW5nZWQgbm90aWZpY2F0aW9ucy4K
KyAgICAgICAgKGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IENvbXBpbGUg
dGhpcyBjb2RlIHdoZW4gYnVpbGRpbmcgZm9yIGlPUy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhbmRsZUtleVVJRXZlbnQ6XSk6
IFVwZGF0ZSB0aGUgY3VycmVudCBtb2RpZmllciBzdGF0ZSBpZiB0aGlzIGV2ZW50IGlzIGEgaGFy
ZHdhcmUKKyAgICAgICAga2V5Ym9hcmQgZmxhZ3MgY2hhbmdlZCBldmVudC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCk6IEFkZGVkLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhhcmR3
YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgQWRkZWQgbmV3IG1lc3Nh
Z2UgSGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQuIE5vdGlmeSB0aGUgZm9jdXNl
ZCBIVE1MIGlucHV0IGVsZW1lbnQgKGlmIHdlIGhhdmUKKyAgICAgICAgb25lKSB0aGF0IHRoZSBj
YXBzIGxvY2sgc3RhdGUgbWF5IGhhdmUgY2hhbmdlZCB3aGVuIHdlIHJlY2VpdmUgbWVzc2FnZSBI
YXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZAorICAgICAgICBzbyB0aGF0IHdlIHRv
Z2dsZSB2aXNpYmlsaXR5IG9mIHRoZSBjYXBzIGxvY2sgaW5kaWNhdG9yLgorCiAyMDE4LTExLTA2
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjMwNTIzKTogQ2FwcyBsb2NrIGluZGljYXRvciBub3Qgc2hvd24gaW4gcGFzc3dvcmQg
ZmllbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBiMzg3ZDdlNzQ2YjJjNTg0NDIy
NWVmYjc1YzVkZTMxYWIzYmE5NGViLi4zYWI0YTkyMzBjMDdhMGQ5MTZiZGViYmZhYTI1NzU5YWI1
MzcxNDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTgtMTEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtp
T1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBjYXBzIGxvY2sgc3RhdGUgd2hlbiBhIGhhcmR3
YXJlIGtleWJvYXJkIGlzIGF0dGFjaGVkIG9yIGRldGFjaGVkLgorCisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlD
aGFuZ2VkQ2FsbGJhY2spOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgaW5pdFdpdGhG
cmFtZTpdKTogUmVnaXN0ZXIgZm9yIGhhcmR3YXJlIGtleWJvYXJkIGF2YWlsYWJpbGl0eSBjaGFu
Z2VkIG5vdGlmaWNhdGlvbnMuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGRlYWxsb2NdKTogVW5y
ZWdpc3RlciBmcm9tIGhhcmR3YXJlIGtleWJvYXJkIGF2YWlsYWJpbGl0eSBjaGFuZ2VkIG5vdGlm
aWNhdGlvbnMuCisKIDIwMTgtMTEtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIFdlYktpdCBzaG91bGQgZGlzcGF0Y2ggRE9NIGV2ZW50cyB3aGVu
IGEgbW9kaWZpZXIga2V5IGlzIHByZXNzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oCmluZGV4IDFjYzhiMzExODA0MjA1NGIz
YTNjMmE3NmE3OTkxNDQxY2QxYTQ1YzMuLjFiNWJkOTc4NGZhYzYzZTFiYWFkMzU1OWFiZmI3YmVl
NWMxMDE2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9HcmFw
aGljc1NlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dy
YXBoaWNzU2VydmljZXNTUEkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00Myw2ICs0MywxMiBAQCBDRlN0cmluZ1JlZiBHU1N5c3RlbVJv
b3REaXJlY3Rvcnkodm9pZCk7CiB2b2lkIEdTRm9udEluaXRpYWxpemUodm9pZCk7CiB2b2lkIEdT
Rm9udFB1cmdlRm9udENhY2hlKHZvaWQpOwogCit0eXBlZGVmIHN0cnVjdCBfX0dTS2V5Ym9hcmQq
IEdTS2V5Ym9hcmRSZWY7Cit1aW50MzJfdCBHU0tleWJvYXJkR2V0TW9kaWZpZXJTdGF0ZShHU0tl
eWJvYXJkUmVmKTsKK0Jvb2xlYW4gR1NFdmVudElzSGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKCk7
CisKK2V4dGVybiBjb25zdCBjaGFyICprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkTm90aWZpY2F0aW9uOworCiBXVEZfRVhURVJOX0NfRU5ECiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA3Yzk0NzE0ODY1ZGRh
MTljZmE5ZmNlNzBjM2JiZTcyYTJiMzU1OTY5Li4xYTg3YWY1YWYzYTQ4OWMxMTM2NjBiYjJmZDU0
ZjhjNzY2ZTRmNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3Mv
VUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEku
aApAQCAtMjMsNiArMjMsMTAgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCitXVEZfRVhURVJOX0NfQkVHSU4KK3R5cGVkZWYgc3RydWN0IF9fR1NLZXlib2FyZCog
R1NLZXlib2FyZFJlZjsKK1dURl9FWFRFUk5fQ19FTkQKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAKICNpbXBvcnQgPFVJS2l0L05TUGFyYWdyYXBoU3R5bGVfUHJpdmF0ZS5oPgpAQCAt
NDQsNiArNDgsNyBAQAogCiBAaW50ZXJmYWNlIFVJQXBwbGljYXRpb24gKCkKICsgKFVJQXBwbGlj
YXRpb25TY2VuZUNsYXNzaWNNb2RlKV9jbGFzc2ljTW9kZTsKKy0gKEdTS2V5Ym9hcmRSZWYpX2hh
cmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAKICNlbHNlCkBAIC03NSwxMCArODAsOSBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBVSUFwcGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSkgewogQGVu
ZAogCiBAaW50ZXJmYWNlIFVJQXBwbGljYXRpb24gKCkKLQogLSAoQk9PTClfaXNDbGFzc2ljOwog
KyAoVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOwotCistIChHU0tl
eWJvYXJkUmVmKV9oYXJkd2FyZUtleWJvYXJkOwogQGVuZAogCiBAaW50ZXJmYWNlIFVJQ29sb3Ig
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmYmZjNzU4NzI0MjA5OTM3ODI3NzU0ZTgwY2Y1YmNmNmZiYmVhZWFjLi4wYjg0YTNl
YzY4ODU5NDg3NDkwNjJjZGEzMGQ0Zjg0Y2M0OGE4NWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY0Myw2ICsxMzY0Myw3
IEBACiAJCUNFMjg0OTg4MUNBMzYxNDYwMEI0QTU3RiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lE
aXJlY3RpdmVOYW1lcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBD
b250ZW50U2VjdXJpdHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHBhdGggPSBjc3AvQ29udGVu
dFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRTVDQjFCMzE0RURBQjZGMDBCQjI3OTUgLyogRXZlbnRTZW5kZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRTZW5kZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0U1RkEyNTMyMDlFNDhDNTAwNTFENzAwIC8qIENvbnRlbnRTZWN1cml0
eVBvbGljeUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZW50U2VjdXJpdHlQb2xpY3lDbGll
bnQuaDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0U2OEM4RkYyMTkyNEVFNTAwMTIzMEIzIC8qIFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTZEODkyOTRDN0FBQ0UwQUQ4
OUIzREQgLyogTWF0aE1MTWVuY2xvc2VFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1hdGhNTE1lbmNsb3NlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRTZEQURGNzFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5jcHA7IHBhdGggPSBjc3AvQ29u
dGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0U2REFERjgxQzU5MUU2QTAwM0Y2QTg4IC8qIENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBD
b250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaDsgcGF0aCA9IGNzcC9Db250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTI0OTkxLDYgKzI0OTkyLDcgQEAKIAkJCQlBMTQ5Nzg3MDFBQkFGM0E1MDBDRUY3RTQg
LyogUGxhdGZvcm1Db250ZW50RmlsdGVyLmggKi8sCiAJCQkJQkM1Qzc2MjkxNDk3RkUxNDAwQkM0
Nzc1IC8qIFBsYXRmb3JtRXZlbnQuaCAqLywKIAkJCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUg
LyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLywKKwkJCQlDRTY4QzhGRjIxOTI0RUU1MDAxMjMw
QjMgLyogUGxhdGZvcm1LZXlib2FyZEV2ZW50LmNwcCAqLywKIAkJCQk5MzVDNDc2NjA5QUM0RDQz
MDBBNkFBQjQgLyogUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJOTM1QzQ3NjcwOUFD
NEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oICovLAogCQkJCUM1QkFDMTZGMTRF
MzBFNDcwMDAwODgzNyAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA5OWI3NGJmYjY2M2JmOTk2ODJmYjY0ZmMwYWFlYjNmMzdh
NzhjMWEwLi45N2JkMDRmMDg1YWRlZjQzNjczZWI0NzVhYmI3NWJmMGEwYjdiMjBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zMTYyLDYgKzMxNjIsMTQgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5RXZl
bnQpCiAgICAgcmV0dXJuIHdhc0hhbmRsZWQ7CiB9CiAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYXBz
TG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKSBjb25zdAoreworICAgIGF1dG8qIGZvY3VzZWRFbGVt
ZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpOworICAgIGlmICghaXM8
SFRNTElucHV0RWxlbWVudD4oZm9jdXNlZEVsZW1lbnQpKQorICAgICAgICByZXR1cm47CisgICAg
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmZvY3VzZWRFbGVtZW50KS5jYXBzTG9ja1N0YXRl
TWF5SGF2ZUNoYW5nZWQoKTsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQpCiB7CiAgICAg
UmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKQEAgLTMxOTQsMTIgKzMyMDIsOCBA
QCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGluaXRp
YWxLZXlFdmVudC53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19DQVBJVEFMKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiBlbGVtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVu
dCgpKSB7Ci0gICAgICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpKQot
ICAgICAgICAgICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5jYXBz
TG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoaW5p
dGlhbEtleUV2ZW50LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpCisgICAg
ICAgIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKFBBTl9TQ1JP
TExJTkcpCiAgICAgaWYgKG1fZnJhbWUubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkucGFuU2Ny
b2xsSW5Qcm9ncmVzcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBmNWZl
MDhmNjE2ZTUyZDE3NDAzNDQ1NzgzNThjYjBkZGIyMGQ5ZTg0Li45MmZiYzVhZmNmODhlYjIwNDQ0
MDQ5MjAxMmNjOWRhODQwNmJiNDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAg
LTI1Niw2ICsyNTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVB
Y2Nlc3NLZXkoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBrZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICB2b2lk
IGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Jik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKSBjb25zdDsKIAogICAg
IGJvb2wgYWNjZXNzaWJpbGl0eVByZXZlbnRzRXZlbnRQcm9wYWdhdGlvbihLZXlib2FyZEV2ZW50
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVt
ZW50Rm9yQWNjZXNzaWJpbGl0eShLZXlib2FyZEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCA2MzFkZDE0MGQ3YmViZDdjZmI4
ZmY1NGUzMzkyNmU0ZTM4OGFjNTFkLi4wNWMwYThjZTcwODIyN2MzZjU0YjA4Yzg3NjE4NjUzODIz
MjJjNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVu
dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29j
b2EubW0KQEAgLTI3LDggKzI3LDEwIEBACiAjaW1wb3J0ICJLZXlFdmVudENvY29hLmgiCiAKICNp
bXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2lt
cG9ydCAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNpbXBvcnQgPHd0Zi9BU0NJSUNUeXBlLmg+
CisjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMzksNiArNDEsMjAgQEAgdXNpbmcg
bmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQoreworICAgIHJldHVybiBjdXJyZW50
U3RhdGVPZk1vZGlmaWVyS2V5cygpLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpD
YXBzTG9ja0tleSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50
TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9vbCYgYWx0S2V5
LCBib29sJiBtZXRhS2V5KQoreworICAgIGF1dG8gY3VycmVudE1vZGlmaWVycyA9IGN1cnJlbnRT
dGF0ZU9mTW9kaWZpZXJLZXlzKCk7CisgICAgc2hpZnRLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNv
bnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgY3RybEtleSA9
IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkN0cmxL
ZXkpOworICAgIGFsdEtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVu
dDo6TW9kaWZpZXI6OkFsdEtleSk7CisgICAgbWV0YUtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29u
dGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOworfQorCiAvLyBodHRwczov
L3czYy5naXRodWIuaW8vdWlldmVudHMta2V5LwogU3RyaW5nIGtleUZvckNoYXJDb2RlKHVuaWNo
YXIgY2hhckNvZGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
S2V5RXZlbnRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1Mu
bW0KaW5kZXggMTljYTliZmRmNGIxNjhhMzEwNzQzMjQyY2RiMTkzMWJjMDkzMzBiZS4uOWJkNTdl
NzRhYzg4MmI1NDM3NDU1ODIwOTQzNzJjN2NhZjdkOTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQpAQCAtMzEsOCArMzEsMTAgQEAKICNpbXBvcnQgIktl
eUV2ZW50Q29jb2EuaCIKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNpbXBvcnQgIk5v
dEltcGxlbWVudGVkLmgiCisjaW1wb3J0ICJXZWJFdmVudC5oIgogI2ltcG9ydCAiV2luZG93c0tl
eWJvYXJkQ29kZXMuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvSU9LaXRTUEkuaD4KKyNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKQEAgLTMxMiwx
OSArMzE0LDI5IEBAIHZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3VhdGVLZXlE
b3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tCiAgICAgfQogfQogCi1ib29sIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQorT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0
ZU9mTW9kaWZpZXJLZXlzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBm
YWxzZTsKLX0KKyAgICAvLyBzX2N1cnJlbnRNb2RpZmllcnMgaXMgb25seSBzZXQgaW4gdGhlIFdl
YkNvbnRlbnQgcHJvY2Vzcywgbm90IGluIHRoZSBVSSBwcm9jZXNzLgorICAgIGlmIChzX2N1cnJl
bnRNb2RpZmllcnMpIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAg
cmV0dXJuICpzX2N1cnJlbnRNb2RpZmllcnM7CisgICAgfQogCi12b2lkIFBsYXRmb3JtS2V5Ym9h
cmRFdmVudDo6Z2V0Q3VycmVudE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0
cmxLZXksIGJvb2wmIGFsdEtleSwgYm9vbCYgbWV0YUtleSkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHNoaWZ0S2V5ID0gZmFsc2U7Ci0gICAgY3RybEtleSA9IGZhbHNlOwotICAgIGFs
dEtleSA9IGZhbHNlOwotICAgIG1ldGFLZXkgPSBmYWxzZTsKKyAgICA6OldlYkV2ZW50RmxhZ3Mg
Y3VycmVudE1vZGlmaWVycyA9IFs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdOworCisgICAgT3B0
aW9uU2V0PFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgaWYgKGN1cnJl
bnRNb2RpZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tTaGlmdEtleSkKKyAgICAgICAgbW9kaWZp
ZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOworICAgIGlmIChjdXJy
ZW50TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrQ29udHJvbEtleSkKKyAgICAgICAgbW9k
aWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSk7CisgICAgaWYgKGN1
cnJlbnRNb2RpZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tPcHRpb25LZXkpCisgICAgICAgIG1v
ZGlmaWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7CisgICAgaWYgKGN1
cnJlbnRNb2RpZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tDb21tYW5kS2V5KQorICAgICAgICBt
b2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKKyAgICBpZiAo
Y3VycmVudE1vZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza0xlZnRDYXBzTG9ja0tleSkKKyAg
ICAgICAgbW9kaWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fwc0xvY2tLZXkp
OworCisgICAgcmV0dXJuIG1vZGlmaWVyczsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViRXZlbnQuaAppbmRleCAzYmQzNmJmNzM3NGFkZjUwYThmYTNjOWYwZDQxMDkzMjQ3MTRl
ZTM1Li4yMjRhMDdlMjI3ODY2M2JkMmFjNjBkOThkMjEyZGM4ZjUyNzZiYjUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQuaApAQCAtMjE2LDYgKzIxNiw4IEBAIFdFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgV2ViRXZlbnQgOiBOU09iamVjdCB7CiAKIEBwcm9wZXJ0eShub25h
dG9taWMpIEJPT0wgd2FzSGFuZGxlZDsKIAorQHByb3BlcnR5IChjbGFzcywgcmVhZG9ubHkpIFdl
YkV2ZW50RmxhZ3MgbW9kaWZpZXJGbGFnczsKKwogQGVuZAogCiAjZW5kaWYgLy8gVEFSR0VUX09T
X0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tCmluZGV4IGU2Nzhl
OWU0NGI2Zjc4ODJlNzQ5M2I1NTY2ZGUwMWU3MjNkMDdmNGIuLmE2YmQ3MzMzNDUzYzE1N2YxNWM4
YTg1YzA5NjY1YjQ1YWFmZDQzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJFdmVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZl
bnQubW0KQEAgLTM2LDYgKzM2LDE0IEBACiAjaW1wb3J0ICJLZXlFdmVudENvZGVzSU9TLmgiCiAj
aW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT0tpdFNQ
SS5oPgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgor
CitTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUFw
cGxpY2F0aW9uKTsKKworI2RlZmluZSBVSUFwcGxpY2F0aW9uIGdldFVJQXBwbGljYXRpb25DbGFz
cygpCiAKIHVzaW5nIFdlYkNvcmU6OndpbmRvd3NLZXlDb2RlRm9yS2V5Q29kZTsKIHVzaW5nIFdl
YkNvcmU6OndpbmRvd3NLZXlDb2RlRm9yQ2hhckNvZGU7CkBAIC00OTEsNiArNDk5LDExIEBAIC0g
KGZsb2F0KWdlc3R1cmVSb3RhdGlvbgogICAgIHJldHVybiBfZ2VzdHVyZVJvdGF0aW9uOwogfQog
CisrIChXZWJFdmVudEZsYWdzKW1vZGlmaWVyRmxhZ3MKK3sKKyAgICByZXR1cm4gR1NFdmVudElz
SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKCkgPyBHU0tleWJvYXJkR2V0TW9kaWZpZXJTdGF0ZShb
VUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0uX2hhcmR3YXJlS2V5Ym9hcmQpIDogMDsK
K30KKwogQGVuZAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQppbmRleCBiMDhhNTNlZTQzZDYxZmRiOWY1
NmQwMWU1ZDQ0M2FhMDRkMTljNTJiLi4yYmNiNTEwYzdhNGM4NTI0ZTY4YmExNGE1MDFmZGM5ZTVm
MGIyYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCkBA
IC0yNTgsMjEgKzI1OCw2IEBAIHZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpkaXNhbWJpZ3Vh
dGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkQ29tCiAgICAgfQogfQogCi1i
b29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUoKQotewotICAg
IGF1dG8gY3VycmVudE1vZGlmaWVycyA9IGN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCk7Ci0g
ICAgcmV0dXJuIGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI6OkNhcHNMb2NrS2V5KTsKLX0KLQotdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1
cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBh
bHRLZXksIGJvb2wmIG1ldGFLZXkpCi17Ci0gICAgYXV0byBjdXJyZW50TW9kaWZpZXJzID0gY3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKLSAgICBzaGlmdEtleSA9IGN1cnJlbnRNb2RpZmll
cnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKLSAgICBjdHJs
S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6
Q3RybEtleSk7Ci0gICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9y
bUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKLSAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVy
cy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7Ci19Ci0KIE9wdGlv
blNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJy
ZW50U3RhdGVPZk1vZGlmaWVyS2V5cygpCiB7CiAjaWYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9X
U0VSVkVSX0JMT0NLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNv
Y29hLmgKaW5kZXggYTQ2NGMxMDQwMmYwNDcxMzI4NmI0NDYwYzcxMTgzN2E2Mjc4N2RlMC4uZjE4
ODc0MjRmNjNmNGU5Yzc5ODFkYmMzZDY0YTk4M2FhM2IxZTRmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyVGhlbWVDb2NvYSA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CiBwcml2YXRlOgorICAgIGJvb2wgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0
IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdCBmaW5hbDsKKwogI2lmIEVOQUJMRShBUFBMRV9QQVkp
CiAgICAgdm9pZCBhZGp1c3RBcHBsZVBheUJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHBhaW50
QXBwbGVQYXlCdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDb2NvYS5tbQppbmRleCBmZWFjZmM1YjMzYzc1ZDZhMDlhMmU4Y2FhY2M5MGMzMjQwYTIy
MTg4Li5iNGFhZjY0MjFkMmI2ZDNjNWIzMGRlYWE3NGUzZTcyNjMyOWQyYWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbQpAQCAtMjcsNiArMjcsNyBA
QAogI2ltcG9ydCAiUmVuZGVyVGhlbWVDb2NvYS5oIgogCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRDRy5oIgorI2ltcG9ydCAiSFRNTElucHV0RWxlbWVudC5oIgogI2ltcG9ydCAiUmVuZGVyVGV4
dC5oIgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKQEAgLTUxLDYgKzUyLDExIEBAIFNPRlRfTElO
S19NQVlfRkFJTChQYXNzS2l0LCBQS0RyYXdBcHBsZVBheUJ1dHRvbiwgdm9pZCwgKENHQ29udGV4
dFJlZiBjb250ZXh0LCBDCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBSZW5kZXJUaGVt
ZUNvY29hOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gZWxlbWVudC5pc1Bhc3N3b3JkRmllbGQo
KTsKK30KKwogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKIHN0YXRpYyBjb25zdCBhdXRvIGFwcGxl
UGF5QnV0dG9uTWluaW11bVdpZHRoID0gMTQwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MuaAppbmRleCBjYThjMGJhMmYyMGM3YWMwZmEzYzJkNGU2YTEzNWI4YmE2MWM4
NmQyLi5hNWEzMGFjMmE5NDFiYjJjMzU4ZjQ0YTdhNmZmN2M2YmY1ZjIwMDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTE3LDcgKzExNyw2IEBAIHBy
b3RlY3RlZDoKICNlbmRpZgogCiAgICAgYm9vbCBzaG91bGRIYXZlU3BpbkJ1dHRvbihjb25zdCBI
VE1MSW5wdXRFbGVtZW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRIYXZlQ2Fw
c0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0IG92ZXJyaWRlOwog
CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIFN0cmluZyBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmlu
ZGV4IDFkMTdhZWFmMmQ3ZDVlMjk0MGU0MzFkMTQ0YWQxYWNmYWE1YmNhMjkuLjUyYjRkNzQ1Yjk5
NzMzYWM2YWYwYjViNzJjMzYwYjZiMmQ0YjBhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTExMzUsMTEgKzExMzUsNiBAQCBib29sIFJlbmRlclRo
ZW1lSU9TOjpzaG91bGRIYXZlU3BpbkJ1dHRvbihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVJT1M6OnNob3VsZEhh
dmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3QKLXsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mIFJlbmRlclRoZW1l
SU9TOjpjYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCB2YWx1ZUlEKSBjb25z
dAogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250Q2FzY2FkZURlc2NyaXB0aW9uPiBz
eXN0ZW1Gb250OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRl
eCBkODU3NjFhYmM5YjEyZGZkZGE1NTQ1ZGQxNGY4MDM0OTYzNzk1MGQ3Li44Y2VkODg0NDFjODI2
YjFkMDg4YzMzOTljNzZlNTE2MjZkYmJkYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMuaApAQCAtMTY0LDggKzE2NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBz
dXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAj
ZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJ
bnB1dEVsZW1lbnQmKSBjb25zdCBmaW5hbDsKLQogICAgIGJvb2wgcGFpbnRTbmFwc2hvdHRlZFBs
dWdpbk92ZXJsYXkoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAzZmJkNjBkNjE3MTc5
ZDgwYjE5MjY1OWE5YjhmMGJjOWM5ZTZjZGQ1Li5lOTEyMTUwNjBlZjlhYjhkNjFkMzVlYjJjNWJh
YjkyOGZjMjgzNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tCkBAIC0yMzQyLDExICsyMzQyLDYgQEAgdm9pZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0U2xp
ZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCopIGMKICAgICB9
CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihj
b25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSBjb25zdAotewotICAgIHJldHVybiBlbGVt
ZW50LmlzUGFzc3dvcmRGaWVsZCgpOwotfQotCiBOU1BvcFVwQnV0dG9uQ2VsbCogUmVuZGVyVGhl
bWVNYWM6OnBvcHVwQnV0dG9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcG9wdXBCdXR0b24pIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggMzBiMjgzNjgz
MmFlNjA5OTM3YzQzNzMwMzdmNGYwNzEzZmU0ZTk1NS4uOGZjMzkzZmE2MzMzNTFkMjM0NWY4Y2Yy
MjVkNzAyMmNhOWU4NmY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKQEAgLTQyNiw3ICs0MjYsNyBAQCB0eXBlZGVmIGVudW0gewogCiAjaWYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCiBAaW50ZXJmYWNlIE5TVVJMICgpCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRUaXRsZTopIE5TU3RyaW5nICpf
dGl0bGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgbnVsbGFibGUsIHNldHRlcj1fc2V0
VGl0bGU6KSBOU1N0cmluZyAqX3RpdGxlOwogQGVuZAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDllYzY1OThkN2Y1NmFh
MzNlODc1MTk3ZTQ5YTc3MmZkNTMzYjYwOGYuLmZmN2Q5MGE4MjIwZWMxZWNkZmM5MGFlMmQ0OGI2
NDkzZjQ0YWZkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQpAQCAtMTUyLDYgKzE1Miw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlNRTGl0
ZURhdGFiYXNlVHJhY2tlckNsaWVudC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8d3RmL2NvY29h
L0VudGl0bGVtZW50cy5oPgogCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBS
RUxFQVNFX0xPR19JRihfcGFnZSAmJiBfcGFnZS0+aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCkBAIC03MDIsNiArNzAzLDggQEAgLSAodm9pZClfaW5p
dGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgogCiAgICAgW1tfY29uZmlndXJhdGlvbiBfY29udGVudFByb3ZpZGVyUmVnaXN0cnld
IGFkZFBhZ2U6Kl9wYWdlXTsKICAgICBfcGFnZS0+c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUo
W19jb25maWd1cmF0aW9uIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzXSk7CisKKyAgICBDRk5v
dGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2lu
Tm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCBoYXJkd2FyZUtl
eWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrLCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5n
IHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25C
ZWhhdmlvckNvYWxlc2NlKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtODM5LDYg
Kzg0Miw4IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtbX2NvbmZpZ3VyYXRpb24gX2NvbnRlbnRQ
cm92aWRlclJlZ2lzdHJ5XSByZW1vdmVQYWdlOipfcGFnZV07CiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKICAgICBbX3Njcm9s
bFZpZXcgc2V0SW50ZXJuYWxEZWxlZ2F0ZTpuaWxdOworCisgICAgQ0ZOb3RpZmljYXRpb25DZW50
ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRl
cigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgKENGU3RyaW5nUmVmKVtOU1N0cmlu
ZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0cik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0VWRU5UUykKQEAgLTMwOTksNiArMzEwNCwxMyBAQCAtICh2b2lkKV9rZXli
b2FyZFdpbGxIaWRlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogICAgIFtzZWxmIF9r
ZXlib2FyZENoYW5nZWRXaXRoSW5mbzpub3RpZmljYXRpb24udXNlckluZm8gYWRqdXN0U2Nyb2xs
VmlldzpZRVNdOwogfQogCitzdGF0aWMgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5
Q2hhbmdlZENhbGxiYWNrKENGTm90aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwg
Q0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlSZWYpCit7CisgICAgQVNTRVJU
KG9ic2VydmVyKTsKKyAgICBXS1dlYlZpZXcgKndlYlZpZXcgPSAoX19icmlkZ2UgV0tXZWJWaWV3
ICopb2JzZXJ2ZXI7CisgICAgd2ViVmlldy5fcGFnZS0+aGFyZHdhcmVLZXlib2FyZEF2YWlsYWJp
bGl0eUNoYW5nZWQoKTsKK30KKwogLSAodm9pZClfd2luZG93RGlkUm90YXRlOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgogewogICAgIGlmICghX292ZXJyaWRlc0ludGVyZmFjZU9yaWVu
dGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzhm
ODZkZTg1M2JjMjIwYzA2ODAxZTE2NDgzODgxMzgzZTNmY2I4Mi4uODg1ZGVlNTY3OTI2YjVmNDNl
NThlMmU4MGRmMzllMzJjMTI3ZGExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC04MTMxLDcgKzgxMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0SXNW
aWV3VmlzaWJsZShib29sJiByZXN1bHQpCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJy
ZW50TW9kaWZpZXJTdGF0ZSgpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJP
Q0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
V0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpIHx8IFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgYXV0byBtb2RpZmllcnMgPSBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0
ZU9mTW9kaWZpZXJLZXlzKCk7CiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpVcGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZShtb2RpZmllcnMpLCBtX3BhZ2VJRCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDY4MmQ3NGMxMmYw
NzcwMzlkZThiMTVmMDQ1NGVjZDk4ZTY1Y2VjYy4uNDM1YjliMDkwNzY3YjIyMWZiZDBjMDY4YmY2
YTI3YmQxNTQ4OGQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTY0NSw2ICs2NDUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZVNlbGVjdGlvbkZvckFjY2Vz
c2liaWxpdHkoYm9vbCk7CiAgICAgdm9pZCBzdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uSW5XaW5kb3cpOwogICAgIHZvaWQgY2FuY2Vs
QXV0b3Njcm9sbCgpOworICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5n
ZWQoKTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICB2b2lkIGRpZEhhbmRsZVN0
YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpOwogICAgIHZvaWQgZGlkSGFu
ZGxlQWRkaXRpb25hbERyYWdJdGVtc1JlcXVlc3QoYm9vbCBhZGRlZCk7CkBAIC0xMzY5LDYgKzEz
NzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDbG9zZVN1Z2dlc3Rpb25zKCk7CiAjZW5kaWYK
IAorICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKKwogcHJpdmF0ZToKICAg
ICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBh
Z2VJRCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplKCk7CkBAIC0xODUxLDggKzE4NTQsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc3Rv
cERpc3BsYXlMaW5rKHVuc2lnbmVkIG9ic2VydmVySUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIHVw
ZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCk7Ci0KICAgICB2b2lkIHJlcG9ydFBhZ2VMb2FkUmVz
dWx0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImID0geyB9KTsKIAogICAgIHZvaWQgY29u
dGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYsIFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNDIwYjYyOGQwNmRjZDdiMzk4YzIyYTcy
NGJkZmIwYzc1M2M5MzhlYy4uODgxZDQ5ODAwYTRhZDMzY2I3NzdlYzg4OTNlZDA2YzJlNTZmOTEx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCkBAIC05NSw2ICs5NSw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL2Nn
L0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9EYXRhRGV0ZWN0b3Jz
Q29yZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3MvRGF0YURldGVjdG9yc1VJU1BJLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL2lvcy9VSUtpdFNQSS5oPgogI2ltcG9ydCA8d3RmL09wdGlvbmFsLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4K
QEAgLTM3NTYsOSArMzc1NywxMyBAQCAtIChCT09MKXJlcXVpcmVzS2V5RXZlbnRzCiAKIC0gKHZv
aWQpX2hhbmRsZUtleVVJRXZlbnQ6KDo6VUlFdmVudCAqKWV2ZW50CiB7CisgICAgYm9vbCBpc0hh
cmR3YXJlS2V5Ym9hcmRFdmVudCA9ICEhZXZlbnQuX2hpZEV2ZW50OworICAgIGlmIChpc0hhcmR3
YXJlS2V5Ym9hcmRFdmVudCAmJiAoKFVJUGh5c2ljYWxLZXlib2FyZEV2ZW50ICopZXZlbnQpLl9p
bnB1dEZsYWdzICYga1VJS2V5Ym9hcmRJbnB1dE1vZGlmaWVyRmxhZ3NDaGFuZ2VkKQorICAgICAg
ICBfcGFnZS0+dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKKwogICAgIC8vIFdlIG9ubHkg
d2FudCB0byBoYW5kbGUga2V5IGV2ZW50IGZyb20gdGhlIGhhcmR3YXJlIGtleWJvYXJkIHdoZW4g
d2UgYXJlCiAgICAgLy8gZmlyc3QgcmVzcG9uZGVyIGFuZCB3ZSBhcmUgbm90IGludGVyYWN0aW5n
IHdpdGggZWRpdGFibGUgY29udGVudC4KLSAgICBpZiAoW3NlbGYgaXNGaXJzdFJlc3BvbmRlcl0g
JiYgZXZlbnQuX2hpZEV2ZW50ICYmICFfcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0
YWJsZSkgeworICAgIGlmIChbc2VsZiBpc0ZpcnN0UmVzcG9uZGVyXSAmJiBpc0hhcmR3YXJlS2V5
Ym9hcmRFdmVudCAmJiAhX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsK
ICAgICAgICAgW3NlbGYgaGFuZGxlS2V5RXZlbnQ6ZXZlbnRdOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggMzg2NTg4NDExMzE5NGJlYzk0ODRiNjQ2Y2VkMDAzYzFmMjQ2MWYwZS4uOTlkZmZlNTFi
NGMyYjlhMmIxZGJhMGI3MmIwZTYwZGQ1MWYzNDllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01Myw2ICs1Myw3IEBACiAjaW1wb3J0
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJFdmVudC5oPgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCkBAIC0xMDg5LDYgKzEwOTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElz
U2Nyb2xsaW5nT3Jab29taW5nKGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcpCiAgICAgICAgIG1f
dmFsaWRhdGlvbkJ1YmJsZS0+c2hvdygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQoreworICAgIHVwZGF0ZUN1cnJlbnRNb2Rp
ZmllclN0YXRlKCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYXJk
d2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpLCBtX3BhZ2VJRCk7Cit9CisKICNpZiBF
TkFCTEUoREFUQV9JTlRFUkFDVElPTikKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0
YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNDA3NmVhN2I3NDUyOTNlZGNlMDc3Yjgy
OGZjNWMzYzY1YWQ2ZmE5NC4uOTlmNDQyNGI3ZjlmYTFiMmFmZWRhMjhkZTVlNDcxZWJhMDJlNjBj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTEz
LDYgKzkxMyw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGxhdGZvcm1QcmVmZXJzVGV4dExlZ2li
aWxpdHlCYXNlZFpvb21TY2FsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgV2ViQ29yZTo6Vmlld3Bv
cnRDb25maWd1cmF0aW9uJiB2aWV3cG9ydENvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbjsgfQorCisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IGZkNDMwZDY5YWUyNTQ1YjIwOWYyMjY3YTdlYWU1NmRiMjVkOTBmZTQu
Ljc2MjZmYmIyNjUzNGY0NzY2N2RkNjIxZGY3NzdmNTAzMDY4MDUyYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MTA2LDYgKzEwNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbklu
V2luZG93KQogICAgIENhbmNlbEF1dG9zY3JvbGwoKQogICAgIFJlcXVlc3RBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBIYXJkd2FyZUtl
eWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCiAjZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRC
eUF1dG9tYXRpb24oYm9vbCBjb250cm9sbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4YWFmZGIzNTViZWEyMWU0Y2Yw
OGQ4NDAxMjg4ZDVmYzAzM2ZjZjE4Li5iMWY0NGE3Y2E0YjQ5NGIxMzVjNTBjMTk1ZmQwMDgwY2Qz
ZTQxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQpAQCAtMzA4Niw2ICszMDg2LDEyIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0
Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAordm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCit7
CisgICAgaWYgKGF1dG8qIGZvY3VzZWRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCku
Zm9jdXNlZEZyYW1lKCkpCisgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7Cit9CisKICNpZiBVU0UoUVVJQ0tfTE9PSykKIHZv
aWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBwYXNzd29yZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDZkZGFjYTEwOGMzN2RmYzQ0ZTczYzk3MGJlN2M2NTg2NmE4
MGFhNDAuLjkwYTAyNTk5MDdjYzFkOWJmODMxODA2MTIzYjQ1M2E1YTA1YTllNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTY0LDcg
KzE2NCw5IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dBS1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV0FLV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dLR3JhcGhpY3MuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVu
dC5oPgorI2ltcG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlm
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODE0LDYgKzgxNiwxNiBAQCBzdGF0aWMg
Q2FjaGVkSW1hZ2VDbGllbnQmIHByb21pc2VkRGF0YUNsaWVudCgpCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViTWFya2VkVGV4dFVwZGF0ZWRO
b3RpZmljYXRpb24gPSBAIldlYk1hcmtlZFRleHRVcGRhdGVkIjsKKworc3RhdGljIHZvaWQgaGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNl
bnRlclJlZiwgdm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0
aW9uYXJ5UmVmKQoreworICAgIEFTU0VSVChvYnNlcnZlcik7CisgICAgV2ViVGhyZWFkUnVuKF57
CisgICAgICAgIFdlYkhUTUxWaWV3ICp3ZWJWaWV3ID0gKF9fYnJpZGdlIFdlYkhUTUxWaWV3ICop
b2JzZXJ2ZXI7CisgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbd2ViVmlldyBf
ZnJhbWVdKSkKKyAgICAgICAgICAgIGNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tT
dGF0ZU1heUhhdmVDaGFuZ2VkKCk7CisgICAgfSk7Cit9CiAjZW5kaWYKIAogQGludGVyZmFjZSBX
ZWJIVE1MVmlldyAoV2ViSFRNTFZpZXdGaWxlSW50ZXJuYWwpCkBAIC0yNjEwLDYgKzI2MjIsNyBA
QCAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIAogICAgICAgICAgICAgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IobWFya2VkVGV4dFVwZGF0ZTopIAogICAgICAgICAgICAgICAgICAgIG5h
bWU6V2ViTWFya2VkVGV4dFVwZGF0ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgQ0ZO
b3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndp
bk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtOU1N0cmlu
ZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxp
dHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9u
QmVoYXZpb3JDb2FsZXNjZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI2MjYs
NiArMjYzOSw3IEBAIC0gKHZvaWQpZGVhbGxvYwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
OnNlbGYgbmFtZTpXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsK
KyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2Vu
dGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYp
LCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsK
ICNlbmRpZgogCiAgICAgLy8gV2UgY2FuJ3QgYXNzZXJ0IHRoYXQgY2xvc2UgaGFzIGFscmVhZHkg
YmVlbiBjYWxsZWQgYmVjYXVzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxv
ZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMGRiMTA4Zjc3MDdhYTU5ZDY4MTcx
M2ExNmJhYjQ5YmJiNjEwMTYxMC4uMzE0ZmZmZmIwYmJhZDAxMTY1NTU4YzYwNzUwYjc5ZjlkZWEy
NzAwNSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDYgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2Nr
IGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUy
NjIzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RXhwb3NlIHNvbWUgbW9yZSBzeW1ib2xzLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZp
Y2VzLnRiZDoKKwogMjAxOC0wNi0yNyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CiAKICAgICAgICAgRW5hYmxlIFdlYktpdCBpT1MgMTIgYnVpbGQKZGlmZiAtLWdpdCBhL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNz
U2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFt
ZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKaW5kZXggYWIxYzQwNjAwZWY3MzllZDA3OTcwZjVm
YjM3Yjk1ZTc4OTc0MTUxYy4uZDM1NDMyNDY1ZDFiM2Q4NjNlMjY3OTQzYzhlM2FiNTJhNzEzNDlm
NCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQK
KysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIv
R3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKQEAgLTE1LDEw
ICsxNSwxMyBAQCBleHBvcnRzOgogICAgICAgLSB4ODZfNjQKICAgICBzeW1ib2xzOgogICAgICAg
LSBfR1NDdXJyZW50RXZlbnRUaW1lc3RhbXAKKyAgICAgIC0gX0dTRXZlbnRJc0hhcmR3YXJlS2V5
Ym9hcmRBdHRhY2hlZAogICAgICAgLSBfR1NGb250SW5pdGlhbGl6ZQogICAgICAgLSBfR1NGb250
UHVyZ2VGb250Q2FjaGUKICAgICAgIC0gX0dTSW5pdGlhbGl6ZQorICAgICAgLSBfR1NLZXlib2Fy
ZEdldE1vZGlmaWVyU3RhdGUKICAgICAgIC0gX0dTU3lzdGVtUm9vdERpcmVjdG9yeQorICAgICAg
LSBfa0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlv
bgogaW5zdGFsbC1uYW1lOiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR3JhcGhp
Y3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcwogb2JqYy1jb25zdHJhaW50OiBu
b25lCiBwbGF0Zm9ybTogaW9zCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354114</attachid>
            <date>2018-11-07 11:33:45 -0800</date>
            <delta_ts>2018-11-07 12:08:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181107113344.patch</filename>
            <type>text/plain</type>
            <size>41288</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg5MGIzZDc1OThhNWVi
YTRhYTBjYjIzMjNlMThmMjI0MDU0OWIyYS4uMzdkNTcyOWJiMTFlOTdhODU3ZDRmMmExMWJlZTBl
ZmZkMWFhNzY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTA2ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkIGNvbnN0KTog
RXh0cmFjdGVkIGZyb20gRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KCkKKyAgICAgICAg
c28gdGhhdCBpdCBjYW4gc2hhcmVkIGJldHdlZW4gV2ViQ29yZSwgTW9kZXJuIFdlYktpdCwgYW5k
IExlZ2FjeSBXZWJLaXQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudCk6IE1vZGlmaWVkIHRvIGNhbGwgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSk6IE1vdmVkIGZyb20gS2V5RXZlbnRNYWMu
bW0uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRN
b2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKTogRmV0Y2ggdGhlIGN1cnJlbnQg
bW9kaWZpZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tOgorICAgICAgICAoK1tXZWJFdmVudCBtb2RpZmll
ckZsYWdzXSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUpOiBEZWxldGVkOyBtb3ZlZCB0byBLZXlFdmVudENvY29hLm1tIHRvIGJlIHNoYXJlZAor
ICAgICAgICBieSBib3RoIE1hYyBhbmQgaU9TLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IERlbGV0ZWQ7IG1vdmVkIHRv
IEtleUV2ZW50Q29jb2EubW0gdG8gYmUgc2hhcmVkCisgICAgICAgIGJ5IGJvdGggTWFjIGFuZCBp
T1MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMubW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERlbGV0ZWQ7IG1vdmVk
IHRvIFJlbmRlclRoZW1lQ29jb2EubW0gdG8gYmUKKyAgICAgICAgc2hhcmVkIGJ5IGJvdGggTWFj
IGFuZCBpT1MuCisKIDIwMTgtMTEtMDYgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzA1MjMpOiBDYXBzIGxvY2sgaW5kaWNhdG9y
IG5vdCBzaG93biBpbiBwYXNzd29yZCBmaWVsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMzUxMTBj
YThkNDMwMmYyMzIwZjE2ZTlhZTdkNTIxYzljNjY1ZjNjYi4uMTQwMjA1ODQxMzBhNjUxNWEzNDdh
NzA5ZWI5ZDE2MmZmMjdkMjVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTgtMTEtMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDU2NQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRm9yd2FyZCBkZWNsYXJlIHNvbWUgbW9yZSBTUEkuCisKKyAg
ICAgICAgKiBwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg6CisgICAgICAgICogcGFs
L3NwaS9pb3MvVUlLaXRTUEkuaDoKKwogMjAxOC0xMS0wMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTm9ybWFsaXplIGNoYXJhY3RlciBzdHJpbmcg
YmFzZWQgb24ga2V5IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGQyZjQ5NGNhY2E5NzQ5MDU5N2Q2OTVlOGJj
ZDkzYmVmNTgxZWUzZS4uNzhjODBkOGE4YWQyYmQxZDNhNTczYzBiMTBiNWNmNjc3OWZjNjI0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxOC0xMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9y
IGluIHBhc3N3b3JkIGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3RpZnkgdGhl
IFdlYkNvbnRlbnQgcHJvY2VzcyB3aXRoIHRoZSBjdXJyZW50IG1vZGlmZXIgc3RhdGUgb24gd2lu
ZG93IGFjdGl2YXRpb24gY2hhbmdlcy4gTm90aWZ5CisgICAgICAgIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3Mgd2hlbiBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyAoZS5nLiBh
IGtleWJvYXJkIGlzIGF0dGFjaGVkKS4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaDogRml4IHVwIGZvcndhcmQgZGVjbGFyYXRpb24gb2YgVUlLaXQgYWRkZWQgTlNVUkwg
cHJvcGVydHksIF90aXRsZSwgYXMgaXQgaXMKKyAgICAgICAgbm90IGNvcnJlY3QuIFRoaXMgYWxz
byBtYWtlcyB0aGlzIGZvcndhcmQgZGVjbGFyYXRpb24gbWF0Y2ggdGhlIGZvcndhcmQgZGVjbGFy
YXRpb24gb2YgdGhlIHNhbWUgcHJvcGVydHkKKyAgICAgICAgaW4gaGVhZGVyIFdlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3Vy
YXRpb246XSk6IFJlZ2lzdGVyIGZvciBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hh
bmdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXS1dlYlZpZXcgZGVhbGxvY10pOiBVbnJl
Z2lzdGVyIGZyb20gaGFyZHdhcmUgYXZhaWxhYmlsaXR5IGNoYW5nZWQgbm90aWZpY2F0aW9ucy4K
KyAgICAgICAgKGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IENvbXBpbGUg
dGhpcyBjb2RlIHdoZW4gYnVpbGRpbmcgZm9yIGlPUy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNhdmVJbWFnZVRvTGlicmFyeSk6
IEd1YXJkIGNhbGwgdG8gVUlJbWFnZURhdGFXcml0ZVRvU2F2ZWRQaG90b3NBbGJ1bSgpIHdpdGgK
KyAgICAgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4vRU5EIHRvIHNpbGVuY2Ug
YSB3YXJuaW5nIGFib3V0IHBhc3NpbmcgbmlsIGZvciB0aGUgY29tcGxldGlvbiB0YXJnZXQuCisg
ICAgICAgIFRoaXMgQVBJIGNhbiBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIGNvbXBsZXRpb24g
dGFyZ2V0IGFuZCBjb21wbGV0aW9uIHNlbGVjdG9yIGFyZSBuaWwgYW5kIG51bGxwdHIsCisgICAg
ICAgIHJlc3BlY3RpdmVseS4gQWxzbyBmaXhlZCBzdHlsZSBuaXQsIHN1YnN0aXR1dGluZyBudWxs
cHRyIGZvciBOVUxMLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVLZXlVSUV2ZW50Ol0p
OiBVcGRhdGUgdGhlIGN1cnJlbnQgbW9kaWZpZXIgc3RhdGUgaWYgdGhpcyBldmVudCBpcyBhIGhh
cmR3YXJlCisgICAgICAgIGtleWJvYXJkIGZsYWdzIGNoYW5nZWQgZXZlbnQuCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQpOiBBZGRlZC4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXJk
d2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCk6CisgICAgICAgIEFkZGVkIG5ldyBtZXNz
YWdlIEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkLiBOb3RpZnkgdGhlIGZvY3Vz
ZWQgSFRNTCBpbnB1dCBlbGVtZW50IChpZiB3ZSBoYXZlCisgICAgICAgIG9uZSkgdGhhdCB0aGUg
Y2FwcyBsb2NrIHN0YXRlIG1heSBoYXZlIGNoYW5nZWQgd2hlbiB3ZSByZWNlaXZlIG1lc3NhZ2Ug
SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQKKyAgICAgICAgc28gdGhhdCB3ZSB0
b2dnbGUgdmlzaWJpbGl0eSBvZiB0aGUgY2FwcyBsb2NrIGluZGljYXRvci4KKwogMjAxOC0xMS0w
NiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjIzMDUyMyk6IENhcHMgbG9jayBpbmRpY2F0b3Igbm90IHNob3duIGluIHBhc3N3b3Jk
IGZpZWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYjM4N2Q3ZTc0NmIyYzU4NDQy
MjVlZmI3NWM1ZGUzMWFiM2JhOTRlYi4uM2FiNGE5MjMwYzA3YTBkOTE2YmRlYmJmYWEyNTc1OWFi
NTM3MTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDE4LTExLTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TXSBEcmF3IGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgY2FwcyBsb2NrIHN0YXRlIHdoZW4gYSBoYXJk
d2FyZSBrZXlib2FyZCBpcyBhdHRhY2hlZCBvciBkZXRhY2hlZC4KKworICAgICAgICAqIFdlYlZp
ZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgIChoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5
Q2hhbmdlZENhbGxiYWNrKTogQWRkZWQuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGluaXRXaXRo
RnJhbWU6XSk6IFJlZ2lzdGVyIGZvciBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hh
bmdlZCBub3RpZmljYXRpb25zLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkZWFsbG9jXSk6IFVu
cmVnaXN0ZXIgZnJvbSBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3Rp
ZmljYXRpb25zLgorCiAyMDE4LTExLTAyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBXZWJLaXQgc2hvdWxkIGRpc3BhdGNoIERPTSBldmVudHMgd2hl
biBhIG1vZGlmaWVyIGtleSBpcyBwcmVzc2VkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaAppbmRleCAxY2M4YjMxMTgwNDIwNTRi
M2EzYzJhNzZhNzk5MTQ0MWNkMWE0NWMzLi4xYjViZDk3ODRmYWM2M2UxYmFhZDM1NTlhYmZiN2Jl
ZTVjMTAxNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvR3Jh
cGhpY3NTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9H
cmFwaGljc1NlcnZpY2VzU1BJLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsNiArNDMsMTIgQEAgQ0ZTdHJpbmdSZWYgR1NTeXN0ZW1S
b290RGlyZWN0b3J5KHZvaWQpOwogdm9pZCBHU0ZvbnRJbml0aWFsaXplKHZvaWQpOwogdm9pZCBH
U0ZvbnRQdXJnZUZvbnRDYWNoZSh2b2lkKTsKIAordHlwZWRlZiBzdHJ1Y3QgX19HU0tleWJvYXJk
KiBHU0tleWJvYXJkUmVmOwordWludDMyX3QgR1NLZXlib2FyZEdldE1vZGlmaWVyU3RhdGUoR1NL
ZXlib2FyZFJlZik7CitCb29sZWFuIEdTRXZlbnRJc0hhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZCgp
OworCitleHRlcm4gY29uc3QgY2hhciAqa0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZE5vdGlmaWNhdGlvbjsKKwogV1RGX0VYVEVSTl9DX0VORAogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggN2M5NDcxNDg2NWRk
YTE5Y2ZhOWZjZTcwYzNiYmU3MmEyYjM1NTk2OS4uMWE4N2FmNWFmM2E0ODljMTEzNjYwYmIyZmQ1
NGY4Yzc2NmU0ZjRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9z
L1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1VJS2l0U1BJ
LmgKQEAgLTIzLDYgKzIzLDEwIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAorV1RGX0VYVEVSTl9DX0JFR0lOCit0eXBlZGVmIHN0cnVjdCBfX0dTS2V5Ym9hcmQq
IEdTS2V5Ym9hcmRSZWY7CitXVEZfRVhURVJOX0NfRU5ECisKICNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogCiAjaW1wb3J0IDxVSUtpdC9OU1BhcmFncmFwaFN0eWxlX1ByaXZhdGUuaD4KQEAg
LTQ0LDYgKzQ4LDcgQEAKIAogQGludGVyZmFjZSBVSUFwcGxpY2F0aW9uICgpCiArIChVSUFwcGxp
Y2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xhc3NpY01vZGU7CistIChHU0tleWJvYXJkUmVmKV9o
YXJkd2FyZUtleWJvYXJkOwogQGVuZAogCiAjZWxzZQpAQCAtNzUsMTAgKzgwLDkgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgVUlBcHBsaWNhdGlvblNjZW5lQ2xhc3NpY01vZGUpIHsKIEBl
bmQKIAogQGludGVyZmFjZSBVSUFwcGxpY2F0aW9uICgpCi0KIC0gKEJPT0wpX2lzQ2xhc3NpYzsK
ICsgKFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKV9jbGFzc2ljTW9kZTsKLQorLSAoR1NL
ZXlib2FyZFJlZilfaGFyZHdhcmVLZXlib2FyZDsKIEBlbmQKIAogQGludGVyZmFjZSBVSUNvbG9y
ICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZmJmYzc1ODcyNDIwOTkzNzgyNzc1NGU4MGNmNWJjZjZmYmJlYWVhYy4uMGI4NGEz
ZWM2ODg1OTQ4NzQ5MDYyY2RhMzBkNGY4NGNjNDhhODViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2NDMsNiArMTM2NDMs
NyBAQAogCQlDRTI4NDk4ODFDQTM2MTQ2MDBCNEE1N0YgLyogQ29udGVudFNlY3VyaXR5UG9saWN5
RGlyZWN0aXZlTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTmFtZXMuY3BwOyBwYXRoID0gY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0U1Q0IxQjMxNEVEQUI2RjAwQkIyNzk1IC8qIEV2ZW50U2VuZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNFNUZBMjUzMjA5RTQ4QzUwMDUxRDcwMCAvKiBDb250ZW50U2VjdXJp
dHlQb2xpY3lDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGVudFNlY3VyaXR5UG9saWN5Q2xp
ZW50Lmg7IHBhdGggPSBjc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFNjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1LZXlib2FyZEV2
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U2RDg5Mjk0QzdBQUNFMEFE
ODlCM0REIC8qIE1hdGhNTE1lbmNsb3NlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0U2REFERjcxQzU5MUU2QTAwM0Y2QTg4IC8qIENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBwYXRoID0gY3NwL0Nv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNFNkRBREY4MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg7IHBhdGggPSBjc3AvQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNDk5MSw2ICsyNDk5Miw3IEBACiAJCQkJQTE0OTc4NzAxQUJBRjNBNTAwQ0VGN0U0
IC8qIFBsYXRmb3JtQ29udGVudEZpbHRlci5oICovLAogCQkJCUJDNUM3NjI5MTQ5N0ZFMTQwMEJD
NDc3NSAvKiBQbGF0Zm9ybUV2ZW50LmggKi8sCiAJCQkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJF
IC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8sCisJCQkJQ0U2OEM4RkYyMTkyNEVFNTAwMTIz
MEIzIC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJOTM1QzQ3NjYwOUFDNEQ0
MzAwQTZBQUI0IC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oICovLAogCQkJCTkzNUM0NzY3MDlB
QzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCAqLywKIAkJCQlDNUJBQzE2RjE0
RTMwRTQ3MDAwMDg4MzcgLyogUGxhdGZvcm1QYXN0ZWJvYXJkLmggKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOTliNzRiZmI2NjNiZjk5NjgyZmI2NGZjMGFhZWIzZjM3
YTc4YzFhMC4uOTdiZDA0ZjA4NWFkZWY0MzY3M2ViNDc1YWJiNzViZjBhMGI3YjIwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMzE2Miw2ICszMTYyLDE0IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGtleUV2
ZW50KQogICAgIHJldHVybiB3YXNIYW5kbGVkOwogfQogCit2b2lkIEV2ZW50SGFuZGxlcjo6Y2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCkgY29uc3QKK3sKKyAgICBhdXRvKiBmb2N1c2VkRWxl
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKTsKKyAgICBpZiAoIWlz
PEhUTUxJbnB1dEVsZW1lbnQ+KGZvY3VzZWRFbGVtZW50KSkKKyAgICAgICAgcmV0dXJuOworICAg
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpmb2N1c2VkRWxlbWVudCkuY2Fwc0xvY2tTdGF0
ZU1heUhhdmVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2
ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50KQogewogICAg
IFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CkBAIC0zMTk0LDEyICszMjAyLDgg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXli
b2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQKICAgICB9CiAjZW5kaWYKIAotICAgIGlmIChpbml0
aWFsS2V5RXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkgewotICAg
ICAgICBpZiAoYXV0byogZWxlbWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1l
bnQoKSkgewotICAgICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KSkK
LSAgICAgICAgICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuY2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKGlu
aXRpYWxLZXlFdmVudC53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19DQVBJVEFMKQorICAg
ICAgICBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShQQU5fU0NS
T0xMSU5HKQogICAgIGlmIChtX2ZyYW1lLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnBhblNj
cm9sbEluUHJvZ3Jlc3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZjVm
ZTA4ZjYxNmU1MmQxNzQwMzQ0NTc4MzU4Y2IwZGRiMjBkOWU4NC4uOTJmYmM1YWZjZjg4ZWIyMDQ0
NDA0OTIwMTJjYzlkYTg0MDZiYjQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBA
IC0yNTYsNiArMjU2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxl
QWNjZXNzS2V5KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wga2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7CiAgICAgdm9p
ZCBkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCkgY29uc3Q7CiAKICAg
ICBib29sIGFjY2Vzc2liaWxpdHlQcmV2ZW50c0V2ZW50UHJvcGFnYXRpb24oS2V5Ym9hcmRFdmVu
dCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3Zl
bWVudEZvckFjY2Vzc2liaWxpdHkoS2V5Ym9hcmRFdmVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KaW5kZXggNjMxZGQxNDBkN2JlYmQ3Y2Zi
OGZmNTRlMzM5MjZlNGUzODhhYzUxZC4uMDVjMGE4Y2U3MDgyMjdjM2Y1NGIwOGM4NzYxODY1Mzgy
MzIyYzY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZl
bnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENv
Y29hLm1tCkBAIC0yNyw4ICsyNywxMCBAQAogI2ltcG9ydCAiS2V5RXZlbnRDb2NvYS5oIgogCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNp
bXBvcnQgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW1wb3J0IDx3dGYvQVNDSUlDVHlwZS5o
PgorI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTM5LDYgKzQxLDIwIEBAIHVzaW5n
IG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKK3sKKyAgICByZXR1cm4gY3VycmVu
dFN0YXRlT2ZNb2RpZmllcktleXMoKS5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6
Q2Fwc0xvY2tLZXkpOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVu
dE1vZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtl
eSwgYm9vbCYgbWV0YUtleSkKK3sKKyAgICBhdXRvIGN1cnJlbnRNb2RpZmllcnMgPSBjdXJyZW50
U3RhdGVPZk1vZGlmaWVyS2V5cygpOworICAgIHNoaWZ0S2V5ID0gY3VycmVudE1vZGlmaWVycy5j
b250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOworICAgIGN0cmxLZXkg
PSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJs
S2V5KTsKKyAgICBhbHRLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOworICAgIG1ldGFLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNv
bnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKK30KKwogLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWtleS8KIFN0cmluZyBrZXlGb3JDaGFyQ29kZSh1bmlj
aGFyIGNoYXJDb2RlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0tleUV2ZW50SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0tleUV2ZW50SU9T
Lm1tCmluZGV4IDE5Y2E5YmZkZjRiMTY4YTMxMDc0MzI0MmNkYjE5MzFiYzA5MzMwYmUuLjliZDU3
ZTc0YWM4ODJiNTQzNzQ1NTgyMDk0MzcyYzdjYWY3ZDkzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KQEAgLTMxLDggKzMxLDEwIEBACiAjaW1wb3J0ICJL
ZXlFdmVudENvY29hLmgiCiAjaW1wb3J0ICJLZXlFdmVudENvZGVzSU9TLmgiCiAjaW1wb3J0ICJO
b3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiV2ViRXZlbnQuaCIKICNpbXBvcnQgIldpbmRvd3NL
ZXlib2FyZENvZGVzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+CisjaW1w
b3J0IDx3dGYvTWFpblRocmVhZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCkBAIC0zMTIs
MTkgKzMxNCwyOSBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5
RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogICAgIH0KIH0KIAotYm9vbCBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKK09wdGlvblNldDxQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50U3Rh
dGVPZk1vZGlmaWVyS2V5cygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19CisgICAgLy8gc19jdXJyZW50TW9kaWZpZXJzIGlzIG9ubHkgc2V0IGluIHRoZSBX
ZWJDb250ZW50IHByb2Nlc3MsIG5vdCBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBpZiAoc19jdXJy
ZW50TW9kaWZpZXJzKSB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAg
IHJldHVybiAqc19jdXJyZW50TW9kaWZpZXJzOworICAgIH0KIAotdm9pZCBQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBj
dHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wmIG1ldGFLZXkpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICBzaGlmdEtleSA9IGZhbHNlOwotICAgIGN0cmxLZXkgPSBmYWxzZTsKLSAgICBh
bHRLZXkgPSBmYWxzZTsKLSAgICBtZXRhS2V5ID0gZmFsc2U7CisgICAgOjpXZWJFdmVudEZsYWdz
IGN1cnJlbnRNb2RpZmllcnMgPSBbOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXTsKKworICAgIE9w
dGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzOworICAgIGlmIChjdXJy
ZW50TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrU2hpZnRLZXkpCisgICAgICAgIG1vZGlm
aWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKKyAgICBpZiAoY3Vy
cmVudE1vZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza0NvbnRyb2xLZXkpCisgICAgICAgIG1v
ZGlmaWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkN0cmxLZXkpOworICAgIGlmIChj
dXJyZW50TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrT3B0aW9uS2V5KQorICAgICAgICBt
b2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOworICAgIGlmIChj
dXJyZW50TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrQ29tbWFuZEtleSkKKyAgICAgICAg
bW9kaWZpZXJzLmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7CisgICAgaWYg
KGN1cnJlbnRNb2RpZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tMZWZ0Q2Fwc0xvY2tLZXkpCisg
ICAgICAgIG1vZGlmaWVycy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2NrS2V5
KTsKKworICAgIHJldHVybiBtb2RpZmllcnM7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkV2ZW50LmgKaW5kZXggM2JkMzZiZjczNzRhZGY1MGE4ZmEzYzlmMGQ0MTA5MzI0NzE0
ZWUzNS4uMjI0YTA3ZTIyNzg2NjNiZDJhYzYwZDk4ZDIxMmRjOGY1Mjc2YmI1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2ZW50LmgKQEAgLTIxNiw2ICsyMTYsOCBAQCBXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIFdlYkV2ZW50IDogTlNPYmplY3QgewogCiBAcHJvcGVydHkobm9u
YXRvbWljKSBCT09MIHdhc0hhbmRsZWQ7CiAKK0Bwcm9wZXJ0eSAoY2xhc3MsIHJlYWRvbmx5KSBX
ZWJFdmVudEZsYWdzIG1vZGlmaWVyRmxhZ3M7CisKIEBlbmQKIAogI2VuZGlmIC8vIFRBUkdFVF9P
U19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVu
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQppbmRleCBlNjc4
ZTllNDRiNmY3ODgyZTc0OTNiNTU2NmRlMDFlNzIzZDA3ZjRiLi5hNmJkNzMzMzQ1M2MxNTdmMTVj
OGE4NWMwOTY2NWI0NWFhZmQ0M2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViRXZlbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkV2
ZW50Lm1tCkBAIC0zNiw2ICszNiwxNCBAQAogI2ltcG9ydCAiS2V5RXZlbnRDb2Rlc0lPUy5oIgog
I2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvSU9LaXRT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvaW9zL1VJS2l0U1BJLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4K
KworU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlB
cHBsaWNhdGlvbik7CisKKyNkZWZpbmUgVUlBcHBsaWNhdGlvbiBnZXRVSUFwcGxpY2F0aW9uQ2xh
c3MoKQogCiB1c2luZyBXZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvcktleUNvZGU7CiB1c2luZyBX
ZWJDb3JlOjp3aW5kb3dzS2V5Q29kZUZvckNoYXJDb2RlOwpAQCAtNDkxLDYgKzQ5OSwxMSBAQCAt
IChmbG9hdClnZXN0dXJlUm90YXRpb24KICAgICByZXR1cm4gX2dlc3R1cmVSb3RhdGlvbjsKIH0K
IAorKyAoV2ViRXZlbnRGbGFncyltb2RpZmllckZsYWdzCit7CisgICAgcmV0dXJuIEdTRXZlbnRJ
c0hhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZCgpID8gR1NLZXlib2FyZEdldE1vZGlmaWVyU3RhdGUo
W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dLl9oYXJkd2FyZUtleWJvYXJkKSA6IDA7
Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KaW5kZXggYjA4YTUzZWU0M2Q2MWZkYjlm
NTZkMDFlNWQ0NDNhYTA0ZDE5YzUyYi4uMmJjYjUxMGM3YTRjODUyNGU2OGJhMTRhNTAxZmRjOWU1
ZjBiMmE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQpA
QCAtMjU4LDIxICsyNTgsNiBAQCB2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1
YXRlS2V5RG93bkV2ZW50KFR5cGUgdHlwZSwgYm9vbCBiYWNrd2FyZENvbQogICAgIH0KIH0KIAot
Ym9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBzTG9ja1N0YXRlKCkKLXsKLSAg
ICBhdXRvIGN1cnJlbnRNb2RpZmllcnMgPSBjdXJyZW50U3RhdGVPZk1vZGlmaWVyS2V5cygpOwot
ICAgIHJldHVybiBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlm
aWVyOjpDYXBzTG9ja0tleSk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpnZXRD
dXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwgYm9vbCYg
YWx0S2V5LCBib29sJiBtZXRhS2V5KQotewotICAgIGF1dG8gY3VycmVudE1vZGlmaWVycyA9IGN1
cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKCk7Ci0gICAgc2hpZnRLZXkgPSBjdXJyZW50TW9kaWZp
ZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7Ci0gICAgY3Ry
bEtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6
OkN0cmxLZXkpOwotICAgIGFsdEtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMoUGxhdGZv
cm1FdmVudDo6TW9kaWZpZXI6OkFsdEtleSk7Ci0gICAgbWV0YUtleSA9IGN1cnJlbnRNb2RpZmll
cnMuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOwotfQotCiBPcHRp
b25TZXQ8UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKQogewogI2lmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRP
V1NFUlZFUl9CTE9DS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
b2NvYS5oCmluZGV4IGE0NjRjMTA0MDJmMDQ3MTMyODZiNDQ2MGM3MTE4MzdhNjI3ODdkZTAuLmYx
ODg3NDI0ZjYzZjRlOWM3OTgxZGJjM2Q2NGE5ODNhYTNiMWU0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApAQCAtMzYsNiArMzYsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlclRoZW1lQ29jb2EgOiBwdWJsaWMgUmVuZGVyVGhl
bWUgewogcHJpdmF0ZToKKyAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25z
dCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3QgZmluYWw7CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogICAgIHZvaWQgYWRqdXN0QXBwbGVQYXlCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVu
ZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWlu
dEFwcGxlUGF5QnV0dG9uKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ29jb2EubW0KaW5kZXggZmVhY2ZjNWIzM2M3NWQ2YTA5YTJlOGNhYWNjOTBjMzI0MGEy
MjE4OC4uYjRhYWY2NDIxZDJiNmQzYzViMzBkZWFhNzRlM2U3MjYzMjlkMmFjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EubW0KQEAgLTI3LDYgKzI3LDcg
QEAKICNpbXBvcnQgIlJlbmRlclRoZW1lQ29jb2EuaCIKIAogI2ltcG9ydCAiR3JhcGhpY3NDb250
ZXh0Q0cuaCIKKyNpbXBvcnQgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbXBvcnQgIlJlbmRlclRl
eHQuaCIKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCkBAIC01MSw2ICs1MiwxMSBAQCBTT0ZUX0xJ
TktfTUFZX0ZBSUwoUGFzc0tpdCwgUEtEcmF3QXBwbGVQYXlCdXR0b24sIHZvaWQsIChDR0NvbnRl
eHRSZWYgY29udGV4dCwgQwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgUmVuZGVyVGhl
bWVDb2NvYTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1l
bnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQuaXNQYXNzd29yZEZpZWxk
KCk7Cit9CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiBzdGF0aWMgY29uc3QgYXV0byBhcHBs
ZVBheUJ1dHRvbk1pbmltdW1XaWR0aCA9IDE0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lSU9TLmgKaW5kZXggY2E4YzBiYTJmMjBjN2FjMGZhM2MyZDRlNmExMzViOGJhNjFj
ODZkMi4uYTVhMzBhYzJhOTQxYmIyYzM1OGY0NGE3YTZmZjdjNmJmNWYyMDA0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTExNyw3ICsxMTcsNiBAQCBw
cm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3Qg
SFRNTElucHV0RWxlbWVudCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkSGF2ZUNh
cHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShWSURFTykKICAgICBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQpp
bmRleCAxZDE3YWVhZjJkN2Q1ZTI5NDBlNDMxZDE0NGFkMWFjZmFhNWJjYTI5Li41MmI0ZDc0NWI5
OTczM2FjNmFmMGI1YjcyYzM2MGI2YjJkNGIwYTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMTM1LDExICsxMTM1LDYgQEAgYm9vbCBSZW5kZXJU
aGVtZUlPUzo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNv
bnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1lSU9TOjpzaG91bGRI
YXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxlbWVudCYpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiBSZW5kZXJUaGVt
ZUlPUzo6Y2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQgdmFsdWVJRCkgY29u
c3QKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udENhc2NhZGVEZXNjcmlwdGlvbj4g
c3lzdGVtRm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5k
ZXggZDg1NzYxYWJjOWIxMmRmZGRhNTU0NWRkMTRmODAzNDk2Mzc5NTBkNy4uOGNlZDg4NDQxYzgy
NmIxZDA4OGMzMzk5Yzc2ZTUxNjI2ZGJiZGFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKQEAgLTE2NCw4ICsxNjQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wg
c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQog
I2VuZGlmCiAKLSAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1M
SW5wdXRFbGVtZW50JikgY29uc3QgZmluYWw7Ci0KICAgICBib29sIHBhaW50U25hcHNob3R0ZWRQ
bHVnaW5PdmVybGF5KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggM2ZiZDYwZDYxNzE3
OWQ4MGIxOTI2NTlhOWI4ZjBiYzljOWU2Y2RkNS4uZTkxMjE1MDYwZWY5YWI4ZDYxZDM1ZWIyYzVi
YWI5MjhmYzI4MzYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQpAQCAtMjM0MiwxMSArMjM0Miw2IEBAIHZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdFNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjCiAgICAg
fQogfQogCi1ib29sIFJlbmRlclRoZW1lTWFjOjpzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3Io
Y29uc3QgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsKLSAgICByZXR1cm4gZWxl
bWVudC5pc1Bhc3N3b3JkRmllbGQoKTsKLX0KLQogTlNQb3BVcEJ1dHRvbkNlbGwqIFJlbmRlclRo
ZW1lTWFjOjpwb3B1cEJ1dHRvbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BvcHVwQnV0dG9uKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDMwYjI4MzY4
MzJhZTYwOTkzN2M0MzczMDM3ZjRmMDcxM2ZlNGU5NTUuLmJjYmU2MGUyNjg0NmM2NWE2NTMxNzBm
NDk3NTk1ZWM1M2JmNDk5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtp
dFNQSS5oCkBAIC0xMTMsNiArMTEzLDggQEAKICNpbXBvcnQgPFVJS2l0L05TSXRlbVByb3ZpZGVy
K1VJS2l0QWRkaXRpb25zLmg+CiAjZW5kaWYKIAorTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKwog
I2lmIEhBVkUoTElOS19QUkVWSUVXKQogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVUlQcmV2
aWV3SXRlbVR5cGUpIHsKICAgICBVSVByZXZpZXdJdGVtVHlwZU5vbmUsCkBAIC00MjQsMTIgKzQy
Niw2IEBAIHR5cGVkZWYgZW51bSB7CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqX2hv
c3RBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXI7CiBAZW5kCiAKLSNpZiBfX0lQSE9ORV9PU19W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAKLUBpbnRlcmZhY2UgTlNVUkwgKCkKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFRpdGxlOikgTlNTdHJpbmcgKl90aXRs
ZTsKLUBlbmQKLSNlbmRpZgotCiBAcHJvdG9jb2wgVUlWaWV3Q29udHJvbGxlckNvbnRleHRUcmFu
c2l0aW9uaW5nRXggPFVJVmlld0NvbnRyb2xsZXJDb250ZXh0VHJhbnNpdGlvbmluZz4KIC0gKHZv
aWQpX19ydW5BbG9uZ3NpZGVBbmltYXRpb25zOwogLSAodm9pZClfaW50ZXJhY3Rpdml0eURpZENo
YW5nZTooQk9PTClpc0ludGVyYWN0aXZlOwpAQCAtMTAwMiw4ICs5OTgsMTggQEAgdHlwZWRlZiBO
U0ludGVnZXIgVUlDb21wb3NpdGluZ01vZGU7CiBAcHJvcGVydHkgKGFzc2lnbiwgbm9uYXRvbWlj
LCBzZXR0ZXI9X3NldENlbnRlcnNQb3BvdmVySWZTb3VyY2VWaWV3Tm90U2V0OiwgZ2V0dGVyPV9j
ZW50ZXJzUG9wb3ZlcklmU291cmNlVmlld05vdFNldCkgQk9PTCBfY2VudGVyc1BvcG92ZXJJZlNv
dXJjZVZpZXdOb3RTZXQ7CiBAZW5kCiAKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjaWYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwCitAaW50ZXJmYWNlIE5TVVJM
ICgpCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgbnVsbGFibGUsIHNldHRlcj1fc2V0VGl0
bGU6KSBOU1N0cmluZyAqX3RpdGxlOworQGVuZAorI2VuZGlmCisKICNlbmRpZiAvLyBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAaW50ZXJmYWNl
IFVJUGh5c2ljYWxLZXlib2FyZEV2ZW50IDogVUlQcmVzc2VzRXZlbnQKIEBlbmQKIApAQCAtMTA0
MywxNiArMTA0OSwyNCBAQCB0eXBlZGVmIE5TSW50ZWdlciBVSUNvbXBvc2l0aW5nTW9kZTsKIC0g
KENHRmxvYXQpZ2V0VmVydGljYWxPdmVybGFwRm9yVmlldzooVUlWaWV3ICopdmlldyB1c2luZ0tl
eWJvYXJkSW5mbzooTlNEaWN0aW9uYXJ5ICopaW5mbzsKIEBlbmQKIAorTlNfQVNTVU1FX05PTk5V
TExfRU5ECisKICNpZiBfX2hhc19pbmNsdWRlKDxVSUtpdC9VSVRleHRJbnB1dE11bHRpRG9jdW1l
bnQuaD4pCiAjaW1wb3J0IDxVSUtpdC9VSVRleHRJbnB1dE11bHRpRG9jdW1lbnQuaD4KICNlbHNl
CitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAcHJvdG9jb2wgVUlUZXh0SW5wdXRNdWx0aURv
Y3VtZW50IDxOU09iamVjdD4KIEBvcHRpb25hbAogLSAoQk9PTClfcmVzdG9yZUZvY3VzV2l0aFRv
a2VuOihpZCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4pdG9rZW47CiAtICh2b2lkKV9wcmVz
ZXJ2ZUZvY3VzV2l0aFRva2VuOihpZCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4pdG9rZW4g
ZGVzdHJ1Y3RpdmVseTooQk9PTClkZXN0cnVjdGl2ZWx5OwogQGVuZAorCitOU19BU1NVTUVfTk9O
TlVMTF9FTkQKICNlbmRpZgogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBAaW50ZXJmYWNl
IFVJUmVzcG9uZGVyICgpCiAtIChVSVJlc3BvbmRlciAqKWZpcnN0UmVzcG9uZGVyOwogQGVuZApA
QCAtMTA2MSwxMyArMTA3NSwxOSBAQCB0eXBlZGVmIE5TSW50ZWdlciBVSUNvbXBvc2l0aW5nTW9k
ZTsKIC0gKHZvaWQpX3N0b3BJbnRlcmFjdGl2ZVRyYW5zaXRpb247CiBAZW5kCiAKK05TX0FTU1VN
RV9OT05OVUxMX0VORAorCiAjaWYgX19oYXNfaW5jbHVkZSg8VUlLaXQvVUlUZXh0QXV0b2ZpbGxT
dWdnZXN0aW9uLmg+KQogI2ltcG9ydCA8VUlLaXQvVUlUZXh0QXV0b2ZpbGxTdWdnZXN0aW9uLmg+
CiAjZWxzZQorTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKwogQGludGVyZmFjZSBVSVRleHRBdXRv
ZmlsbFN1Z2dlc3Rpb24gOiBVSVRleHRTdWdnZXN0aW9uCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
YXNzaWduKSBOU1N0cmluZyAqdXNlcm5hbWU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBOU1N0cmluZyAqcGFzc3dvcmQ7CiBAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAogI2Vu
ZGlmCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQo
KQpAQCAtMTA4NCw2ICsxMTA0LDggQEAgc3RhdGljIGlubGluZSBib29sIGN1cnJlbnRVc2VySW50
ZXJmYWNlSWRpb21Jc1BhZCgpCiAKIFdURl9FWFRFUk5fQ19CRUdJTgogCitOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgorCiBCT09MIFVJS2V5Ym9hcmRFbmFibGVkSW5wdXRNb2Rlc0FsbG93T25lVG9N
YW55U2hvcnRjdXRzKHZvaWQpOwogQk9PTCBVSUtleWJvYXJkRW5hYmxlZElucHV0TW9kZXNBbGxv
d0NoaW5lc2VUcmFuc2xpdGVyYXRpb25Gb3JUZXh0KE5TU3RyaW5nICopOwogCkBAIC0xMTMwLDQg
KzExNTIsNiBAQCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBVSVByZXZpZXdEYXRhQXR0YWNobWVu
dExpc3RJc0NvbnRlbnRNYW5hZ2VkOwogCiBVSUVkZ2VJbnNldHMgVUlFZGdlSW5zZXRzQWRkKFVJ
RWRnZUluc2V0cyBsaHMsIFVJRWRnZUluc2V0cyByaHMsIFVJUmVjdEVkZ2UpOwogCitOU19BU1NV
TUVfTk9OTlVMTF9FTkQKKwogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOWVjNjU5OGQ3ZjU2YWEzM2U4NzUx
OTdlNDlhNzcyZmQ1MzNiNjA4Zi4uZmY3ZDkwYTgyMjBlYzFlY2RmYzkwYWUyZDQ4YjY0OTNmNDRh
ZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
PgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRs
ZW1lbnRzLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0Vf
TE9HX0lGKF9wYWdlICYmIF9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgVmlld1N0
YXRlLCBfX1ZBX0FSR1NfXykKQEAgLTcwMiw2ICs3MDMsOCBAQCAtICh2b2lkKV9pbml0aWFsaXpl
V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
CiAKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250ZW50UHJvdmlkZXJSZWdpc3RyeV0gYWRkUGFn
ZToqX3BhZ2VdOwogICAgIF9wYWdlLT5zZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShbX2NvbmZp
Z3VyYXRpb24gaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHNdKTsKKworICAgIENGTm90aWZpY2F0
aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlD
ZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhhcmR3YXJlS2V5Ym9hcmRB
dmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5n
V2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9y
Q29hbGVzY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC04MzksNiArODQyLDgg
QEAgLSAodm9pZClkZWFsbG9jCiAgICAgW1tfY29uZmlndXJhdGlvbiBfY29udGVudFByb3ZpZGVy
UmVnaXN0cnldIHJlbW92ZVBhZ2U6Kl9wYWdlXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwogICAgIFtfc2Nyb2xsVmlldyBz
ZXRJbnRlcm5hbERlbGVnYXRlOm5pbF07CisKKyAgICBDRk5vdGlmaWNhdGlvbkNlbnRlclJlbW92
ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIChf
X2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5nIHN0cmlu
Z1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5n
ZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFDQ0VTU0lC
SUxJVFlfRVZFTlRTKQpAQCAtMzA5OSw2ICszMTA0LDEzIEBAIC0gKHZvaWQpX2tleWJvYXJkV2ls
bEhpZGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAgW3NlbGYgX2tleWJvYXJk
Q2hhbmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2VySW5mbyBhZGp1c3RTY3JvbGxWaWV3OllF
U107CiB9CiAKK3N0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2Vk
Q2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmlu
Z1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAgICBBU1NFUlQob2JzZXJ2
ZXIpOworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IChfX2JyaWRnZSBXS1dlYlZpZXcgKilvYnNl
cnZlcjsKKyAgICB3ZWJWaWV3Ll9wYWdlLT5oYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hh
bmdlZCgpOworfQorCiAtICh2b2lkKV93aW5kb3dEaWRSb3RhdGU6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKCFfb3ZlcnJpZGVzSW50ZXJmYWNlT3JpZW50YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjOGY4NmRlODUz
YmMyMjBjMDY4MDFlMTY0ODM4ODEzODNlM2ZjYjgyLi44ODVkZWU1Njc5MjZiNWY0M2U1OGUyZTgw
ZGYzOWUzMmMxMjdkYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTgxMzEsNyArODEzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJc1ZpZXdWaXNp
YmxlKGJvb2wmIHJlc3VsdCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUN1cnJlbnRNb2Rp
ZmllclN0YXRlKCkKIHsKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJ
TkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9D
RVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBh
dXRvIG1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudFN0YXRlT2ZNb2Rp
ZmllcktleXMoKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVwZGF0
ZUN1cnJlbnRNb2RpZmllclN0YXRlKG1vZGlmaWVycyksIG1fcGFnZUlEKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0NjgyZDc0YzEyZjA3NzAzOWRl
OGIxNWYwNDU0ZWNkOThlNjVjZWNjLi40MzViOWIwOTA3NjdiMjIxZmJkMGMwNjhiZjZhMjdiZDE1
NDg4ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjQ1LDYg
KzY0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0
eShib29sKTsKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRpb24oY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgcG9zaXRpb25JbldpbmRvdyk7CiAgICAgdm9pZCBjYW5jZWxBdXRvc2Ny
b2xsKCk7CisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpOwog
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkSGFuZGxlU3RhcnREYXRh
SW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCk7CiAgICAgdm9pZCBkaWRIYW5kbGVBZGRp
dGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKTsKQEAgLTEzNjksNiArMTM3MCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2VzdGlvbnMoKTsKICNlbmRpZgogCisgICAg
dm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOworCiBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWludDY0X3QgcGFnZUlELCBS
ZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKQEAgLTE4NTEsOCArMTg1NCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wRGlzcGxh
eUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgdXBkYXRlQ3Vy
cmVudE1vZGlmaWVyU3RhdGUoKTsKLQogICAgIHZvaWQgcmVwb3J0UGFnZUxvYWRSZXN1bHQoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0pOwogCiAgICAgdm9pZCBjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KaW5kZXggZTBmM2MwYTAwMzRiZjE0OWIxMjA1OTg2ODAxMGEzMGJhYWEwMjMwNC4uYzRm
NTdlMGE4NDcyYzNkOWMwY2Q3NTNjYzBmYzk4YjQ3ZTIyZTc2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMzYzLDcgKzM2Myw5
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnBvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2UoY29u
c3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzYXZlSW1h
Z2VUb0xpYnJhcnkoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBpbWFnZUJ1ZmZlcikKIHsKICAgICBSZXRh
aW5QdHI8TlNEYXRhPiBpbWFnZURhdGEgPSBpbWFnZUJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCk7Ci0g
ICAgVUlJbWFnZURhdGFXcml0ZVRvU2F2ZWRQaG90b3NBbGJ1bShpbWFnZURhdGEuZ2V0KCksIG5p
bCwgTlVMTCwgTlVMTCk7CisgICAgSUdOT1JFX05VTExfQ0hFQ0tfV0FSTklOR1NfQkVHSU4KKyAg
ICBVSUltYWdlRGF0YVdyaXRlVG9TYXZlZFBob3Rvc0FsYnVtKGltYWdlRGF0YS5nZXQoKSwgbmls
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBJR05PUkVfTlVMTF9DSEVDS19XQVJOSU5HU19FTkQK
IH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3Io
Y29uc3QgU3RyaW5nJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDQyMGI2MjhkMDZkY2Q3YjM5OGMyMmE3
MjRiZGZiMGM3NTNjOTM4ZWMuLjg4MWQ0OTgwMGE0YWQzM2NiNzc3ZWM4ODkzZWQwNmMyZTU2Zjkx
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTUsNiArOTUsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9j
Zy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvRGF0YURldGVjdG9y
c0NvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0RhdGFEZXRlY3RvcnNVSVNQSS5oPgor
I2ltcG9ydCA8cGFsL3NwaS9pb3MvVUlLaXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9PcHRpb25hbC5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1NldEZvclNjb3BlLmg+
CkBAIC0zNzU2LDkgKzM3NTcsMTMgQEAgLSAoQk9PTClyZXF1aXJlc0tleUV2ZW50cwogCiAtICh2
b2lkKV9oYW5kbGVLZXlVSUV2ZW50Oig6OlVJRXZlbnQgKilldmVudAogeworICAgIGJvb2wgaXNI
YXJkd2FyZUtleWJvYXJkRXZlbnQgPSAhIWV2ZW50Ll9oaWRFdmVudDsKKyAgICBpZiAoaXNIYXJk
d2FyZUtleWJvYXJkRXZlbnQgJiYgKChVSVBoeXNpY2FsS2V5Ym9hcmRFdmVudCAqKWV2ZW50KS5f
aW5wdXRGbGFncyAmIGtVSUtleWJvYXJkSW5wdXRNb2RpZmllckZsYWdzQ2hhbmdlZCkKKyAgICAg
ICAgX3BhZ2UtPnVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCk7CisKICAgICAvLyBXZSBvbmx5
IHdhbnQgdG8gaGFuZGxlIGtleSBldmVudCBmcm9tIHRoZSBoYXJkd2FyZSBrZXlib2FyZCB3aGVu
IHdlIGFyZQogICAgIC8vIGZpcnN0IHJlc3BvbmRlciBhbmQgd2UgYXJlIG5vdCBpbnRlcmFjdGlu
ZyB3aXRoIGVkaXRhYmxlIGNvbnRlbnQuCi0gICAgaWYgKFtzZWxmIGlzRmlyc3RSZXNwb25kZXJd
ICYmIGV2ZW50Ll9oaWRFdmVudCAmJiAhX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRp
dGFibGUpIHsKKyAgICBpZiAoW3NlbGYgaXNGaXJzdFJlc3BvbmRlcl0gJiYgaXNIYXJkd2FyZUtl
eWJvYXJkRXZlbnQgJiYgIV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKSB7
CiAgICAgICAgIFtzZWxmIGhhbmRsZUtleUV2ZW50OmV2ZW50XTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CmluZGV4IDM4NjU4ODQxMTMxOTRiZWM5NDg0YjY0NmNlZDAwM2MxZjI0NjFmMGUuLjk5ZGZmZTUx
YjRjMmI5YTJiMWRiYTBiNzJiMGU2MGRkNTFmMzQ5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTMsNiArNTMsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlckFnZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1ZhbGlkYXRpb25CdWJibGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
V2ViRXZlbnQuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogI2lmIFVTRShR
VUlDS19MT09LKQpAQCAtMTA4OSw2ICsxMDkwLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRJ
c1Njcm9sbGluZ09yWm9vbWluZyhib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKQogICAgICAgICBt
X3ZhbGlkYXRpb25CdWJibGUtPnNob3coKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmhhcmR3
YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVDdXJyZW50TW9k
aWZpZXJTdGF0ZSgpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6SGFy
ZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKSwgbV9wYWdlSUQpOworfQorCiAjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRIYW5kbGVT
dGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQwNzZlYTdiNzQ1MjkzZWRjZTA3N2I4
MjhmYzVjM2M2NWFkNmZhOTQuLjk5ZjQ0MjRiN2Y5ZmExYjJhZmVkYTI4ZGU1ZTQ3MWViYTAyZTYw
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTkx
Myw2ICs5MTMsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHBsYXRmb3JtUHJlZmVyc1RleHRMZWdp
YmlsaXR5QmFzZWRab29tU2NhbGluZygpIGNvbnN0OwogICAgIGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0Q29uZmlndXJhdGlvbiYgdmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3cG9ydENvbmZpZ3VyYXRpb247IH0KKworICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWQoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgppbmRleCBmZDQzMGQ2OWFlMjU0NWIyMDlmMjI2N2E3ZWFlNTZkYjI1ZDkwZmU0
Li43NjI2ZmJiMjY1MzRmNDc2NjdkZDYyMWRmNzc3ZjUwMzA2ODA1MmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAg
LTEwNiw2ICsxMDYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTdGFydEF1dG9zY3JvbGxBdFBvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9zaXRpb25J
bldpbmRvdykKICAgICBDYW5jZWxBdXRvc2Nyb2xsKCkKICAgICBSZXF1ZXN0QXNzaXN0ZWROb2Rl
SW5mb3JtYXRpb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgSGFyZHdhcmVL
ZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQogI2VuZGlmCiAKICAgICBTZXRDb250cm9sbGVk
QnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggOGFhZmRiMzU1YmVhMjFlNGNm
MDhkODQwMTI4OGQ1ZmMwMzNmY2YxOC4uYjFmNDRhN2NhNGI0OTRiMTM1YzUwYzE5NWZkMDA4MGNk
M2U0MWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTMwODYsNiArMzA4NiwxMiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxh
dGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKK3ZvaWQgV2ViUGFnZTo6aGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQor
eworICAgIGlmIChhdXRvKiBmb2N1c2VkRnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LmZvY3VzZWRGcmFtZSgpKQorICAgICAgICBmb2N1c2VkRnJhbWUtPmV2ZW50SGFuZGxlcigpLmNh
cHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpOworfQorCiAjaWYgVVNFKFFVSUNLX0xPT0spCiB2
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KGNvbnN0
IFN0cmluZyYgcGFzc3dvcmQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJIVE1MVmlldy5tbQppbmRleCA2ZGRhY2ExMDhjMzdkZmM0NGU3M2M5NzBiZTdjNjU4NjZh
ODBhYTQwLi45MGEwMjU5OTA3Y2MxZDliZjgzMTgwNjEyM2I0NTNhNWEwNWE5ZTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE2NCw3
ICsxNjQsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9XQUtTY3JvbGxWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dBS1dpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XS0dyYXBoaWNzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZl
bnQuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNlbmRp
ZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTgxNCw2ICs4MTYsMTYgQEAgc3RhdGlj
IENhY2hlZEltYWdlQ2xpZW50JiBwcm9taXNlZERhdGFDbGllbnQoKQogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYk1hcmtlZFRleHRVcGRhdGVk
Tm90aWZpY2F0aW9uID0gQCJXZWJNYXJrZWRUZXh0VXBkYXRlZCI7CisKK3N0YXRpYyB2b2lkIGhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25D
ZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGlj
dGlvbmFyeVJlZikKK3sKKyAgICBBU1NFUlQob2JzZXJ2ZXIpOworICAgIFdlYlRocmVhZFJ1bihe
eworICAgICAgICBXZWJIVE1MVmlldyAqd2ViVmlldyA9IChfX2JyaWRnZSBXZWJIVE1MVmlldyAq
KW9ic2VydmVyOworICAgICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3dlYlZpZXcg
X2ZyYW1lXSkpCisgICAgICAgICAgICBjb3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmNhcHNMb2Nr
U3RhdGVNYXlIYXZlQ2hhbmdlZCgpOworICAgIH0pOworfQogI2VuZGlmCiAKIEBpbnRlcmZhY2Ug
V2ViSFRNTFZpZXcgKFdlYkhUTUxWaWV3RmlsZUludGVybmFsKQpAQCAtMjYxMCw2ICsyNjIyLDcg
QEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lCiAgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSAKICAgICAgICAgICAgIGFkZE9ic2VydmVyOnNlbGYgc2Vs
ZWN0b3I6QHNlbGVjdG9yKG1hcmtlZFRleHRVcGRhdGU6KSAKICAgICAgICAgICAgICAgICAgICBu
YW1lOldlYk1hcmtlZFRleHRVcGRhdGVkTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIENG
Tm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3
aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhhcmR3YXJl
S2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilbTlNTdHJp
bmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lv
bkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0yNjI2
LDYgKzI2MzksNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZl
cjpzZWxmIG5hbWU6V2ViTWFya2VkVGV4dFVwZGF0ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07
CisgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldERhcndpbk5vdGlmeUNlbnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxm
KSwgKENGU3RyaW5nUmVmKVtOU1N0cmluZyBzdHJpbmdXaXRoVVRGOFN0cmluZzprR1NFdmVudEhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkTm90aWZpY2F0aW9uXSwgbnVsbHB0cik7
CiAjZW5kaWYKIAogICAgIC8vIFdlIGNhbid0IGFzc2VydCB0aGF0IGNsb3NlIGhhcyBhbHJlYWR5
IGJlZW4gY2FsbGVkIGJlY2F1c2UKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDBkYjEwOGY3NzA3YWE1OWQ2ODE3
MTNhMTZiYWI0OWJiYjYxMDE2MTAuLjMxNGZmZmZiMGJiYWQwMTE2NTU1OGM2MDc1MGI3OWY5ZGVh
MjcwMDUgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE4LTExLTA2ICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9j
ayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEV4cG9zZSBzb21lIG1vcmUgc3ltYm9scy4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2
aWNlcy50YmQ6CisKIDIwMTgtMDYtMjcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEVuYWJsZSBXZWJLaXQgaU9TIDEyIGJ1aWxkCmRpZmYgLS1naXQgYS9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMi9HcmFwaGlj
c1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmll
cy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJh
bWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkCmluZGV4IGFiMWM0MDYwMGVmNzM5ZWQwNzk3MGY1
ZmIzN2I5NWU3ODk3NDE1MWMuLmQzNTQzMjQ2NWQxYjNkODYzZTI2Nzk0M2M4ZTNhYjUyYTcxMzQ5
ZjQgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJk
CisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEy
L0dyYXBoaWNzU2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkCkBAIC0xNSwx
MCArMTUsMTMgQEAgZXhwb3J0czoKICAgICAgIC0geDg2XzY0CiAgICAgc3ltYm9sczoKICAgICAg
IC0gX0dTQ3VycmVudEV2ZW50VGltZXN0YW1wCisgICAgICAtIF9HU0V2ZW50SXNIYXJkd2FyZUtl
eWJvYXJkQXR0YWNoZWQKICAgICAgIC0gX0dTRm9udEluaXRpYWxpemUKICAgICAgIC0gX0dTRm9u
dFB1cmdlRm9udENhY2hlCiAgICAgICAtIF9HU0luaXRpYWxpemUKKyAgICAgIC0gX0dTS2V5Ym9h
cmRHZXRNb2RpZmllclN0YXRlCiAgICAgICAtIF9HU1N5c3RlbVJvb3REaXJlY3RvcnkKKyAgICAg
IC0gX2tHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRp
b24KIGluc3RhbGwtbmFtZTogL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0dyYXBo
aWNzU2VydmljZXMuZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMKIG9iamMtY29uc3RyYWludDog
bm9uZQogcGxhdGZvcm06IGlvcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354125</attachid>
            <date>2018-11-07 12:08:20 -0800</date>
            <delta_ts>2018-11-08 16:28:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181107120819.patch</filename>
            <type>text/plain</type>
            <size>36091</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk5ZWViZDgyYTllOGZk
ODE3ZmQwYzA3ZmM1YWMyYThkZTYwYmQ0MC4uNzY3ZDMwNDhlODI4NjIwNWZiYjVhNDM0ZDFmZGMx
YTI2NDIxYjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkIGNvbnN0KTog
RXh0cmFjdGVkIGZyb20gRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KCkKKyAgICAgICAg
c28gdGhhdCBpdCBjYW4gc2hhcmVkIGJldHdlZW4gV2ViQ29yZSwgTW9kZXJuIFdlYktpdCwgYW5k
IExlZ2FjeSBXZWJLaXQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudCk6IE1vZGlmaWVkIHRvIGNhbGwgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSk6IE1vdmVkIGZyb20gS2V5RXZlbnRNYWMu
bW0uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRN
b2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKTogRmV0Y2ggdGhlIGN1cnJlbnQg
bW9kaWZpZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tOgorICAgICAgICAoK1tXZWJFdmVudCBtb2RpZmll
ckZsYWdzXSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUpOiBEZWxldGVkOyBtb3ZlZCB0byBLZXlFdmVudENvY29hLm1tIHRvIGJlIHNoYXJlZAor
ICAgICAgICBieSBib3RoIE1hYyBhbmQgaU9TLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IERlbGV0ZWQ7IG1vdmVkIHRv
IEtleUV2ZW50Q29jb2EubW0gdG8gYmUgc2hhcmVkCisgICAgICAgIGJ5IGJvdGggTWFjIGFuZCBp
T1MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMubW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERlbGV0ZWQ7IG1vdmVk
IHRvIFJlbmRlclRoZW1lQ29jb2EubW0gdG8gYmUKKyAgICAgICAgc2hhcmVkIGJ5IGJvdGggTWFj
IGFuZCBpT1MuCisKIDIwMTgtMTEtMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggIkphdmFzY3JpcHQiID0+ICJKYXZh
U2NyaXB0IiBlbnVtIGluIHByb3RvY29sIGdlbmVyYXRlZCBvYmplY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCAzYjBmZWY2ZTU2OTU1ZTVlMzk1ZWY4ZTY2OGIxZDQyZTBiNDg3NDZjLi40NWI2OWZk
NjQ2ZGVhNjU0MjRmMjM0ZjJmOTZkZTgzNWEzYmUxMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxOC0xMS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3Jk
IGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkIGRlY2xhcmUgc29tZSBt
b3JlIFNQSS4KKworICAgICAgICAqIHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaDoK
KyAgICAgICAgKiBwYWwvc3BpL2lvcy9VSUtpdFNQSS5oOgorCiAyMDE4LTExLTA2ICBKdXN0aW4g
RmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRXhwZXJpbWVu
dGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2ZmYyZmQxZTJmM2ZiYjNhN2NjMTdkNTEzYzNjZGQ4ZGI1NzlhOGQ2Li5l
ODRmZDRjMTI2ZTQ4YmM4MTA4MTJkNzc5ZTZiYzUzZTVjNGNmN2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDE4LTExLTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmll
bGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1
NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIHdpdGggdGhlIGN1cnJlbnQgbW9kaWZlciBzdGF0ZSBvbiB3aW5kb3cgYWN0aXZhdGlvbiBj
aGFuZ2VzLiBOb3RpZnkKKyAgICAgICAgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVuIGhhcmR3
YXJlIGtleWJvYXJkIGF2YWlsYWJpbGl0eSBjaGFuZ2VzIChlLmcuIGEga2V5Ym9hcmQgaXMgYXR0
YWNoZWQpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBSZWdp
c3RlciBmb3IgaGFyZHdhcmUga2V5Ym9hcmQgYXZhaWxhYmlsaXR5IGNoYW5nZWQgbm90aWZpY2F0
aW9ucy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlYWxsb2NdKTogVW5yZWdpc3RlciBmcm9tIGhh
cmR3YXJlIGF2YWlsYWJpbGl0eSBjaGFuZ2VkIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIChoYXJk
d2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKTogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUpOiBDb21waWxlIHRoaXMgY29kZSB3aGVu
IGJ1aWxkaW5nIGZvciBpT1MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVLZXlVSUV2ZW50Ol0pOiBVcGRhdGUgdGhlIGN1
cnJlbnQgbW9kaWZpZXIgc3RhdGUgaWYgdGhpcyBldmVudCBpcyBhIGhhcmR3YXJlCisgICAgICAg
IGtleWJvYXJkIGZsYWdzIGNoYW5nZWQgZXZlbnQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQpOiBBZGRlZC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZCk6CisgICAgICAgIEFkZGVkIG5ldyBtZXNzYWdlIEhhcmR3YXJlS2V5
Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkLiBOb3RpZnkgdGhlIGZvY3VzZWQgSFRNTCBpbnB1dCBl
bGVtZW50IChpZiB3ZSBoYXZlCisgICAgICAgIG9uZSkgdGhhdCB0aGUgY2FwcyBsb2NrIHN0YXRl
IG1heSBoYXZlIGNoYW5nZWQgd2hlbiB3ZSByZWNlaXZlIG1lc3NhZ2UgSGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWQKKyAgICAgICAgc28gdGhhdCB3ZSB0b2dnbGUgdmlzaWJpbGl0
eSBvZiB0aGUgY2FwcyBsb2NrIGluZGljYXRvci4KKwogMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVl
ICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSBhIGdyZWdvcmlhbiBjYWxlbmRh
ciB0byBzaG93IGZvciBjcmVkaXQgY2FyZCBleHBpcmF0aW9uIGRhdGUgaW5wdXRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYzMDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZj
NDcyZTAwMi4uMjEzZjNkZTA0NWY2OWI5MjFiZDZjNzgwNzA2NmM3Nzk5ZTU4Yjg2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSB0aGUgY2FwcyBsb2NrIHN0YXRlIHdoZW4gYSBoYXJkd2FyZSBrZXlib2FyZCBp
cyBhdHRhY2hlZCBvciBkZXRhY2hlZC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcu
bW06CisgICAgICAgIChoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNr
KTogQWRkZWQuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGluaXRXaXRoRnJhbWU6XSk6IFJlZ2lz
dGVyIGZvciBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3RpZmljYXRp
b25zLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkZWFsbG9jXSk6IFVucmVnaXN0ZXIgZnJvbSBo
YXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3RpZmljYXRpb25zLgorCiAy
MDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUg
YW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKaW5kZXggMWNjOGIzMTE4MDQyMDU0YjNhM2MyYTc2
YTc5OTE0NDFjZDFhNDVjMy4uMWI1YmQ5Nzg0ZmFjNjNlMWJhYWQzNTU5YWJmYjdiZWU1YzEwMTZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2Vy
dmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NT
ZXJ2aWNlc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQzLDYgKzQzLDEyIEBAIENGU3RyaW5nUmVmIEdTU3lzdGVtUm9vdERpcmVj
dG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQgR1NGb250UHVy
Z2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYgc3RydWN0IF9fR1NLZXlib2FyZCogR1NLZXli
b2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKEdTS2V5Ym9hcmRS
ZWYpOworQm9vbGVhbiBHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoKTsKKworZXh0
ZXJuIGNvbnN0IGNoYXIgKmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5n
ZWROb3RpZmljYXRpb247CisKIFdURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDdjOTQ3MTQ4NjVkZGExOWNmYTlm
Y2U3MGMzYmJlNzJhMmIzNTU5NjkuLjFhODdhZjVhZjNhNDg5YzExMzY2MGJiMmZkNTRmOGM3NjZl
NGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0y
Myw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
K1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBzdHJ1Y3QgX19HU0tleWJvYXJkKiBHU0tleWJv
YXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
IAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhTdHlsZV9Qcml2YXRlLmg+CkBAIC00NCw2ICs0
OCw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQogKyAoVUlBcHBsaWNhdGlvblNj
ZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOworLSAoR1NLZXlib2FyZFJlZilfaGFyZHdhcmVL
ZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc1LDEwICs4MCw5IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKSB7CiBAZW5kCiAKIEBp
bnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAtIChCT09MKV9pc0NsYXNzaWM7CiArIChVSUFw
cGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xhc3NpY01vZGU7Ci0KKy0gKEdTS2V5Ym9hcmRS
ZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlDb2xvciAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDBmMjZlNmE0M2E5NDkxMTdkZTM3NjExOGY1MzIxZGY0MDVmN2VjNmUuLjhlYmExMTVkNzYyNjBi
YTBhMDg4NGFjYjQ5ZDY4ZjMyZDZmZDNhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjQ2LDYgKzEzNjQ2LDcgQEAKIAkJ
Q0UyODQ5ODgxQ0EzNjE0NjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2
ZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNUNCMUIzMTRFREFCNkYwMEJCMjc5NSAvKiBFdmVudFNlbmRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFNlbmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRTVGQTI1MzIwOUU0OEM1MDA1MUQ3MDAgLyogQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oOyBw
YXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRTY4QzhGRjIxOTI0RUU1MDAxMjMwQjMgLyogUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAv
KiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjUwMTQsNiArMjUwMTUsNyBAQAogCQkJCUExNDk3ODcwMUFCQUYzQTUwMENFRjdFNCAvKiBQbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlCQzVDNzYyOTE0OTdGRTE0MDBCQzQ3NzUgLyog
UGxhdGZvcm1FdmVudC5oICovLAogCQkJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oICovLAorCQkJCUNFNjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuY3BwICovLAogCQkJCTkzNUM0NzY2MDlBQzRENDMwMEE2QUFC
NCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggKi8sCiAJCQkJQzVCQUMxNkYxNEUzMEU0NzAw
MDA4ODM3IC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDk5Yjc0YmZiNjYzYmY5OTY4MmZiNjRmYzBhYWViM2YzN2E3OGMxYTAu
Ljk3YmQwNGYwODVhZGVmNDM2NzNlYjQ3NWFiYjc1YmYwYTBiN2IyMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxNjIsNiArMzE2MiwxNCBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCkKICAg
ICByZXR1cm4gd2FzSGFuZGxlZDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3Rh
dGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0Cit7CisgICAgYXV0byogZm9jdXNlZEVsZW1lbnQgPSBt
X2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MSW5w
dXRFbGVtZW50Pihmb2N1c2VkRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50PigqZm9jdXNlZEVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZl
Q2hhbmdlZCgpOworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25z
dCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIHsKICAgICBSZWY8RnJh
bWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMzE5NCwxMiArMzIwMiw4IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYgaW5pdGlhbEtleUV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAoaW5pdGlhbEtleUV2
ZW50LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpIHsKLSAgICAgICAgaWYg
KGF1dG8qIGVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCi0gICAgICAg
ICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmNhcHNMb2NrU3Rh
dGVNYXlIYXZlQ2hhbmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpbml0aWFsS2V5
RXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkKKyAgICAgICAgY2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykK
ICAgICBpZiAobV9mcmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblBy
b2dyZXNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGY1ZmUwOGY2MTZl
NTJkMTc0MDM0NDU3ODM1OGNiMGRkYjIwZDllODQuLjkyZmJjNWFmY2Y4OGViMjA0NDQwNDkyMDEy
Y2M5ZGE4NDA2YmI0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjU2LDYg
KzI1Niw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tl
eShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQgZGVmYXVs
dEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0OwogCiAgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5UHJldmVudHNFdmVudFByb3BhZ2F0aW9uKEtleWJvYXJkRXZlbnQmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JB
Y2Nlc3NpYmlsaXR5KEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IDYzMWRkMTQwZDdiZWJkN2NmYjhmZjU0ZTMz
OTI2ZTRlMzg4YWM1MWQuLjA1YzBhOGNlNzA4MjI3YzNmNTRiMDhjODc2MTg2NTM4MjMyMmM2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpA
QCAtMjcsOCArMjcsMTAgQEAKICNpbXBvcnQgIktleUV2ZW50Q29jb2EuaCIKIAogI2ltcG9ydCAi
TG9nZ2luZy5oIgorI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJX
aW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zOSw2ICs0MSwyMCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZU9m
TW9kaWZpZXJLZXlzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2Nr
S2V5KTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmll
clN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wm
IG1ldGFLZXkpCit7CisgICAgYXV0byBjdXJyZW50TW9kaWZpZXJzID0gY3VycmVudFN0YXRlT2ZN
b2RpZmllcktleXMoKTsKKyAgICBzaGlmdEtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMo
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKKyAgICBjdHJsS2V5ID0gY3VycmVu
dE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSk7Cisg
ICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcjo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7Cit9CisKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby91aWV2ZW50cy1rZXkvCiBTdHJpbmcga2V5Rm9yQ2hhckNvZGUodW5pY2hhciBjaGFy
Q29kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVu
dElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRl
eCAxOWNhOWJmZGY0YjE2OGEzMTA3NDMyNDJjZGIxOTMxYmMwOTMzMGJlLi45YmQ1N2U3NGFjODgy
YjU0Mzc0NTU4MjA5NDM3MmM3Y2FmN2Q5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tCkBAIC0zMSw4ICszMSwxMCBAQAogI2ltcG9ydCAiS2V5RXZlbnRD
b2NvYS5oIgogI2ltcG9ydCAiS2V5RXZlbnRDb2Rlc0lPUy5oIgogI2ltcG9ydCAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXaW5kb3dzS2V5Ym9hcmRD
b2Rlcy5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT0tpdFNQSS5oPgorI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtMzEyLDE5ICszMTQs
MjkgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVu
dChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAKLWJvb2wgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCitPcHRpb25TZXQ8UGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudFN0YXRlT2ZNb2Rp
ZmllcktleXMoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQorICAgIC8vIHNfY3VycmVudE1vZGlmaWVycyBpcyBvbmx5IHNldCBpbiB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzLCBub3QgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgaWYgKHNfY3VycmVudE1vZGlm
aWVycykgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4g
KnNfY3VycmVudE1vZGlmaWVyczsKKyAgICB9CiAKLXZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwg
Ym9vbCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgc2hpZnRLZXkgPSBmYWxzZTsKLSAgICBjdHJsS2V5ID0gZmFsc2U7Ci0gICAgYWx0S2V5ID0g
ZmFsc2U7Ci0gICAgbWV0YUtleSA9IGZhbHNlOworICAgIDo6V2ViRXZlbnRGbGFncyBjdXJyZW50
TW9kaWZpZXJzID0gWzo6V2ViRXZlbnQgbW9kaWZpZXJGbGFnc107CisKKyAgICBPcHRpb25TZXQ8
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKKyAgICBpZiAoY3VycmVudE1vZGlm
aWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza1NoaWZ0S2V5KQorICAgICAgICBtb2RpZmllcnMuYWRk
KFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYgKGN1cnJlbnRNb2Rp
ZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tDb250cm9sS2V5KQorICAgICAgICBtb2RpZmllcnMu
YWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5KTsKKyAgICBpZiAoY3VycmVudE1v
ZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza09wdGlvbktleSkKKyAgICAgICAgbW9kaWZpZXJz
LmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKKyAgICBpZiAoY3VycmVudE1v
ZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza0NvbW1hbmRLZXkpCisgICAgICAgIG1vZGlmaWVy
cy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOworICAgIGlmIChjdXJyZW50
TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrTGVmdENhcHNMb2NrS2V5KQorICAgICAgICBt
b2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7CisKKyAg
ICByZXR1cm4gbW9kaWZpZXJzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJF
dmVudC5oCmluZGV4IDNiZDM2YmY3Mzc0YWRmNTBhOGZhM2M5ZjBkNDEwOTMyNDcxNGVlMzUuLjIy
NGEwN2UyMjc4NjYzYmQyYWM2MGQ5OGQyMTJkYzhmNTI3NmJiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5vbmF0b21pYykg
Qk9PTCB3YXNIYW5kbGVkOwogCitAcHJvcGVydHkgKGNsYXNzLCByZWFkb25seSkgV2ViRXZlbnRG
bGFncyBtb2RpZmllckZsYWdzOworCiBAZW5kCiAKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05F
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0KaW5kZXggZTY3OGU5ZTQ0YjZm
Nzg4MmU3NDkzYjU1NjZkZTAxZTcyM2QwN2Y0Yi4uYTZiZDczMzM0NTNjMTU3ZjE1YzhhODVjMDk2
NjViNDVhYWZkNDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQpA
QCAtMzYsNiArMzYsMTQgQEAKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNpbXBvcnQg
IldBS0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL2lvcy9VSUtpdFNQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGljYXRp
b24pOworCisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkKIAog
dXNpbmcgV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlDb2RlOwogdXNpbmcgV2ViQ29yZTo6
d2luZG93c0tleUNvZGVGb3JDaGFyQ29kZTsKQEAgLTQ5MSw2ICs0OTksMTEgQEAgLSAoZmxvYXQp
Z2VzdHVyZVJvdGF0aW9uCiAgICAgcmV0dXJuIF9nZXN0dXJlUm90YXRpb247CiB9CiAKKysgKFdl
YkV2ZW50RmxhZ3MpbW9kaWZpZXJGbGFncworeworICAgIHJldHVybiBHU0V2ZW50SXNIYXJkd2Fy
ZUtleWJvYXJkQXR0YWNoZWQoKSA/IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKFtVSUFwcGxp
Y2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXS5faGFyZHdhcmVLZXlib2FyZCkgOiAwOworfQorCiBA
ZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IGIwOGE1M2VlNDNkNjFmZGI5ZjU2ZDAxZTVk
NDQzYWEwNGQxOWM1MmIuLjJiY2I1MTBjN2E0Yzg1MjRlNjhiYTE0YTUwMWZkYzllNWYwYjJhOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTI1OCwy
MSArMjU4LDYgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAKLWJvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCi17Ci0gICAgYXV0byBj
dXJyZW50TW9kaWZpZXJzID0gY3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKLSAgICByZXR1
cm4gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fw
c0xvY2tLZXkpOwotfQotCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1v
ZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwg
Ym9vbCYgbWV0YUtleSkKLXsKLSAgICBhdXRvIGN1cnJlbnRNb2RpZmllcnMgPSBjdXJyZW50U3Rh
dGVPZk1vZGlmaWVyS2V5cygpOwotICAgIHNoaWZ0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250
YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOwotICAgIGN0cmxLZXkgPSBj
dXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5
KTsKLSAgICBhbHRLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpBbHRLZXkpOwotICAgIG1ldGFLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRh
aW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKLX0KLQogT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0
ZU9mTW9kaWZpZXJLZXlzKCkKIHsKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApp
bmRleCBhNDY0YzEwNDAyZjA0NzEzMjg2YjQ0NjBjNzExODM3YTYyNzg3ZGUwLi5mMTg4NzQyNGY2
M2Y0ZTljNzk4MWRiYzNkNjRhOTgzYWEzYjFlNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGljIFJlbmRlclRoZW1lIHsKIHBy
aXZhdGU6CisgICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElu
cHV0RWxlbWVudCYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICB2
b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRBcHBsZVBh
eUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNv
Y29hLm1tCmluZGV4IGZlYWNmYzViMzNjNzVkNmEwOWEyZThjYWFjYzkwYzMyNDBhMjIxODguLmI0
YWFmNjQyMWQyYjZkM2M1YjMwZGVhYTc0ZTNlNzI2MzI5ZDJhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1w
b3J0ICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgi
CisjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJUZXh0LmgiCiAK
ICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNTEsNiArNTIsMTEgQEAgU09GVF9MSU5LX01BWV9G
QUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2b2lkLCAoQ0dDb250ZXh0UmVmIGNv
bnRleHQsIEMKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFJlbmRlclRoZW1lQ29jb2E6
OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50LmlzUGFzc3dvcmRGaWVsZCgpOworfQor
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogc3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQYXlCdXR0
b25NaW5pbXVtV2lkdGggPSAxNDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5oCmluZGV4IGNhOGMwYmEyZjIwYzdhYzBmYTNjMmQ0ZTZhMTM1YjhiYTYxYzg2ZDIuLmE1
YTMwYWMyYTk0MWJiMmMzNThmNDRhN2E2ZmY3YzZiZjVmMjAwNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTcsNyArMTE3LDYgQEAgcHJvdGVjdGVk
OgogI2VuZGlmCiAKICAgICBib29sIHNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1
dEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0lu
ZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBF
TkFCTEUoVklERU8pCiAgICAgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMWQx
N2FlYWYyZDdkNWUyOTQwZTQzMWQxNDRhZDFhY2ZhYTViY2EyOS4uNTJiNGQ3NDViOTk3MzNhYzZh
ZjBiNWI3MmMzNjBiNmIyZDRiMGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQpAQCAtMTEzNSwxMSArMTEzNSw2IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6
OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZUNhcHNM
b2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAotewotICAgIHJldHVy
biBmYWxzZTsKLX0KLQogRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgUmVuZGVyVGhlbWVJT1M6OmNh
Y2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVlSUQpIGNvbnN0CiB7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRlRGVzY3JpcHRpb24+IHN5c3RlbUZv
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGQ4NTc2
MWFiYzliMTJkZmRkYTU1NDVkZDE0ZjgwMzQ5NjM3OTUwZDcuLjhjZWQ4ODQ0MWM4MjZiMWQwODhj
MzM5OWM3NmU1MTYyNmRiYmRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Q2xvc2VkQ2FwdGlvbmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgog
Ci0gICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxl
bWVudCYpIGNvbnN0IGZpbmFsOwotCiAgICAgYm9vbCBwYWludFNuYXBzaG90dGVkUGx1Z2luT3Zl
cmxheShjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
JikgZmluYWw7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDNmYmQ2MGQ2MTcxNzlkODBiMTky
NjU5YTliOGYwYmM5YzllNmNkZDUuLmU5MTIxNTA2MGVmOWFiOGQ2MWQzNWViMmM1YmFiOTI4ZmMy
ODM2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAg
LTIzNDIsMTEgKzIzNDIsNiBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KikgYwogICAgIH0KIH0KIAot
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVsZW1lbnQuaXNQ
YXNzd29yZEZpZWxkKCk7Ci19Ci0KIE5TUG9wVXBCdXR0b25DZWxsKiBSZW5kZXJUaGVtZU1hYzo6
cG9wdXBCdXR0b24oKSBjb25zdAogewogICAgIGlmICghbV9wb3B1cEJ1dHRvbikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOWVjNjU5
OGQ3ZjU2YWEzM2U4NzUxOTdlNDlhNzcyZmQ1MzNiNjA4Zi4uZmY3ZDkwYTgyMjBlYzFlY2RmYzkw
YWUyZDQ4YjY0OTNmNDRhZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+
CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3
dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCguLi4pIFJFTEVBU0VfTE9HX0lGKF9wYWdlICYmIF9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykKQEAgLTcwMiw2ICs3MDMsOCBAQCAtICh2
b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uCiAKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250ZW50UHJvdmlkZXJS
ZWdpc3RyeV0gYWRkUGFnZToqX3BhZ2VdOwogICAgIF9wYWdlLT5zZXRGb3JjZUFsd2F5c1VzZXJT
Y2FsYWJsZShbX2NvbmZpZ3VyYXRpb24gaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHNdKTsKKwor
ICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJH
ZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilb
TlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBA
IC04MzksNiArODQyLDggQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW1tfY29uZmlndXJhdGlvbiBf
Y29udGVudFByb3ZpZGVyUmVnaXN0cnldIHJlbW92ZVBhZ2U6Kl9wYWdlXTsKICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwogICAg
IFtfc2Nyb2xsVmlldyBzZXRJbnRlcm5hbERlbGVnYXRlOm5pbF07CisKKyAgICBDRk5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90
aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZTdHJpbmdSZWYp
W05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfRVZFTlRTKQpAQCAtMzA5OSw2ICszMTA0LDEzIEBAIC0gKHZv
aWQpX2tleWJvYXJkV2lsbEhpZGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAg
W3NlbGYgX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2VySW5mbyBhZGp1
c3RTY3JvbGxWaWV3OllFU107CiB9CiAKK3N0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9i
c2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAg
ICBBU1NFUlQob2JzZXJ2ZXIpOworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IChfX2JyaWRnZSBX
S1dlYlZpZXcgKilvYnNlcnZlcjsKKyAgICB3ZWJWaWV3Ll9wYWdlLT5oYXJkd2FyZUtleWJvYXJk
QXZhaWxhYmlsaXR5Q2hhbmdlZCgpOworfQorCiAtICh2b2lkKV93aW5kb3dEaWRSb3RhdGU6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKCFfb3ZlcnJpZGVzSW50ZXJm
YWNlT3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBjOGY4NmRlODUzYmMyMjBjMDY4MDFlMTY0ODM4ODEzODNlM2ZjYjgyLi44ODVkZWU1Njc5
MjZiNWY0M2U1OGUyZTgwZGYzOWUzMmMxMjdkYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgxMzEsNyArODEzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpnZXRJc1ZpZXdWaXNpYmxlKGJvb2wmIHJlc3VsdCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnVw
ZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCkKIHsKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBhdXRvIG1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKG1vZGlmaWVycyksIG1fcGFnZUlE
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0Njgy
ZDc0YzEyZjA3NzAzOWRlOGIxNWYwNDU0ZWNkOThlNjVjZWNjLi40MzViOWIwOTA3NjdiMjIxZmJk
MGMwNjhiZjZhMjdiZDE1NDg4ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtNjQ1LDYgKzY0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlU2VsZWN0aW9u
Rm9yQWNjZXNzaWJpbGl0eShib29sKTsKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb25JbldpbmRvdyk7CiAgICAgdm9p
ZCBjYW5jZWxBdXRvc2Nyb2xsKCk7CisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZCgpOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlk
SGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCk7CiAgICAgdm9p
ZCBkaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKTsKQEAgLTEz
NjksNiArMTM3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2VzdGlvbnMoKTsK
ICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOworCiBwcml2
YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWlu
dDY0X3QgcGFnZUlELCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTE4NTEsOCArMTg1NCw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdG9wRGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKLQogICAgIHZvaWQgcmVwb3J0UGFn
ZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0pOwogCiAgICAg
dm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0NmZkNjMwNjcwYTdkMzU3
MWIyOGIwYzVhM2E0ZDJmZmFmYTUxNTVkLi5lOTkzZjI4YzUxYWMyOTkwNDBmODYwMDhiMGVkYjg5
ZWI4NjI4NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM3NTYsOSArMzc1NiwxMyBAQCAtIChCT09M
KXJlcXVpcmVzS2V5RXZlbnRzCiAKIC0gKHZvaWQpX2hhbmRsZUtleVVJRXZlbnQ6KDo6VUlFdmVu
dCAqKWV2ZW50CiB7CisgICAgYm9vbCBpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCA9ICEhZXZlbnQu
X2hpZEV2ZW50OworICAgIGlmIChpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCAmJiAoKFVJUGh5c2lj
YWxLZXlib2FyZEV2ZW50ICopZXZlbnQpLl9pbnB1dEZsYWdzICYga1VJS2V5Ym9hcmRJbnB1dE1v
ZGlmaWVyRmxhZ3NDaGFuZ2VkKQorICAgICAgICBfcGFnZS0+dXBkYXRlQ3VycmVudE1vZGlmaWVy
U3RhdGUoKTsKKwogICAgIC8vIFdlIG9ubHkgd2FudCB0byBoYW5kbGUga2V5IGV2ZW50IGZyb20g
dGhlIGhhcmR3YXJlIGtleWJvYXJkIHdoZW4gd2UgYXJlCiAgICAgLy8gZmlyc3QgcmVzcG9uZGVy
IGFuZCB3ZSBhcmUgbm90IGludGVyYWN0aW5nIHdpdGggZWRpdGFibGUgY29udGVudC4KLSAgICBp
ZiAoW3NlbGYgaXNGaXJzdFJlc3BvbmRlcl0gJiYgZXZlbnQuX2hpZEV2ZW50ICYmICFfcGFnZS0+
ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgeworICAgIGlmIChbc2VsZiBpc0ZpcnN0
UmVzcG9uZGVyXSAmJiBpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCAmJiAhX3BhZ2UtPmVkaXRvclN0
YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsKICAgICAgICAgW3NlbGYgaGFuZGxlS2V5RXZlbnQ6
ZXZlbnRdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzg2NTg4NDExMzE5NGJlYzk0ODRiNjQ2
Y2VkMDAzYzFmMjQ2MWYwZS4uM2RjN2ZiNGNiZTM4NzA5MzY3ZWRiYTUzYTViN2Q3ZDU2NmRhNzcz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CkBAIC0xMDg5LDYgKzEwODksMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElzU2Nyb2xsaW5n
T3Jab29taW5nKGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcpCiAgICAgICAgIG1fdmFsaWRhdGlv
bkJ1YmJsZS0+c2hvdygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQoreworICAgIHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRl
KCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYXJkd2FyZUtleWJv
YXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpLCBtX3BhZ2VJRCk7Cit9CisKICNpZiBFTkFCTEUoREFU
QV9JTlRFUkFDVElPTikKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0YXJ0RGF0YUlu
dGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNDA3NmVhN2I3NDUyOTNlZGNlMDc3YjgyOGZjNWMzYzY1
YWQ2ZmE5NC4uOTlmNDQyNGI3ZjlmYTFiMmFmZWRhMjhkZTVlNDcxZWJhMDJlNjBjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTEzLDYgKzkxMyw4
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGxhdGZvcm1QcmVmZXJzVGV4dExlZ2liaWxpdHlCYXNl
ZFpvb21TY2FsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1
cmF0aW9uJiB2aWV3cG9ydENvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbjsgfQorCisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5
Q2hhbmdlZCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IGZkNDMwZDY5YWUyNTQ1YjIwOWYyMjY3YTdlYWU1NmRiMjVkOTBmZTQuLjc2MjZmYmIy
NjUzNGY0NzY2N2RkNjIxZGY3NzdmNTAzMDY4MDUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTA2LDYgKzEw
Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0QXV0
b3Njcm9sbEF0UG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbkluV2luZG93KQog
ICAgIENhbmNlbEF1dG9zY3JvbGwoKQogICAgIFJlcXVlc3RBc3Npc3RlZE5vZGVJbmZvcm1hdGlv
bihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBIYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZCgpCiAjZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRCeUF1dG9tYXRp
b24oYm9vbCBjb250cm9sbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4YWFmZGIzNTViZWEyMWU0Y2YwOGQ4NDAxMjg4
ZDVmYzAzM2ZjZjE4Li5iMWY0NGE3Y2E0YjQ5NGIxMzVjNTBjMTk1ZmQwMDgwY2QzZTQxZTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMzA4Niw2ICszMDg2LDEyIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJB
Z2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordm9pZCBX
ZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCit7CisgICAgaWYg
KGF1dG8qIGZvY3VzZWRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZy
YW1lKCkpCisgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0
ZU1heUhhdmVDaGFuZ2VkKCk7Cit9CisKICNpZiBVU0UoUVVJQ0tfTE9PSykKIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBw
YXNzd29yZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCmluZGV4IDZkZGFjYTEwOGMzN2RmYzQ0ZTczYzk3MGJlN2M2NTg2NmE4MGFhNDAuLjkw
YTAyNTk5MDdjYzFkOWJmODMxODA2MTIzYjQ1M2E1YTA1YTllNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTY0LDcgKzE2NCw5IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1dBS1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FL
V2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dLR3JhcGhpY3MuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2lt
cG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODE0LDYgKzgxNiwxNiBAQCBzdGF0aWMgQ2FjaGVkSW1h
Z2VDbGllbnQmIHByb21pc2VkRGF0YUNsaWVudCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViTWFya2VkVGV4dFVwZGF0ZWROb3RpZmljYXRp
b24gPSBAIldlYk1hcmtlZFRleHRVcGRhdGVkIjsKKworc3RhdGljIHZvaWQgaGFyZHdhcmVLZXli
b2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwg
dm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVm
KQoreworICAgIEFTU0VSVChvYnNlcnZlcik7CisgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAg
IFdlYkhUTUxWaWV3ICp3ZWJWaWV3ID0gKF9fYnJpZGdlIFdlYkhUTUxWaWV3ICopb2JzZXJ2ZXI7
CisgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbd2ViVmlldyBfZnJhbWVdKSkK
KyAgICAgICAgICAgIGNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1heUhh
dmVDaGFuZ2VkKCk7CisgICAgfSk7Cit9CiAjZW5kaWYKIAogQGludGVyZmFjZSBXZWJIVE1MVmll
dyAoV2ViSFRNTFZpZXdGaWxlSW50ZXJuYWwpCkBAIC0yNjEwLDYgKzI2MjIsNyBAQCAtIChpZClp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIAogICAgICAgICAgICAgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IobWFya2VkVGV4dFVwZGF0ZTopIAogICAgICAgICAgICAgICAgICAgIG5hbWU6V2ViTWFy
a2VkVGV4dFVwZGF0ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgQ0ZOb3RpZmljYXRp
b25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNl
bnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtOU1N0cmluZyBzdHJpbmdX
aXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2Vk
Tm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JD
b2FsZXNjZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI2MjYsNiArMjYzOSw3
IEBAIC0gKHZvaWQpZGVhbGxvYwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFt
ZTpXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBDRk5v
dGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFy
d2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZTdHJp
bmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXli
b2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRpZgog
CiAgICAgLy8gV2UgY2FuJ3QgYXNzZXJ0IHRoYXQgY2xvc2UgaGFzIGFscmVhZHkgYmVlbiBjYWxs
ZWQgYmVjYXVzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMGRiMTA4Zjc3MDdhYTU5ZDY4MTcxM2ExNmJhYjQ5
YmJiNjEwMTYxMC4uMjEzN2IzODBkZmFhMTkzYjYxZjI5NjRkZDYwOTVmYTQ3ZGUxOTU5NSAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDcgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHNv
bWUgbW9yZSBzeW1ib2xzLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZDoK
KwogMjAxOC0wNi0yNyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5hYmxlIFdlYktpdCBpT1MgMTIgYnVpbGQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMu
ZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3Jh
cGhpY3NTZXJ2aWNlcy50YmQKaW5kZXggYWIxYzQwNjAwZWY3MzllZDA3OTcwZjVmYjM3Yjk1ZTc4
OTc0MTUxYy4uZDM1NDMyNDY1ZDFiM2Q4NjNlMjY3OTQzYzhlM2FiNTJhNzEzNDlmNCAxMDA2NDQK
LS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIv
R3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKKysrIGIvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NT
ZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKQEAgLTE1LDEwICsxNSwxMyBA
QCBleHBvcnRzOgogICAgICAgLSB4ODZfNjQKICAgICBzeW1ib2xzOgogICAgICAgLSBfR1NDdXJy
ZW50RXZlbnRUaW1lc3RhbXAKKyAgICAgIC0gX0dTRXZlbnRJc0hhcmR3YXJlS2V5Ym9hcmRBdHRh
Y2hlZAogICAgICAgLSBfR1NGb250SW5pdGlhbGl6ZQogICAgICAgLSBfR1NGb250UHVyZ2VGb250
Q2FjaGUKICAgICAgIC0gX0dTSW5pdGlhbGl6ZQorICAgICAgLSBfR1NLZXlib2FyZEdldE1vZGlm
aWVyU3RhdGUKICAgICAgIC0gX0dTU3lzdGVtUm9vdERpcmVjdG9yeQorICAgICAgLSBfa0dTRXZl
bnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbgogaW5zdGFs
bC1uYW1lOiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR3JhcGhpY3NTZXJ2aWNl
cy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcwogb2JqYy1jb25zdHJhaW50OiBub25lCiBwbGF0
Zm9ybTogaW9zCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354290</attachid>
            <date>2018-11-08 16:28:35 -0800</date>
            <delta_ts>2018-11-09 10:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190565-20181107120819.patch</filename>
            <type>text/plain</type>
            <size>36091</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjk5ZWViZDgyYTllOGZk
ODE3ZmQwYzA3ZmM1YWMyYThkZTYwYmQ0MC4uNzY3ZDMwNDhlODI4NjIwNWZiYjVhNDM0ZDFmZGMx
YTI2NDIxYjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTExLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyYXcgdGhlIGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gYSBmb2N1c2VkIHBhc3N3b3JkIGZp
ZWxkIG9uIGlPUy4gVGhpcyBtYWtlcyB0aGUgYmVoYXZpb3Igb2YgcGFzc3dvcmQKKyAgICAgICAg
ZmllbGRzIG9uIGlPUyBtb3JlIGNsb3NlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIHBhc3N3b3Jk
IGZpZWxkcyBvbiBNYWMuCisKKyAgICAgICAgVGhlIG1ham9yaXR5IG9mIHRoaXMgcGF0Y2ggaXMg
aW1wbGVtZW50aW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2NrU3RhdGUo
KSBmb3IgaU9TLgorICAgICAgICBJbiBMZWdhY3kgV2ViS2l0LCB0aGUgaW1wbGVtZW50YXRpb24g
Ym9pbHMgZG93biB0byBjYWxsaW5nIGNhbGwgLVs6OldlYkV2ZW50IG1vZGlmaWVyRmxhZ3NdLiBJ
bgorICAgICAgICBNb2Rlcm4gV2ViS2l0IHRoZSBVSVByb2Nlc3MgaXMgcmVzcG9uc2libGUgZm9y
IC1bOjpXZWJFdmVudCBtb2RpZmllckZsYWdzXSBhbmQgcGFzc2luZyBpdCB0aGUKKyAgICAgICAg
V2ViUHJvY2VzcyB0byBzdG9yZSBzdWNoIHRoYXQgaW52b2NhdGlvbnMgb2YgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpIGNvbnN1bHQKKyAgICAgICAgdGhlIHN0
b3JlIGluIHRoZSBXZWJQcm9jZXNzLiBBIHNtYWxsZXIgcGFydCBvZiB0aGlzIHBhdGNoIGlzIGhh
dmluZyBib3RoIHRoZSBsZWdhY3kgYW5kIG1vZGVybgorICAgICAgICB3ZWIgdmlld3MgbGlzdGVu
IGZvciBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlcyBzbyBhcyB0byB1cGRhdGUgdGhlIHRo
ZSBjYXBzIGxvY2sgc3RhdGUgd2hlbgorICAgICAgICBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGRl
dGFjaGVkIG9yIGF0dGFjaGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkIGNvbnN0KTog
RXh0cmFjdGVkIGZyb20gRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KCkKKyAgICAgICAg
c28gdGhhdCBpdCBjYW4gc2hhcmVkIGJldHdlZW4gV2ViQ29yZSwgTW9kZXJuIFdlYktpdCwgYW5k
IExlZ2FjeSBXZWJLaXQgY29kZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50
ZXJuYWxLZXlFdmVudCk6IE1vZGlmaWVkIHRvIGNhbGwgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFu
Z2VkKCkuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSk6IE1vdmVkIGZyb20gS2V5RXZlbnRNYWMu
bW0uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRN
b2RpZmllclN0YXRlKTogTW92ZWQgZnJvbSBLZXlFdmVudE1hYy5tbS4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJv
YXJkRXZlbnQ6OmN1cnJlbnRTdGF0ZU9mTW9kaWZpZXJLZXlzKTogRmV0Y2ggdGhlIGN1cnJlbnQg
bW9kaWZpZXIgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6
OmN1cnJlbnRDYXBzTG9ja1N0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6Omdl
dEN1cnJlbnRNb2RpZmllclN0YXRlKTogRGVsZXRlZDsgd2Ugbm93IHVzZSB0aGUgQ29jb2EgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1dlYkV2ZW50Lm1tOgorICAgICAgICAoK1tXZWJFdmVudCBtb2RpZmll
ckZsYWdzXSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUpOiBEZWxldGVkOyBtb3ZlZCB0byBLZXlFdmVudENvY29hLm1tIHRvIGJlIHNoYXJlZAor
ICAgICAgICBieSBib3RoIE1hYyBhbmQgaU9TLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZSk6IERlbGV0ZWQ7IG1vdmVkIHRv
IEtleUV2ZW50Q29jb2EubW0gdG8gYmUgc2hhcmVkCisgICAgICAgIGJ5IGJvdGggTWFjIGFuZCBp
T1MuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lQ29jb2E6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IE1vdmVkIGZyb20g
UmVuZGVyVGhlbWVNYWMubW0uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVNYWM6OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvciBjb25zdCk6IERlbGV0ZWQ7IG1vdmVk
IHRvIFJlbmRlclRoZW1lQ29jb2EubW0gdG8gYmUKKyAgICAgICAgc2hhcmVkIGJ5IGJvdGggTWFj
IGFuZCBpT1MuCisKIDIwMTgtMTEtMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggIkphdmFzY3JpcHQiID0+ICJKYXZh
U2NyaXB0IiBlbnVtIGluIHByb3RvY29sIGdlbmVyYXRlZCBvYmplY3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCAzYjBmZWY2ZTU2OTU1ZTVlMzk1ZWY4ZTY2OGIxZDQyZTBiNDg3NDZjLi40NWI2OWZk
NjQ2ZGVhNjU0MjRmMjM0ZjJmOTZkZTgzNWEzYmUxMDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxOC0xMS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgW2lPU10gRHJhdyBjYXBzIGxvY2sgaW5kaWNhdG9yIGluIHBhc3N3b3Jk
IGZpZWxkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkwNTY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTI2MjM0Mz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3J3YXJkIGRlY2xhcmUgc29tZSBt
b3JlIFNQSS4KKworICAgICAgICAqIHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaDoK
KyAgICAgICAgKiBwYWwvc3BpL2lvcy9VSUtpdFNQSS5oOgorCiAyMDE4LTExLTA2ICBKdXN0aW4g
RmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRXhwZXJpbWVu
dGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUgYW5kIFdlYkdQVVN3YXBDaGFp
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2ZmYyZmQxZTJmM2ZiYjNhN2NjMTdkNTEzYzNjZGQ4ZGI1NzlhOGQ2Li5l
ODRmZDRjMTI2ZTQ4YmM4MTA4MTJkNzc5ZTZiYzUzZTVjNGNmN2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM1IEBACisyMDE4LTExLTA3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBEcmF3IGNhcHMgbG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmll
bGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1
NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzIHdpdGggdGhlIGN1cnJlbnQgbW9kaWZlciBzdGF0ZSBvbiB3aW5kb3cgYWN0aXZhdGlvbiBj
aGFuZ2VzLiBOb3RpZnkKKyAgICAgICAgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB3aGVuIGhhcmR3
YXJlIGtleWJvYXJkIGF2YWlsYWJpbGl0eSBjaGFuZ2VzIChlLmcuIGEga2V5Ym9hcmQgaXMgYXR0
YWNoZWQpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBSZWdp
c3RlciBmb3IgaGFyZHdhcmUga2V5Ym9hcmQgYXZhaWxhYmlsaXR5IGNoYW5nZWQgbm90aWZpY2F0
aW9ucy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlYWxsb2NdKTogVW5yZWdpc3RlciBmcm9tIGhh
cmR3YXJlIGF2YWlsYWJpbGl0eSBjaGFuZ2VkIG5vdGlmaWNhdGlvbnMuCisgICAgICAgIChoYXJk
d2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNrKTogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUpOiBDb21waWxlIHRoaXMgY29kZSB3aGVu
IGJ1aWxkaW5nIGZvciBpT1MuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYW5kbGVLZXlVSUV2ZW50Ol0pOiBVcGRhdGUgdGhlIGN1
cnJlbnQgbW9kaWZpZXIgc3RhdGUgaWYgdGhpcyBldmVudCBpcyBhIGhhcmR3YXJlCisgICAgICAg
IGtleWJvYXJkIGZsYWdzIGNoYW5nZWQgZXZlbnQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQpOiBBZGRlZC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZCk6CisgICAgICAgIEFkZGVkIG5ldyBtZXNzYWdlIEhhcmR3YXJlS2V5
Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkLiBOb3RpZnkgdGhlIGZvY3VzZWQgSFRNTCBpbnB1dCBl
bGVtZW50IChpZiB3ZSBoYXZlCisgICAgICAgIG9uZSkgdGhhdCB0aGUgY2FwcyBsb2NrIHN0YXRl
IG1heSBoYXZlIGNoYW5nZWQgd2hlbiB3ZSByZWNlaXZlIG1lc3NhZ2UgSGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWQKKyAgICAgICAgc28gdGhhdCB3ZSB0b2dnbGUgdmlzaWJpbGl0
eSBvZiB0aGUgY2FwcyBsb2NrIGluZGljYXRvci4KKwogMjAxOC0xMS0wNyAgWmFtaXVsIEhhcXVl
ICA8emhhcXVlQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JjZSBhIGdyZWdvcmlhbiBjYWxlbmRh
ciB0byBzaG93IGZvciBjcmVkaXQgY2FyZCBleHBpcmF0aW9uIGRhdGUgaW5wdXRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMzVlMjYzMDJhNzc3YTI3YzkwODcxNDk4NTJmMmFhOTZj
NDcyZTAwMi4uMjEzZjNkZTA0NWY2OWI5MjFiZDZjNzgwNzA2NmM3Nzk5ZTU4Yjg2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTExLTA3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBEcmF3IGNhcHMg
bG9jayBpbmRpY2F0b3IgaW4gcGFzc3dvcmQgZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA1NjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ1MjYyMzQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSB0aGUgY2FwcyBsb2NrIHN0YXRlIHdoZW4gYSBoYXJkd2FyZSBrZXlib2FyZCBp
cyBhdHRhY2hlZCBvciBkZXRhY2hlZC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcu
bW06CisgICAgICAgIChoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENhbGxiYWNr
KTogQWRkZWQuCisgICAgICAgICgtW1dlYkhUTUxWaWV3IGluaXRXaXRoRnJhbWU6XSk6IFJlZ2lz
dGVyIGZvciBoYXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3RpZmljYXRp
b25zLgorICAgICAgICAoLVtXZWJIVE1MVmlldyBkZWFsbG9jXSk6IFVucmVnaXN0ZXIgZnJvbSBo
YXJkd2FyZSBrZXlib2FyZCBhdmFpbGFiaWxpdHkgY2hhbmdlZCBub3RpZmljYXRpb25zLgorCiAy
MDE4LTExLTA2ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W1dlYkdQVV0gRXhwZXJpbWVudGFsIHByb3RvdHlwZSBmb3IgV2ViR1BVUmVuZGVyUGlwZWxpbmUg
YW5kIFdlYkdQVVN3YXBDaGFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmgKaW5kZXggMWNjOGIzMTE4MDQyMDU0YjNhM2MyYTc2
YTc5OTE0NDFjZDFhNDVjMy4uMWI1YmQ5Nzg0ZmFjNjNlMWJhYWQzNTU5YWJmYjdiZWU1YzEwMTZk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL0dyYXBoaWNzU2Vy
dmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvR3JhcGhpY3NT
ZXJ2aWNlc1NQSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTQzLDYgKzQzLDEyIEBAIENGU3RyaW5nUmVmIEdTU3lzdGVtUm9vdERpcmVj
dG9yeSh2b2lkKTsKIHZvaWQgR1NGb250SW5pdGlhbGl6ZSh2b2lkKTsKIHZvaWQgR1NGb250UHVy
Z2VGb250Q2FjaGUodm9pZCk7CiAKK3R5cGVkZWYgc3RydWN0IF9fR1NLZXlib2FyZCogR1NLZXli
b2FyZFJlZjsKK3VpbnQzMl90IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKEdTS2V5Ym9hcmRS
ZWYpOworQm9vbGVhbiBHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoKTsKKworZXh0
ZXJuIGNvbnN0IGNoYXIgKmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5n
ZWROb3RpZmljYXRpb247CisKIFdURl9FWFRFUk5fQ19FTkQKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDdjOTQ3MTQ4NjVkZGExOWNmYTlm
Y2U3MGMzYmJlNzJhMmIzNTU5NjkuLjFhODdhZjVhZjNhNDg5YzExMzY2MGJiMmZkNTRmOGM3NjZl
NGY0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQ
SS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0y
Myw2ICsyMywxMCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
K1dURl9FWFRFUk5fQ19CRUdJTgordHlwZWRlZiBzdHJ1Y3QgX19HU0tleWJvYXJkKiBHU0tleWJv
YXJkUmVmOworV1RGX0VYVEVSTl9DX0VORAorCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
IAogI2ltcG9ydCA8VUlLaXQvTlNQYXJhZ3JhcGhTdHlsZV9Qcml2YXRlLmg+CkBAIC00NCw2ICs0
OCw3IEBACiAKIEBpbnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQogKyAoVUlBcHBsaWNhdGlvblNj
ZW5lQ2xhc3NpY01vZGUpX2NsYXNzaWNNb2RlOworLSAoR1NLZXlib2FyZFJlZilfaGFyZHdhcmVL
ZXlib2FyZDsKIEBlbmQKIAogI2Vsc2UKQEAgLTc1LDEwICs4MCw5IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFVJQXBwbGljYXRpb25TY2VuZUNsYXNzaWNNb2RlKSB7CiBAZW5kCiAKIEBp
bnRlcmZhY2UgVUlBcHBsaWNhdGlvbiAoKQotCiAtIChCT09MKV9pc0NsYXNzaWM7CiArIChVSUFw
cGxpY2F0aW9uU2NlbmVDbGFzc2ljTW9kZSlfY2xhc3NpY01vZGU7Ci0KKy0gKEdTS2V5Ym9hcmRS
ZWYpX2hhcmR3YXJlS2V5Ym9hcmQ7CiBAZW5kCiAKIEBpbnRlcmZhY2UgVUlDb2xvciAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDBmMjZlNmE0M2E5NDkxMTdkZTM3NjExOGY1MzIxZGY0MDVmN2VjNmUuLjhlYmExMTVkNzYyNjBi
YTBhMDg4NGFjYjQ5ZDY4ZjMyZDZmZDNhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjQ2LDYgKzEzNjQ2LDcgQEAKIAkJ
Q0UyODQ5ODgxQ0EzNjE0NjAwQjRBNTdGIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeURpcmVjdGl2
ZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeURpcmVjdGl2ZU5hbWVzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2VjdXJp
dHlQb2xpY3lEaXJlY3RpdmVOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNUNCMUIzMTRFREFCNkYwMEJCMjc5NSAvKiBFdmVudFNlbmRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFNlbmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRTVGQTI1MzIwOUU0OEM1MDA1MUQ3MDAgLyogQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oOyBw
YXRoID0gY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlDRTY4QzhGRjIxOTI0RUU1MDAxMjMwQjMgLyogUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNkQ4OTI5NEM3QUFDRTBBRDg5QjNERCAv
KiBNYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWF0aE1MTWVuY2xvc2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNFNkRBREY3MUM1OTFFNkEwMDNGNkE4OCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGVu
dFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmNwcDsgcGF0aCA9IGNzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRTZEQURGODFDNTkxRTZBMDAzRjZBODggLyogQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRlbnRT
ZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBwYXRoID0gY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjUwMTQsNiArMjUwMTUsNyBAQAogCQkJCUExNDk3ODcwMUFCQUYzQTUwMENFRjdFNCAvKiBQbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlCQzVDNzYyOTE0OTdGRTE0MDBCQzQ3NzUgLyog
UGxhdGZvcm1FdmVudC5oICovLAogCQkJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oICovLAorCQkJCUNFNjhDOEZGMjE5MjRFRTUwMDEyMzBCMyAvKiBQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuY3BwICovLAogCQkJCTkzNUM0NzY2MDlBQzRENDMwMEE2QUFC
NCAvKiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCAqLywKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggKi8sCiAJCQkJQzVCQUMxNkYxNEUzMEU0NzAw
MDA4ODM3IC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCmluZGV4IDk5Yjc0YmZiNjYzYmY5OTY4MmZiNjRmYzBhYWViM2YzN2E3OGMxYTAu
Ljk3YmQwNGYwODVhZGVmNDM2NzNlYjQ3NWFiYjc1YmYwYTBiN2IyMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTMxNjIsNiArMzE2MiwxNCBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlFdmVudCkKICAg
ICByZXR1cm4gd2FzSGFuZGxlZDsKIH0KIAordm9pZCBFdmVudEhhbmRsZXI6OmNhcHNMb2NrU3Rh
dGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0Cit7CisgICAgYXV0byogZm9jdXNlZEVsZW1lbnQgPSBt
X2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MSW5w
dXRFbGVtZW50Pihmb2N1c2VkRWxlbWVudCkpCisgICAgICAgIHJldHVybjsKKyAgICBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50PigqZm9jdXNlZEVsZW1lbnQpLmNhcHNMb2NrU3RhdGVNYXlIYXZl
Q2hhbmdlZCgpOworfQorCiBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25z
dCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIHsKICAgICBSZWY8RnJh
bWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMzE5NCwxMiArMzIwMiw4IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYgaW5pdGlhbEtleUV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAoaW5pdGlhbEtleUV2
ZW50LndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0NBUElUQUwpIHsKLSAgICAgICAgaWYg
KGF1dG8qIGVsZW1lbnQgPSBtX2ZyYW1lLmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkpIHsK
LSAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpCi0gICAgICAg
ICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmNhcHNMb2NrU3Rh
dGVNYXlIYXZlQ2hhbmdlZCgpOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmIChpbml0aWFsS2V5
RXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfQ0FQSVRBTCkKKyAgICAgICAgY2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykK
ICAgICBpZiAobV9mcmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblBy
b2dyZXNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGY1ZmUwOGY2MTZl
NTJkMTc0MDM0NDU3ODM1OGNiMGRkYjIwZDllODQuLjkyZmJjNWFmY2Y4OGViMjA0NDQwNDkyMDEy
Y2M5ZGE4NDA2YmI0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMjU2LDYg
KzI1Niw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tl
eShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQgZGVmYXVs
dEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIGNvbnN0OwogCiAgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5UHJldmVudHNFdmVudFByb3BhZ2F0aW9uKEtleWJvYXJkRXZlbnQmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JB
Y2Nlc3NpYmlsaXR5KEtleWJvYXJkRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IDYzMWRkMTQwZDdiZWJkN2NmYjhmZjU0ZTMz
OTI2ZTRlMzg4YWM1MWQuLjA1YzBhOGNlNzA4MjI3YzNmNTRiMDhjODc2MTg2NTM4MjMyMmM2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpA
QCAtMjcsOCArMjcsMTAgQEAKICNpbXBvcnQgIktleUV2ZW50Q29jb2EuaCIKIAogI2ltcG9ydCAi
TG9nZ2luZy5oIgorI2ltcG9ydCAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJX
aW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2ltcG9ydCA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbXBv
cnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zOSw2ICs0MSwyMCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Jvb2wgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJuIGN1cnJlbnRTdGF0ZU9m
TW9kaWZpZXJLZXlzKCkuY29udGFpbnMoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNhcHNMb2Nr
S2V5KTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmdldEN1cnJlbnRNb2RpZmll
clN0YXRlKGJvb2wmIHNoaWZ0S2V5LCBib29sJiBjdHJsS2V5LCBib29sJiBhbHRLZXksIGJvb2wm
IG1ldGFLZXkpCit7CisgICAgYXV0byBjdXJyZW50TW9kaWZpZXJzID0gY3VycmVudFN0YXRlT2ZN
b2RpZmllcktleXMoKTsKKyAgICBzaGlmdEtleSA9IGN1cnJlbnRNb2RpZmllcnMuY29udGFpbnMo
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OlNoaWZ0S2V5KTsKKyAgICBjdHJsS2V5ID0gY3VycmVu
dE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q3RybEtleSk7Cisg
ICAgYWx0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2Rp
Zmllcjo6QWx0S2V5KTsKKyAgICBtZXRhS2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQ
bGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6TWV0YUtleSk7Cit9CisKIC8vIGh0dHBzOi8vdzNjLmdp
dGh1Yi5pby91aWV2ZW50cy1rZXkvCiBTdHJpbmcga2V5Rm9yQ2hhckNvZGUodW5pY2hhciBjaGFy
Q29kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVu
dElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9LZXlFdmVudElPUy5tbQppbmRl
eCAxOWNhOWJmZGY0YjE2OGEzMTA3NDMyNDJjZGIxOTMxYmMwOTMzMGJlLi45YmQ1N2U3NGFjODgy
YjU0Mzc0NTU4MjA5NDM3MmM3Y2FmN2Q5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvS2V5RXZlbnRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0tleUV2ZW50SU9TLm1tCkBAIC0zMSw4ICszMSwxMCBAQAogI2ltcG9ydCAiS2V5RXZlbnRD
b2NvYS5oIgogI2ltcG9ydCAiS2V5RXZlbnRDb2Rlc0lPUy5oIgogI2ltcG9ydCAiTm90SW1wbGVt
ZW50ZWQuaCIKKyNpbXBvcnQgIldlYkV2ZW50LmgiCiAjaW1wb3J0ICJXaW5kb3dzS2V5Ym9hcmRD
b2Rlcy5oIgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9JT0tpdFNQSS5oPgorI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtMzEyLDE5ICszMTQs
MjkgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVu
dChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAKLWJvb2wgUGxhdGZvcm1L
ZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCitPcHRpb25TZXQ8UGxhdGZvcm1F
dmVudDo6TW9kaWZpZXI+IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudFN0YXRlT2ZNb2Rp
ZmllcktleXMoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQorICAgIC8vIHNfY3VycmVudE1vZGlmaWVycyBpcyBvbmx5IHNldCBpbiB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzLCBub3QgaW4gdGhlIFVJIHByb2Nlc3MuCisgICAgaWYgKHNfY3VycmVudE1vZGlm
aWVycykgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICByZXR1cm4g
KnNfY3VycmVudE1vZGlmaWVyczsKKyAgICB9CiAKLXZvaWQgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiBzaGlmdEtleSwgYm9vbCYgY3RybEtleSwg
Ym9vbCYgYWx0S2V5LCBib29sJiBtZXRhS2V5KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgc2hpZnRLZXkgPSBmYWxzZTsKLSAgICBjdHJsS2V5ID0gZmFsc2U7Ci0gICAgYWx0S2V5ID0g
ZmFsc2U7Ci0gICAgbWV0YUtleSA9IGZhbHNlOworICAgIDo6V2ViRXZlbnRGbGFncyBjdXJyZW50
TW9kaWZpZXJzID0gWzo6V2ViRXZlbnQgbW9kaWZpZXJGbGFnc107CisKKyAgICBPcHRpb25TZXQ8
UGxhdGZvcm1FdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVyczsKKyAgICBpZiAoY3VycmVudE1vZGlm
aWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza1NoaWZ0S2V5KQorICAgICAgICBtb2RpZmllcnMuYWRk
KFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgaWYgKGN1cnJlbnRNb2Rp
ZmllcnMgJiA6OldlYkV2ZW50RmxhZ01hc2tDb250cm9sS2V5KQorICAgICAgICBtb2RpZmllcnMu
YWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5KTsKKyAgICBpZiAoY3VycmVudE1v
ZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza09wdGlvbktleSkKKyAgICAgICAgbW9kaWZpZXJz
LmFkZChQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6QWx0S2V5KTsKKyAgICBpZiAoY3VycmVudE1v
ZGlmaWVycyAmIDo6V2ViRXZlbnRGbGFnTWFza0NvbW1hbmRLZXkpCisgICAgICAgIG1vZGlmaWVy
cy5hZGQoUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6Ok1ldGFLZXkpOworICAgIGlmIChjdXJyZW50
TW9kaWZpZXJzICYgOjpXZWJFdmVudEZsYWdNYXNrTGVmdENhcHNMb2NrS2V5KQorICAgICAgICBt
b2RpZmllcnMuYWRkKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDYXBzTG9ja0tleSk7CisKKyAg
ICByZXR1cm4gbW9kaWZpZXJzOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJF
dmVudC5oCmluZGV4IDNiZDM2YmY3Mzc0YWRmNTBhOGZhM2M5ZjBkNDEwOTMyNDcxNGVlMzUuLjIy
NGEwN2UyMjc4NjYzYmQyYWM2MGQ5OGQyMTJkYzhmNTI3NmJiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJFdmVudC5oCkBAIC0yMTYsNiArMjE2LDggQEAgV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBXZWJFdmVudCA6IE5TT2JqZWN0IHsKIAogQHByb3BlcnR5KG5vbmF0b21pYykg
Qk9PTCB3YXNIYW5kbGVkOwogCitAcHJvcGVydHkgKGNsYXNzLCByZWFkb25seSkgV2ViRXZlbnRG
bGFncyBtb2RpZmllckZsYWdzOworCiBAZW5kCiAKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05F
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViRXZlbnQubW0KaW5kZXggZTY3OGU5ZTQ0YjZm
Nzg4MmU3NDkzYjU1NjZkZTAxZTcyM2QwN2Y0Yi4uYTZiZDczMzM0NTNjMTU3ZjE1YzhhODVjMDk2
NjViNDVhYWZkNDNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkV2ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJFdmVudC5tbQpA
QCAtMzYsNiArMzYsMTQgQEAKICNpbXBvcnQgIktleUV2ZW50Q29kZXNJT1MuaCIKICNpbXBvcnQg
IldBS0FwcEtpdFN0dWJzLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0lPS2l0U1BJLmg+Cisj
aW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CisjaW1wb3J0IDxwYWwv
c3BpL2lvcy9VSUtpdFNQSS5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRf
TElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJQXBwbGljYXRp
b24pOworCisjZGVmaW5lIFVJQXBwbGljYXRpb24gZ2V0VUlBcHBsaWNhdGlvbkNsYXNzKCkKIAog
dXNpbmcgV2ViQ29yZTo6d2luZG93c0tleUNvZGVGb3JLZXlDb2RlOwogdXNpbmcgV2ViQ29yZTo6
d2luZG93c0tleUNvZGVGb3JDaGFyQ29kZTsKQEAgLTQ5MSw2ICs0OTksMTEgQEAgLSAoZmxvYXQp
Z2VzdHVyZVJvdGF0aW9uCiAgICAgcmV0dXJuIF9nZXN0dXJlUm90YXRpb247CiB9CiAKKysgKFdl
YkV2ZW50RmxhZ3MpbW9kaWZpZXJGbGFncworeworICAgIHJldHVybiBHU0V2ZW50SXNIYXJkd2Fy
ZUtleWJvYXJkQXR0YWNoZWQoKSA/IEdTS2V5Ym9hcmRHZXRNb2RpZmllclN0YXRlKFtVSUFwcGxp
Y2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXS5faGFyZHdhcmVLZXlib2FyZCkgOiAwOworfQorCiBA
ZW5kCiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tCmluZGV4IGIwOGE1M2VlNDNkNjFmZGI5ZjU2ZDAxZTVk
NDQzYWEwNGQxOWM1MmIuLjJiY2I1MTBjN2E0Yzg1MjRlNjhiYTE0YTUwMWZkYzllNWYwYjJhOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9LZXlFdmVudE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0KQEAgLTI1OCwy
MSArMjU4LDYgQEAgdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURv
d25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRDb20KICAgICB9CiB9CiAKLWJvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCi17Ci0gICAgYXV0byBj
dXJyZW50TW9kaWZpZXJzID0gY3VycmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKLSAgICByZXR1
cm4gY3VycmVudE1vZGlmaWVycy5jb250YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q2Fw
c0xvY2tLZXkpOwotfQotCi12b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1v
ZGlmaWVyU3RhdGUoYm9vbCYgc2hpZnRLZXksIGJvb2wmIGN0cmxLZXksIGJvb2wmIGFsdEtleSwg
Ym9vbCYgbWV0YUtleSkKLXsKLSAgICBhdXRvIGN1cnJlbnRNb2RpZmllcnMgPSBjdXJyZW50U3Rh
dGVPZk1vZGlmaWVyS2V5cygpOwotICAgIHNoaWZ0S2V5ID0gY3VycmVudE1vZGlmaWVycy5jb250
YWlucyhQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6U2hpZnRLZXkpOwotICAgIGN0cmxLZXkgPSBj
dXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpDdHJsS2V5
KTsKLSAgICBhbHRLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRhaW5zKFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpBbHRLZXkpOwotICAgIG1ldGFLZXkgPSBjdXJyZW50TW9kaWZpZXJzLmNvbnRh
aW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKLX0KLQogT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRTdGF0
ZU9mTW9kaWZpZXJLZXlzKCkKIHsKICNpZiBFTkFCTEUoV0VCUFJPQ0VTU19XSU5ET1dTRVJWRVJf
QkxPQ0tJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ29jb2EuaApp
bmRleCBhNDY0YzEwNDAyZjA0NzEzMjg2YjQ0NjBjNzExODM3YTYyNzg3ZGUwLi5mMTg4NzQyNGY2
M2Y0ZTljNzk4MWRiYzNkNjRhOTgzYWEzYjFlNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNvY29hLmgKQEAgLTM2LDYgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZW5kZXJUaGVtZUNvY29hIDogcHVibGljIFJlbmRlclRoZW1lIHsKIHBy
aXZhdGU6CisgICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElu
cHV0RWxlbWVudCYpIGNvbnN0IGZpbmFsOworCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICB2
b2lkIGFkanVzdEFwcGxlUGF5QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0eWxl
JiwgY29uc3QgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRBcHBsZVBh
eUJ1dHRvbihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNv
Y29hLm1tCmluZGV4IGZlYWNmYzViMzNjNzVkNmEwOWEyZThjYWFjYzkwYzMyNDBhMjIxODguLmI0
YWFmNjQyMWQyYjZkM2M1YjMwZGVhYTc0ZTNlNzI2MzI5ZDJhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1w
b3J0ICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgi
CisjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJUZXh0LmgiCiAK
ICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNTEsNiArNTIsMTEgQEAgU09GVF9MSU5LX01BWV9G
QUlMKFBhc3NLaXQsIFBLRHJhd0FwcGxlUGF5QnV0dG9uLCB2b2lkLCAoQ0dDb250ZXh0UmVmIGNv
bnRleHQsIEMKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitib29sIFJlbmRlclRoZW1lQ29jb2E6
OnNob3VsZEhhdmVDYXBzTG9ja0luZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JiBlbGVt
ZW50KSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50LmlzUGFzc3dvcmRGaWVsZCgpOworfQor
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogc3RhdGljIGNvbnN0IGF1dG8gYXBwbGVQYXlCdXR0
b25NaW5pbXVtV2lkdGggPSAxNDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUlPUy5oCmluZGV4IGNhOGMwYmEyZjIwYzdhYzBmYTNjMmQ0ZTZhMTM1YjhiYTYxYzg2ZDIuLmE1
YTMwYWMyYTk0MWJiMmMzNThmNDRhN2E2ZmY3YzZiZjVmMjAwNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTcsNyArMTE3LDYgQEAgcHJvdGVjdGVk
OgogI2VuZGlmCiAKICAgICBib29sIHNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1
dEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZEhhdmVDYXBzTG9ja0lu
ZGljYXRvcihjb25zdCBIVE1MSW5wdXRFbGVtZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBF
TkFCTEUoVklERU8pCiAgICAgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KaW5kZXggMWQx
N2FlYWYyZDdkNWUyOTQwZTQzMWQxNDRhZDFhY2ZhYTViY2EyOS4uNTJiNGQ3NDViOTk3MzNhYzZh
ZjBiNWI3MmMzNjBiNmIyZDRiMGE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQpAQCAtMTEzNSwxMSArMTEzNSw2IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6
OnNob3VsZEhhdmVTcGluQnV0dG9uKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUlPUzo6c2hvdWxkSGF2ZUNhcHNM
b2NrSW5kaWNhdG9yKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKSBjb25zdAotewotICAgIHJldHVy
biBmYWxzZTsKLX0KLQogRm9udENhc2NhZGVEZXNjcmlwdGlvbiYgUmVuZGVyVGhlbWVJT1M6OmNh
Y2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVlSUQpIGNvbnN0CiB7CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRDYXNjYWRlRGVzY3JpcHRpb24+IHN5c3RlbUZv
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IGQ4NTc2
MWFiYzliMTJkZmRkYTU1NDVkZDE0ZjgwMzQ5NjM3OTUwZDcuLjhjZWQ4ODQ0MWM4MjZiMWQwODhj
MzM5OWM3NmU1MTYyNmRiYmRhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5oCkBAIC0xNjQsOCArMTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Q2xvc2VkQ2FwdGlvbmluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgog
Ci0gICAgYm9vbCBzaG91bGRIYXZlQ2Fwc0xvY2tJbmRpY2F0b3IoY29uc3QgSFRNTElucHV0RWxl
bWVudCYpIGNvbnN0IGZpbmFsOwotCiAgICAgYm9vbCBwYWludFNuYXBzaG90dGVkUGx1Z2luT3Zl
cmxheShjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
JikgZmluYWw7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDNmYmQ2MGQ2MTcxNzlkODBiMTky
NjU5YTliOGYwYmM5YzllNmNkZDUuLmU5MTIxNTA2MGVmOWFiOGQ2MWQzNWViMmM1YmFiOTI4ZmMy
ODM2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAg
LTIzNDIsMTEgKzIzNDIsNiBAQCB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50KikgYwogICAgIH0KIH0KIAot
Ym9vbCBSZW5kZXJUaGVtZU1hYzo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKGNvbnN0IEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVsZW1lbnQuaXNQ
YXNzd29yZEZpZWxkKCk7Ci19Ci0KIE5TUG9wVXBCdXR0b25DZWxsKiBSZW5kZXJUaGVtZU1hYzo6
cG9wdXBCdXR0b24oKSBjb25zdAogewogICAgIGlmICghbV9wb3B1cEJ1dHRvbikgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOWVjNjU5
OGQ3ZjU2YWEzM2U4NzUxOTdlNDlhNzcyZmQ1MzNiNjA4Zi4uZmY3ZDkwYTgyMjBlYzFlY2RmYzkw
YWUyZDQ4YjY0OTNmNDRhZmQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+
CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDx3
dGYvY29jb2EvRW50aXRsZW1lbnRzLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCguLi4pIFJFTEVBU0VfTE9HX0lGKF9wYWdlICYmIF9wYWdlLT5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykKQEAgLTcwMiw2ICs3MDMsOCBAQCAtICh2
b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uCiAKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250ZW50UHJvdmlkZXJS
ZWdpc3RyeV0gYWRkUGFnZToqX3BhZ2VdOwogICAgIF9wYWdlLT5zZXRGb3JjZUFsd2F5c1VzZXJT
Y2FsYWJsZShbX2NvbmZpZ3VyYXRpb24gaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHNdKTsKKwor
ICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJH
ZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJpZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhh
cmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilb
TlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0sIG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3Vz
cGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCkBA
IC04MzksNiArODQyLDggQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW1tfY29uZmlndXJhdGlvbiBf
Y29udGVudFByb3ZpZGVyUmVnaXN0cnldIHJlbW92ZVBhZ2U6Kl9wYWdlXTsKICAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGZdOwogICAg
IFtfc2Nyb2xsVmlldyBzZXRJbnRlcm5hbERlbGVnYXRlOm5pbF07CisKKyAgICBDRk5vdGlmaWNh
dGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90
aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZTdHJpbmdSZWYp
W05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKEFDQ0VTU0lCSUxJVFlfRVZFTlRTKQpAQCAtMzA5OSw2ICszMTA0LDEzIEBAIC0gKHZv
aWQpX2tleWJvYXJkV2lsbEhpZGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiAgICAg
W3NlbGYgX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOm5vdGlmaWNhdGlvbi51c2VySW5mbyBhZGp1
c3RTY3JvbGxWaWV3OllFU107CiB9CiAKK3N0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9i
c2VydmVyLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAg
ICBBU1NFUlQob2JzZXJ2ZXIpOworICAgIFdLV2ViVmlldyAqd2ViVmlldyA9IChfX2JyaWRnZSBX
S1dlYlZpZXcgKilvYnNlcnZlcjsKKyAgICB3ZWJWaWV3Ll9wYWdlLT5oYXJkd2FyZUtleWJvYXJk
QXZhaWxhYmlsaXR5Q2hhbmdlZCgpOworfQorCiAtICh2b2lkKV93aW5kb3dEaWRSb3RhdGU6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKCFfb3ZlcnJpZGVzSW50ZXJm
YWNlT3JpZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCBjOGY4NmRlODUzYmMyMjBjMDY4MDFlMTY0ODM4ODEzODNlM2ZjYjgyLi44ODVkZWU1Njc5
MjZiNWY0M2U1OGUyZTgwZGYzOWUzMmMxMjdkYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgxMzEsNyArODEzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpnZXRJc1ZpZXdWaXNpYmxlKGJvb2wmIHJlc3VsdCkKIAogdm9pZCBXZWJQYWdlUHJveHk6OnVw
ZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKCkKIHsKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKKyNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICBhdXRvIG1vZGlmaWVycyA9IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3Vy
cmVudFN0YXRlT2ZNb2RpZmllcktleXMoKTsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRlKG1vZGlmaWVycyksIG1fcGFnZUlE
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0Njgy
ZDc0YzEyZjA3NzAzOWRlOGIxNWYwNDU0ZWNkOThlNjVjZWNjLi40MzViOWIwOTA3NjdiMjIxZmJk
MGMwNjhiZjZhMjdiZDE1NDg4ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtNjQ1LDYgKzY0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlU2VsZWN0aW9u
Rm9yQWNjZXNzaWJpbGl0eShib29sKTsKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb25JbldpbmRvdyk7CiAgICAgdm9p
ZCBjYW5jZWxBdXRvc2Nyb2xsKCk7CisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZCgpOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlk
SGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0KGJvb2wgc3RhcnRlZCk7CiAgICAgdm9p
ZCBkaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKTsKQEAgLTEz
NjksNiArMTM3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENsb3NlU3VnZ2VzdGlvbnMoKTsK
ICNlbmRpZgogCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW9kaWZpZXJTdGF0ZSgpOworCiBwcml2
YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgdWlu
dDY0X3QgcGFnZUlELCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTE4NTEsOCArMTg1NCw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdG9wRGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgdXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoKTsKLQogICAgIHZvaWQgcmVwb3J0UGFn
ZUxvYWRSZXN1bHQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgPSB7IH0pOwogCiAgICAg
dm9pZCBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0NmZkNjMwNjcwYTdkMzU3
MWIyOGIwYzVhM2E0ZDJmZmFmYTUxNTVkLi5lOTkzZjI4YzUxYWMyOTkwNDBmODYwMDhiMGVkYjg5
ZWI4NjI4NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM3NTYsOSArMzc1NiwxMyBAQCAtIChCT09M
KXJlcXVpcmVzS2V5RXZlbnRzCiAKIC0gKHZvaWQpX2hhbmRsZUtleVVJRXZlbnQ6KDo6VUlFdmVu
dCAqKWV2ZW50CiB7CisgICAgYm9vbCBpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCA9ICEhZXZlbnQu
X2hpZEV2ZW50OworICAgIGlmIChpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCAmJiAoKFVJUGh5c2lj
YWxLZXlib2FyZEV2ZW50ICopZXZlbnQpLl9pbnB1dEZsYWdzICYga1VJS2V5Ym9hcmRJbnB1dE1v
ZGlmaWVyRmxhZ3NDaGFuZ2VkKQorICAgICAgICBfcGFnZS0+dXBkYXRlQ3VycmVudE1vZGlmaWVy
U3RhdGUoKTsKKwogICAgIC8vIFdlIG9ubHkgd2FudCB0byBoYW5kbGUga2V5IGV2ZW50IGZyb20g
dGhlIGhhcmR3YXJlIGtleWJvYXJkIHdoZW4gd2UgYXJlCiAgICAgLy8gZmlyc3QgcmVzcG9uZGVy
IGFuZCB3ZSBhcmUgbm90IGludGVyYWN0aW5nIHdpdGggZWRpdGFibGUgY29udGVudC4KLSAgICBp
ZiAoW3NlbGYgaXNGaXJzdFJlc3BvbmRlcl0gJiYgZXZlbnQuX2hpZEV2ZW50ICYmICFfcGFnZS0+
ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgeworICAgIGlmIChbc2VsZiBpc0ZpcnN0
UmVzcG9uZGVyXSAmJiBpc0hhcmR3YXJlS2V5Ym9hcmRFdmVudCAmJiAhX3BhZ2UtPmVkaXRvclN0
YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsKICAgICAgICAgW3NlbGYgaGFuZGxlS2V5RXZlbnQ6
ZXZlbnRdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzg2NTg4NDExMzE5NGJlYzk0ODRiNjQ2
Y2VkMDAzYzFmMjQ2MWYwZS4uM2RjN2ZiNGNiZTM4NzA5MzY3ZWRiYTUzYTViN2Q3ZDU2NmRhNzcz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CkBAIC0xMDg5LDYgKzEwODksMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldElzU2Nyb2xsaW5n
T3Jab29taW5nKGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcpCiAgICAgICAgIG1fdmFsaWRhdGlv
bkJ1YmJsZS0+c2hvdygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFyZHdhcmVLZXlib2Fy
ZEF2YWlsYWJpbGl0eUNoYW5nZWQoKQoreworICAgIHVwZGF0ZUN1cnJlbnRNb2RpZmllclN0YXRl
KCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYXJkd2FyZUtleWJv
YXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpLCBtX3BhZ2VJRCk7Cit9CisKICNpZiBFTkFCTEUoREFU
QV9JTlRFUkFDVElPTikKIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEhhbmRsZVN0YXJ0RGF0YUlu
dGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNDA3NmVhN2I3NDUyOTNlZGNlMDc3YjgyOGZjNWMzYzY1
YWQ2ZmE5NC4uOTlmNDQyNGI3ZjlmYTFiMmFmZWRhMjhkZTVlNDcxZWJhMDJlNjBjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTEzLDYgKzkxMyw4
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGxhdGZvcm1QcmVmZXJzVGV4dExlZ2liaWxpdHlCYXNl
ZFpvb21TY2FsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1
cmF0aW9uJiB2aWV3cG9ydENvbmZpZ3VyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbjsgfQorCisgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5
Q2hhbmdlZCgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IGZkNDMwZDY5YWUyNTQ1YjIwOWYyMjY3YTdlYWU1NmRiMjVkOTBmZTQuLjc2MjZmYmIy
NjUzNGY0NzY2N2RkNjIxZGY3NzdmNTAzMDY4MDUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTA2LDYgKzEw
Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0QXV0
b3Njcm9sbEF0UG9zaXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBwb3NpdGlvbkluV2luZG93KQog
ICAgIENhbmNlbEF1dG9zY3JvbGwoKQogICAgIFJlcXVlc3RBc3Npc3RlZE5vZGVJbmZvcm1hdGlv
bihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBIYXJkd2FyZUtleWJvYXJkQXZh
aWxhYmlsaXR5Q2hhbmdlZCgpCiAjZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRCeUF1dG9tYXRp
b24oYm9vbCBjb250cm9sbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4YWFmZGIzNTViZWEyMWU0Y2YwOGQ4NDAxMjg4
ZDVmYzAzM2ZjZjE4Li5iMWY0NGE3Y2E0YjQ5NGIxMzVjNTBjMTk1ZmQwMDgwY2QzZTQxZTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMzA4Niw2ICszMDg2LDEyIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJB
Z2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordm9pZCBX
ZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZCgpCit7CisgICAgaWYg
KGF1dG8qIGZvY3VzZWRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZy
YW1lKCkpCisgICAgICAgIGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0
ZU1heUhhdmVDaGFuZ2VkKCk7Cit9CisKICNpZiBVU0UoUVVJQ0tfTE9PSykKIHZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBw
YXNzd29yZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tCmluZGV4IDZkZGFjYTEwOGMzN2RmYzQ0ZTczYzk3MGJlN2M2NTg2NmE4MGFhNDAuLjkw
YTAyNTk5MDdjYzFkOWJmODMxODA2MTIzYjQ1M2E1YTA1YTllNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTY0LDcgKzE2NCw5IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1dBS1Njcm9sbFZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV0FL
V2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dLR3JhcGhpY3MuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZVRocmVhZFJ1bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgorI2lt
cG9ydCA8cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODE0LDYgKzgxNiwxNiBAQCBzdGF0aWMgQ2FjaGVkSW1h
Z2VDbGllbnQmIHByb21pc2VkRGF0YUNsaWVudCgpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViTWFya2VkVGV4dFVwZGF0ZWROb3RpZmljYXRp
b24gPSBAIldlYk1hcmtlZFRleHRVcGRhdGVkIjsKKworc3RhdGljIHZvaWQgaGFyZHdhcmVLZXli
b2FyZEF2YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjayhDRk5vdGlmaWNhdGlvbkNlbnRlclJlZiwg
dm9pZCogb2JzZXJ2ZXIsIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9uYXJ5UmVm
KQoreworICAgIEFTU0VSVChvYnNlcnZlcik7CisgICAgV2ViVGhyZWFkUnVuKF57CisgICAgICAg
IFdlYkhUTUxWaWV3ICp3ZWJWaWV3ID0gKF9fYnJpZGdlIFdlYkhUTUxWaWV3ICopb2JzZXJ2ZXI7
CisgICAgICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gY29yZShbd2ViVmlldyBfZnJhbWVdKSkK
KyAgICAgICAgICAgIGNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuY2Fwc0xvY2tTdGF0ZU1heUhh
dmVDaGFuZ2VkKCk7CisgICAgfSk7Cit9CiAjZW5kaWYKIAogQGludGVyZmFjZSBXZWJIVE1MVmll
dyAoV2ViSFRNTFZpZXdGaWxlSW50ZXJuYWwpCkBAIC0yNjEwLDYgKzI2MjIsNyBAQCAtIChpZClp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIAogICAgICAgICAgICAgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IobWFya2VkVGV4dFVwZGF0ZTopIAogICAgICAgICAgICAgICAgICAgIG5hbWU6V2ViTWFy
a2VkVGV4dFVwZGF0ZWROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgQ0ZOb3RpZmljYXRp
b25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNl
bnRlcigpLCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFyZHdhcmVLZXlib2FyZEF2
YWlsYWJpbGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtOU1N0cmluZyBzdHJpbmdX
aXRoVVRGOFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2Vk
Tm90aWZpY2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JD
b2FsZXNjZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI2MjYsNiArMjYzOSw3
IEBAIC0gKHZvaWQpZGVhbGxvYwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFt
ZTpXZWJNYXJrZWRUZXh0VXBkYXRlZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBDRk5v
dGlmaWNhdGlvbkNlbnRlclJlbW92ZU9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFy
d2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCAoQ0ZTdHJp
bmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXli
b2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxscHRyKTsKICNlbmRpZgog
CiAgICAgLy8gV2UgY2FuJ3QgYXNzZXJ0IHRoYXQgY2xvc2UgaGFzIGFscmVhZHkgYmVlbiBjYWxs
ZWQgYmVjYXVzZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMGRiMTA4Zjc3MDdhYTU5ZDY4MTcxM2ExNmJhYjQ5
YmJiNjEwMTYxMC4uMjEzN2IzODBkZmFhMTkzYjYxZjI5NjRkZDYwOTVmYTQ3ZGUxOTU5NSAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTgtMTEtMDcgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIERyYXcgY2FwcyBsb2NrIGluZGljYXRv
ciBpbiBwYXNzd29yZCBmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDU2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUyNjIzNDM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHNv
bWUgbW9yZSBzeW1ib2xzLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2lPUy8xMi9HcmFwaGljc1NlcnZpY2VzLmZyYW1ld29yay9HcmFwaGljc1NlcnZpY2VzLnRiZDoK
KwogMjAxOC0wNi0yNyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5hYmxlIFdlYktpdCBpT1MgMTIgYnVpbGQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEyL0dyYXBoaWNzU2VydmljZXMu
ZnJhbWV3b3JrL0dyYXBoaWNzU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3Jh
cGhpY3NTZXJ2aWNlcy50YmQKaW5kZXggYWIxYzQwNjAwZWY3MzllZDA3OTcwZjVmYjM3Yjk1ZTc4
OTc0MTUxYy4uZDM1NDMyNDY1ZDFiM2Q4NjNlMjY3OTQzYzhlM2FiNTJhNzEzNDlmNCAxMDA2NDQK
LS0tIGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIv
R3JhcGhpY3NTZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKKysrIGIvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTIvR3JhcGhpY3NT
ZXJ2aWNlcy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcy50YmQKQEAgLTE1LDEwICsxNSwxMyBA
QCBleHBvcnRzOgogICAgICAgLSB4ODZfNjQKICAgICBzeW1ib2xzOgogICAgICAgLSBfR1NDdXJy
ZW50RXZlbnRUaW1lc3RhbXAKKyAgICAgIC0gX0dTRXZlbnRJc0hhcmR3YXJlS2V5Ym9hcmRBdHRh
Y2hlZAogICAgICAgLSBfR1NGb250SW5pdGlhbGl6ZQogICAgICAgLSBfR1NGb250UHVyZ2VGb250
Q2FjaGUKICAgICAgIC0gX0dTSW5pdGlhbGl6ZQorICAgICAgLSBfR1NLZXlib2FyZEdldE1vZGlm
aWVyU3RhdGUKICAgICAgIC0gX0dTU3lzdGVtUm9vdERpcmVjdG9yeQorICAgICAgLSBfa0dTRXZl
bnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbgogaW5zdGFs
bC1uYW1lOiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR3JhcGhpY3NTZXJ2aWNl
cy5mcmFtZXdvcmsvR3JhcGhpY3NTZXJ2aWNlcwogb2JqYy1jb25zdHJhaW50OiBub25lCiBwbGF0
Zm9ybTogaW9zCg==
</data>
<flag name="review"
          id="371487"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>