<?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>212060</bug_id>
          
          <creation_ts>2020-05-18 20:45:25 -0700</creation_ts>
          <short_desc>Hide password echo when screen is being captured.</short_desc>
          <delta_ts>2020-05-28 16:39:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653888</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-18 20:45:25 -0700</bug_when>
    <thetext>Hide password echo when screen is being captured.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653892</commentid>
    <comment_count>1</comment_count>
      <attachid>399708</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-18 20:58:24 -0700</bug_when>
    <thetext>Created attachment 399708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653893</commentid>
    <comment_count>2</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-18 20:58:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/47653578&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653895</commentid>
    <comment_count>3</comment_count>
      <attachid>399708</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-18 21:15:50 -0700</bug_when>
    <thetext>Comment on attachment 399708
Patch

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

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.cpp:56
&gt; +    bool screenIsCaptured = document().editor().client()-&gt;isScreenCaptured();

IMO the editor client method should be named similarly to the setting (shouldEchoPassword or something)

&gt; Source/WebKit/UIProcess/ios/WKContentView.mm:172
&gt; +    _page-&gt;setIsScreenCaptured([[UIScreen mainScreen] isCaptured]);

I’m not sure it makes sense to mirror the main screen’s state, we should send the message (with the right window’s state) when we’re parented instead.

&gt; Source/WebKit/UIProcess/ios/WKContentView.mm:778
&gt; +    _page-&gt;setIsScreenCaptured([[UIScreen mainScreen] isCaptured]);

Should always be using the WebView or content view screen</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653900</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-18 21:25:30 -0700</bug_when>
    <thetext>Also, nothing is pushing the right state in the process swap or crash case. You should add a bit to WebPageCreationParameters that, if parented, provides the current window’s state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654275</commentid>
    <comment_count>5</comment_count>
      <attachid>399797</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-19 18:20:40 -0700</bug_when>
    <thetext>Created attachment 399797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654296</commentid>
    <comment_count>6</comment_count>
      <attachid>399801</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-19 20:04:54 -0700</bug_when>
    <thetext>Created attachment 399801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654318</commentid>
    <comment_count>7</comment_count>
      <attachid>399801</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-19 21:26:44 -0700</bug_when>
    <thetext>Comment on attachment 399801
Patch

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

&gt; Source/WebCore/page/EditorClient.h:74
&gt; +    virtual bool surpressPasswordEcho() const { return false; };

Nit - `suppressPasswordEcho`.

&gt; Source/WebKitLegacy/ios/DefaultDelegates/WebDefaultUIKitDelegate.m:271
&gt; +- (BOOL)surpressPasswordEcho

Nit - `suppressPasswordEcho`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654320</commentid>
    <comment_count>8</comment_count>
      <attachid>399801</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-19 21:37:17 -0700</bug_when>
    <thetext>Comment on attachment 399801
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentView.mm:776
&gt; +- (void)_screenCapturedDidChange:(NSNotification*)notification

Nit - space before the *.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:2002
&gt; +    WebCore::FloatSize m_screenCaptured;

I think you meant to delete this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654321</commentid>
    <comment_count>9</comment_count>
      <attachid>399801</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-19 21:46:27 -0700</bug_when>
    <thetext>Comment on attachment 399801
Patch

Oh also — is UIScreenCapturedDidChangeNotification dispatched when we’re unparented or parented? (e.g. what happens if the screen is being captured in a WKWebView, but then the web view is removed from the view hierarchy and added later after screen capture has ended?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654326</commentid>
    <comment_count>10</comment_count>
      <attachid>399801</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-19 22:07:23 -0700</bug_when>
    <thetext>Comment on attachment 399801
Patch

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

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.cpp:56
&gt; +    bool suppressPasswordEcho = document().editor().client()-&gt;surpressPasswordEcho();

shouldSuppressPasswordEcho

&gt; Source/WebKit/UIProcess/WebPageProxy.h:722
&gt; +    void setIsScreenCaptured(bool);

setScreenIsBeingCaptured.

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1583
&gt; +void WebPageProxy::setIsScreenCaptured(bool screenMirroring)

The dissonance between &quot;captured&quot; and &quot;mirroring&quot; is confusing.

&gt; Source/WebKit/WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:122
&gt; +bool WebEditorClient::surpressPasswordEcho() const

shouldSurpressPasswordEcho

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:670
&gt; +    bool isScreenCaptured() const { return m_isScreenCaptured; }
&gt; +    void setIsScreenCaptured(bool);

isScreenBeingCaptured?

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:4281
&gt; +void WebPage::setIsScreenCaptured(bool captured)

I would say &quot;being captured&quot; here. We&apos;re not capturing the screen, someone else is. &quot;captured&quot; is also vague here (easily confused with pointer capture). Can we say &quot;being mirrored&quot; instead?

&gt; Source/WebKitLegacy/ios/WebView/WebUIKitDelegate.h:131
&gt; +- (BOOL)surpressPasswordEcho;

Sounds like a verb. Should be isPasswordEchoSurpressed.

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:833
&gt; +bool WebEditorClient::surpressPasswordEcho() const

isPasswordEchoSurpressed

&gt; Source/WebKitLegacy/mac/WebView/WebViewData.h:248
&gt; +    BOOL surpressPasswordEcho;

isPasswordEchoSurpressed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654564</commentid>
    <comment_count>11</comment_count>
      <attachid>399867</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-20 11:56:04 -0700</bug_when>
    <thetext>Created attachment 399867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654611</commentid>
    <comment_count>12</comment_count>
      <attachid>399883</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-20 13:25:45 -0700</bug_when>
    <thetext>Created attachment 399883
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654629</commentid>
    <comment_count>13</comment_count>
      <attachid>399883</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 13:54:48 -0700</bug_when>
    <thetext>Comment on attachment 399883
Patch for landing

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:669
&gt; +    bool screenIsCaptured() const { return m_screenIsCaptured; }

Missing a &quot;being&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654659</commentid>
    <comment_count>14</comment_count>
      <attachid>399896</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-20 14:57:41 -0700</bug_when>
    <thetext>Created attachment 399896
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654676</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-20 15:34:04 -0700</bug_when>
    <thetext>Committed r261966: &lt;https://trac.webkit.org/changeset/261966&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399896.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655941</commentid>
    <comment_count>16</comment_count>
      <attachid>399867</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-25 14:57:54 -0700</bug_when>
    <thetext>Comment on attachment 399867
Patch

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

&gt; Source/WebCore/editing/InsertIntoTextNodeCommand.cpp:56
&gt; +    bool shouldSuppressPasswordEcho = document().editor().client()-&gt;shouldSuppressPasswordEcho();

I think this should be added to the passwordEchoEnabled expression, rather than put in a separate boolean.

&gt; Source/WebKitLegacy/mac/WebView/WebView.mm:1528
&gt; +    if ([[self _UIKitDelegateForwarder] respondsToSelector:@selector(shouldSuppressPasswordEcho)])
&gt; +        _private-&gt;shouldSuppressPasswordEcho = [[self _UIKitDelegateForwarder] shouldSuppressPasswordEcho];

I think this code should be removed.

&gt; Source/WebKitLegacy/mac/WebView/WebViewData.h:248
&gt; +    BOOL shouldSuppressPasswordEcho;

I think this should be removed. It’s set but never read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657086</commentid>
    <comment_count>17</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-05-28 16:39:15 -0700</bug_when>
    <thetext>Post commit comments address in https://trac.webkit.org/changeset/262272/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399708</attachid>
            <date>2020-05-18 20:58:24 -0700</date>
            <delta_ts>2020-05-19 18:20:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212060-20200518205823.patch</filename>
            <type>text/plain</type>
            <size>13044</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uZmJmNTJiZjA4YmQ5MGNlNzJkZGMxODFhZjJiYTMz
NWU5M2UxYjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBzY3JlZW4gaXMgYmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRo
ZSBwYXNzd29yZCBlY2hvLiAKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50Ojppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKwogMjAyMC0wNS0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZh
dWx0IGluaXRpYWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUwMGQ0
NDg3MTMzYWU5MzUwZDk1ZDEwY2U1YmM4ZWIwN2E2ZDc5Li4yY2E2MzgzYzdmZTkyZGQ3NDI3YTU4
NWI1Nzg5YjkyMDMyMzVlYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTE4
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlk
ZSBwYXNzd29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgdGhlIFVJU2NyZWVuIHN0YXRlIGFuZCBub3RpZmljYXRpb24g
dG8gZGV0ZXJtaW5lIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgYmVpbmcgc2hhcmVkIG9yIGNh
cHR1cmVkLiBUaGlzIGZsYWcgaXMgZm9yIGFsbAorICAgICAgICBjYXB0dXJlIG1ldGhvZHMsIEFp
ciBQbGF5LCBTY3JlZW4gUmVjb3JkaW5nLCBldGMuIElmIHRoZSBzY3JlZW4gaXMKKyAgICAgICAg
YmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRoZSBwYXNzd29yZCBlY2hvIHRvIHByZXZlbnQgdGhl
IHBhc3N3b3JkIGZyb20KKyAgICAgICAgYmVpbmcgbGVha2VkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SXNTY3Jl
ZW5DYXB0dXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJF
ZGl0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNT
Y3JlZW5DYXB0dXJlZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRJc1NjcmVlbkNhcHR1cmVkKToKKwogMjAyMC0wNS0xOCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZhdWx0IGluaXRp
YWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNjYwMWRiOGZjYjRlMzdm
NGFkYjIwYWYxNzgyZTIyMTI0Y2YxM2JkNy4uNzNmYTI0YTc0ZjRjMTFiNTYxY2FjNmY0N2I5Y2Jk
MjA2NjMwZTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTEs
MTMgKzUzLDE0IEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQKIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0g
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAgICBpZiAocGFz
c3dvcmRFY2hvRW5hYmxlZCkKKyAgICBib29sIHNjcmVlbklzQ2FwdHVyZWQgPSBkb2N1bWVudCgp
LmVkaXRvcigpLmNsaWVudCgpLT5pc1NjcmVlbkNhcHR1cmVkKCk7CisgICAgaWYgKHBhc3N3b3Jk
RWNob0VuYWJsZWQgJiYgIXNjcmVlbklzQ2FwdHVyZWQpCiAgICAgICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoIW1fbm9kZS0+
aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAocGFzc3dvcmRF
Y2hvRW5hYmxlZCkgeworICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkICYmICFzY3JlZW5Jc0Nh
cHR1cmVkKSB7CiAgICAgICAgIGlmIChSZW5kZXJUZXh0KiByZW5kZXJUZXh0ID0gbV9ub2RlLT5y
ZW5kZXJlcigpKQogICAgICAgICAgICAgcmVuZGVyVGV4dC0+bW9tZW50YXJpbHlSZXZlYWxMYXN0
VHlwZWRDaGFyYWN0ZXIobV9vZmZzZXQgKyBtX3RleHQubGVuZ3RoKCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDU4NGIxZTQzODA3Yzg4MWI0MDBjYTNjNDQ1YjY5
OGE4NDdmODM0MmIuLjc0MjVhMDZjMGZkZjcwZDkzN2VmZDJhMWI2ZWJkMjZkMTg1YmJmYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJv
bURlbGVnYXRlKGludCBpbmRleCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0
ZXBQYXN0ZShEb2N1bWVudEZyYWdtZW50KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVT
dHJpbmdGb3JGaW5kKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3Jl
ZW5DYXB0dXJlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDg0
MWE5YmU2MGY1ZjVjNjcwOGJkNzFjNWVjY2JlMDEwZWNlZDIyMy4uOWI4OTliMWJlZjlmMzQ0MDcz
YjkyNzBkM2FmNWQ0ZDU1MmFkNTc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTcxOCw2ICs3MTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1
dENvbnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
IAogICAgIHZvaWQgc2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9u
KGJvb2wpOworICAgICAgICAKKyAgICB2b2lkIHNldElzU2NyZWVuQ2FwdHVyZWQoYm9vbCk7CiAK
ICAgICB2b2lkIGluc2VydFRleHRQbGFjZWhvbGRlcihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dD4mKT4mJik7CiAgICAgdm9pZCByZW1vdmVUZXh0UGxhY2Vob2xkZXIoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudENvbnRleHQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAyZDc5Y2VmMThk
YzU1ZDJmNTRkZGI1NDAyYjNhNDU5Mjc5MzBkYzUwLi5jODg0YTJjNmY2NTMwNTVmYzMxZWZjYWJl
NTlkMTRiNTVjMWQzZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQpAQCAtMTY5LDYgKzE2OSw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAg
ICAgX3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFdlYkNvcmU6OnNjcmVlblNj
YWxlRmFjdG9yKFtVSVNjcmVlbiBtYWluU2NyZWVuXSkpOwogICAgIF9wYWdlLT5zZXRVc2VGaXhl
ZExheW91dCh0cnVlKTsKICAgICBfcGFnZS0+c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKHRydWUpOwor
ICAgIF9wYWdlLT5zZXRJc1NjcmVlbkNhcHR1cmVkKFtbVUlTY3JlZW4gbWFpblNjcmVlbl0gaXND
YXB0dXJlZF0pOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIF9wYWdlLT5zZXRG
dWxsc2NyZWVuQ2xpZW50KG1ha2VVbmlxdWU8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50PihzZWxm
LndlYlZpZXcpKTsKQEAgLTIwOCw2ICsyMDksNyBAQCAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbklu
aXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcgog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlOikgbmFtZTpV
SUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNh
dGlvbiBzaGFyZWRBcHBsaWNhdGlvbl1dOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3Jv
dW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl1d
OwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZDop
IG5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmljYXRpb24gb2JqZWN0
OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CisgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rv
cihfc2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6KSBuYW1lOlVJU2NyZWVuQ2FwdHVyZWREaWRDaGFu
Z2VOb3RpZmljYXRpb24gb2JqZWN0OltVSVNjcmVlbiBtYWluU2NyZWVuXV07CiAKICNpZiBVU0Uo
VUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChXZWJDb3JlOjpJT1NBcHBsaWNhdGlv
bjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpG
aXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1hbmRzKSkKQEAgLTc3
MSw2ICs3NzMsMTEgQEAgLSAodm9pZClfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOihO
U05vdGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCiAgICAgICAgIF9wYWdlLT5hcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmRGb3JNZWRpYSgpOwogfQogCistICh2b2lkKV9zY3JlZW5DYXB0dXJl
ZERpZENoYW5nZTooTlNOb3RpZmljYXRpb24qKW5vdGlmaWNhdGlvbgoreworICAgIF9wYWdlLT5z
ZXRJc1NjcmVlbkNhcHR1cmVkKFtbVUlTY3JlZW4gbWFpblNjcmVlbl0gaXNDYXB0dXJlZF0pOwor
fQorCiBAZW5kCiAKICNwcmFnbWEgbWFyayBQcmludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMjRiNTdlYTFlYzVlMmI1YmVjNTRi
MjMzMTIzZTRiZDRiNWI0ZTk4My4uZjAxOTQ2MDlmOWY1MzIzZTZiYTBkZDgyODAxMTdiZjk2Zjg3
OWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCkBAIC0xNTgwLDYgKzE1ODAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJl
dmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJldmUKICAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlv
bkFmdGVySW5zZXJ0aW9uKHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlv
bikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNTY3JlZW5DYXB0dXJlZChib29sIHNj
cmVlbk1pcnJvcmluZykKK3sKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0SXNTY3JlZW5DYXB0dXJlZChzY3JlZW5NaXJyb3Jp
bmcpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OndpbGxPcGVuQXBwTGluaygpCiB7CiAgICAg
aWYgKG1fb3BlbmluZ0FwcExpbmtBY3Rpdml0eSAmJiBtX29wZW5pbmdBcHBMaW5rQWN0aXZpdHkt
PmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAwZDYyZjczMmJhZDQ5NWJmMGM0YzAz
ZDE5MWEzMTgyN2MxOTU2ZjJmLi5kOTA5YjIzMzg5OGZkYTJlYWRiZjg1NWE5NDNmNWI1NjQwN2Fh
MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xODgsNiArMTg4LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgYm9v
bCBzaG91bGRBbGxvd1NpbmdsZUNsaWNrVG9DaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6Tm9kZSYs
IGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBjb25zdCBmaW5hbDsKICAgICBib29s
IHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IGZpbmFs
OworICAgIGJvb2wgaXNTY3JlZW5DYXB0dXJlZCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAg
ICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2Vi
Q29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xp
ZW50SU9TLm1tCmluZGV4IDhmN2ZmMDdlOGM4ZTI5N2FjNjZjYjZhMzJkOThiNjRlYjhjZWJjMjAu
LjI3NTc5YzkwNDJkMjIxMjljNTI1YzhmMmYxNTZkM2ZkMmQyMTZhMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3Mv
V2ViRWRpdG9yQ2xpZW50SU9TLm1tCkBAIC0xMTksNiArMTE5LDExIEBAIGJvb2wgV2ViRWRpdG9y
Q2xpZW50OjpzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25z
dAogICAgIHJldHVybiBtX3BhZ2UtPnNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlcklu
c2VydGlvbigpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTY3JlZW5DYXB0dXJlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+aXNTY3JlZW5DYXB0dXJlZCgpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGIxZDgxYzg2
OThjN2FhMjY0Yzc2YTkwMjU0ZTcwMGI0YWY5YzM1Yy4uNGJjOWY1ZGEyN2ExMThiNzQxOTg3NTBj
NmEzMzlhMDI2ZTBjYjRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaApAQCAtNjY1LDYgKzY2NSw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgb3ZlcnJpZGVTY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0KICAgICB2b2lkIGRp
ZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpOworICAgIAorICAgIGJvb2wgaXNTY3JlZW5DYXB0
dXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY3JlZW5DYXB0dXJlZDsgfQorICAgIHZvaWQgc2V0
SXNTY3JlZW5DYXB0dXJlZChib29sKTsKIAogICAgIGRvdWJsZSBtaW5pbXVtUGFnZVNjYWxlRmFj
dG9yKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsK
QEAgLTE5ODgsMTEgKzE5OTEsMTQgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU3RhYmxlUGFn
ZVNjYWxlRmFjdG9yIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc0luU3RhYmxlU3RhdGUgeyB0cnVl
IH07CiAgICAgYm9vbCBtX3Nob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlv
biB7IHRydWUgfTsKKyAgICBib29sIG1faXNTY3JlZW5DYXB0dXJlZCB7IGZhbHNlIH07CiAgICAg
TW9ub3RvbmljVGltZSBtX29sZGVzdE5vblN0YWJsZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNU
aW1lc3RhbXA7CiAgICAgU2Vjb25kcyBtX2VzdGltYXRlZExhdGVuY3kgeyAwIH07CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIG1fc2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9h
dmFpbGFibGVTY3JlZW5TaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX292ZXJyaWRlU2Ny
ZWVuU2l6ZTsKKyAgICAKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9zY3JlZW5DYXB0dXJlZDsK
IAogICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9pbml0aWFsU2VsZWN0aW9uOwogICAgIFdl
YkNvcmU6OlZpc2libGVTZWxlY3Rpb24gbV9zdG9yZWRTZWxlY3Rpb25Gb3JBY2Nlc3NpYmlsaXR5
IHsgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbigpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA4MWE3Zjc4YTBh
Njg5ZTMyNTAxMmI4MzJmZjc4OWQxZjk5MTg5YTc3Li5mZmNlZDhhNjE2NzcwZTM3ZmJiMWQyN2Mx
ZjA3MGVjYmU3ZWEyZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTUyLDYgKzUyLDggQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKE9w
dGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVudHMpCiAgICAgRHluYW1p
Y1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUgdmlld0xheW91dFNpemUsIFdl
YkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVj
dCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNj
dXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2NhbGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRp
b24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgsIHVpbnQ2NF90IGR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGVJRCkKKyAgICAKKyAgICBTZXRJc1NjcmVlbkNhcHR1cmVkKGJvb2wg
Y2FwdHVyZWQpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlv
blNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6OlRyYW5z
YWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAgICAgUG90ZW50aWFsVGFwQXRQ
b3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJv
b2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODE5ZmJi
ZmMyM2Q2NDUwYWYxNTViZjkwZWU0ZmQ5MjhiZTc2ZDBlYy4uZTViNTcxZDZjZDE2ZGM4MjVhYjky
Y2U4ZTczZWMzZTBmODdjMjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQyNzgsNiArNDI3OCwxMSBAQCB2b2lkIFdl
YlBhZ2U6OnNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29s
IHNob3VsZFJldmVhbEN1cgogICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiB9
CiAKK3ZvaWQgV2ViUGFnZTo6c2V0SXNTY3JlZW5DYXB0dXJlZChib29sIGNhcHR1cmVkKQorewor
ICAgIG1faXNTY3JlZW5DYXB0dXJlZCA9IGNhcHR1cmVkOworfQorCiB2b2lkIFdlYlBhZ2U6OnRl
eHRJbnB1dENvbnRleHRzSW5SZWN0KEZsb2F0UmVjdCBzZWFyY2hSZWN0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxFbGVtZW50Q29udGV4dD4mKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIGNvbnRleHRzID0gbV9wYWdlLT5lZGl0YWJsZUVsZW1lbnRzSW5S
ZWN0KHNlYXJjaFJlY3QpLm1hcChbJl0gKGNvbnN0IGF1dG8mIGVsZW1lbnQpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399797</attachid>
            <date>2020-05-19 18:20:40 -0700</date>
            <delta_ts>2020-05-19 20:04:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212060-20200519182038.patch</filename>
            <type>text/plain</type>
            <size>18773</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uZmJmNTJiZjA4YmQ5MGNlNzJkZGMxODFhZjJiYTMz
NWU5M2UxYjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBzY3JlZW4gaXMgYmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRo
ZSBwYXNzd29yZCBlY2hvLiAKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50Ojppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKwogMjAyMC0wNS0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZh
dWx0IGluaXRpYWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUwMGQ0
NDg3MTMzYWU5MzUwZDk1ZDEwY2U1YmM4ZWIwN2E2ZDc5Li4yY2E2MzgzYzdmZTkyZGQ3NDI3YTU4
NWI1Nzg5YjkyMDMyMzVlYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTE4
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlk
ZSBwYXNzd29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgdGhlIFVJU2NyZWVuIHN0YXRlIGFuZCBub3RpZmljYXRpb24g
dG8gZGV0ZXJtaW5lIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgYmVpbmcgc2hhcmVkIG9yIGNh
cHR1cmVkLiBUaGlzIGZsYWcgaXMgZm9yIGFsbAorICAgICAgICBjYXB0dXJlIG1ldGhvZHMsIEFp
ciBQbGF5LCBTY3JlZW4gUmVjb3JkaW5nLCBldGMuIElmIHRoZSBzY3JlZW4gaXMKKyAgICAgICAg
YmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRoZSBwYXNzd29yZCBlY2hvIHRvIHByZXZlbnQgdGhl
IHBhc3N3b3JkIGZyb20KKyAgICAgICAgYmVpbmcgbGVha2VkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SXNTY3Jl
ZW5DYXB0dXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJF
ZGl0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNT
Y3JlZW5DYXB0dXJlZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRJc1NjcmVlbkNhcHR1cmVkKToKKwogMjAyMC0wNS0xOCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZhdWx0IGluaXRp
YWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNjYwMWRiOGZjYjRlMzdm
NGFkYjIwYWYxNzgyZTIyMTI0Y2YxM2JkNy4uMjBmMzU1ZmI0ZTg2MDZmNDkxZDU4ZTA4N2YwZjYy
MjVhMzE3Y2RiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTEs
MTMgKzUzLDE0IEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQKIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0g
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAgICBpZiAocGFz
c3dvcmRFY2hvRW5hYmxlZCkKKyAgICBib29sIHN1cHByZXNzUGFzc3dvcmRFY2hvID0gZG9jdW1l
bnQoKS5lZGl0b3IoKS5jbGllbnQoKS0+c3VycHJlc3NQYXNzd29yZEVjaG8oKTsKKyAgICBpZiAo
cGFzc3dvcmRFY2hvRW5hYmxlZCAmJiAhc3VwcHJlc3NQYXNzd29yZEVjaG8pCiAgICAgICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBp
ZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAocGFzc3dvcmRFY2hvRW5hYmxlZCkgeworICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkICYm
ICFzdXBwcmVzc1Bhc3N3b3JkRWNobykgewogICAgICAgICBpZiAoUmVuZGVyVGV4dCogcmVuZGVy
VGV4dCA9IG1fbm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlclRleHQtPm1vbWVu
dGFyaWx5UmV2ZWFsTGFzdFR5cGVkQ2hhcmFjdGVyKG1fb2Zmc2V0ICsgbV90ZXh0Lmxlbmd0aCgp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCA1ODRiMWU0MzgwN2M4
ODFiNDAwY2EzYzQ0NWI2OThhODQ3ZjgzNDJiLi5kOWZlZGQ2MGIxMWU5MzZlZmM4ZDQyZDIxZjM1
NWJjYjZmNDZiYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTE0MSw2ICsx
NDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9j
dW1lbnRGcmFnbWVudEZyb21EZWxlZ2F0ZShpbnQgaW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVudCopID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmly
dHVhbCBib29sIHN1cnByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH07
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA4YzgwZGUyZjMyZWM0Njgw
OWZmZDBlMzAwN2Y3NzRiZmE0ODUxZmU0Li5hMWM2ZDE2ZTllNThmZmU2MGYyM2I5YTU0NzQ4ZTAw
N2RmODNkMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtMTA3LDYgKzEwNyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IGRldmljZU9yaWVudGF0aW9uOwogICAgIGVuY29kZXIgPDwga2V5Ym9hcmRJc0F0dGFj
aGVkOwogICAgIGVuY29kZXIgPDwgY2FuU2hvd1doaWxlTG9ja2VkOworICAgIGVuY29kZXIgPDwg
aXNDYXB0dXJpbmdTY3JlZW47CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNv
ZGVyIDw8IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKQEAgLTM0MCw2ICszNDEsOCBAQCBPcHRp
b25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5TaG93V2hpbGVMb2NrZWQpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5pc0NhcHR1cmluZ1NjcmVlbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGNmZjMxMzU1YzFhMjYxOGFhODM3MmM1Mjdi
ODE0NjliYzQ2ZTQxZGQuLjM0MWU0ZGUyNzc1NWIwODVjY2ZjNjI0OWU4YWUwZjY2MzRlODViNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsKICAgICBib29sIGtleWJvYXJk
SXNBdHRhY2hlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBjYW5TaG93V2hpbGVMb2NrZWQgeyBmYWxz
ZSB9OworICAgIGJvb2wgaXNDYXB0dXJpbmdTY3JlZW4geyBmYWxzZSB9OwogI2VuZGlmCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ4NDFhOWJlNjBmNWY1YzY3MDhi
ZDcxYzVlY2NiZTAxMGVjZWQyMjMuLjliODk5YjFiZWY5ZjM0NDA3M2I5MjcwZDNhZjVkNGQ1NTJh
ZDU3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03MTgsNiAr
NzE4LDggQEAgcHVibGljOgogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VD
YXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHNldFNo
b3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sKTsKKyAgICAgICAg
CisgICAgdm9pZCBzZXRJc1NjcmVlbkNhcHR1cmVkKGJvb2wpOwogCiAgICAgdm9pZCBpbnNlcnRU
ZXh0UGxhY2Vob2xkZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAg
IHZvaWQgcmVtb3ZlVGV4dFBsYWNlaG9sZGVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMmQ3OWNlZjE4ZGM1NWQyZjU0ZGRiNTQwMmIz
YTQ1OTI3OTMwZGM1MC4uZTk1ZWNhYmEwODA3ZmI5ZDFhZmQzMWMwNzhhOGM2MmU5ZGUzOGYwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTE2
OSw2ICsxNjksNyBAQCAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFBy
b2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcgogICAgIF9wYWdlLT5zZXRJbnRy
aW5zaWNEZXZpY2VTY2FsZUZhY3RvcihXZWJDb3JlOjpzY3JlZW5TY2FsZUZhY3RvcihbVUlTY3Jl
ZW4gbWFpblNjcmVlbl0pKTsKICAgICBfcGFnZS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CiAg
ICAgX3BhZ2UtPnNldERlbGVnYXRlc1Njcm9sbGluZyh0cnVlKTsKKyAgICBfcGFnZS0+c2V0SXNT
Y3JlZW5DYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2NyZWVuXSBpc0NhcHR1cmVkXSk7CiAKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgX3BhZ2UtPnNldEZ1bGxzY3JlZW5DbGllbnQo
bWFrZVVuaXF1ZTxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KHNlbGYud2ViVmlldykpOwpAQCAt
MjA4LDYgKzIwOSw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihfYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmU6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRC
ZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQ6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24g
b2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0
aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24g
c2hhcmVkQXBwbGljYXRpb25dXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJl
ZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBv
YmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAogI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9B
RERJVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkg
JiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVXS0NvbnRl
bnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMpKQpAQCAtNzcxLDYgKzc3MywxMSBAQCAt
ICh2b2lkKV9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6KE5TTm90aWZpY2F0aW9uKilu
b3RpZmljYXRpb24KICAgICAgICAgX3BhZ2UtPmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZEZvck1lZGlhKCk7CiB9CiAKKy0gKHZvaWQpX3NjcmVlbkNhcHR1cmVkRGlkQ2hhbmdlOihOU05v
dGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCit7CisgICAgX3BhZ2UtPnNldElzU2NyZWVuQ2FwdHVy
ZWQoW1tbc2VsZiB3aW5kb3ddIHNjcmVlbl0gaXNDYXB0dXJlZF0pOworfQorCiBAZW5kCiAKICNw
cmFnbWEgbWFyayBQcmludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KaW5kZXggMjRiNTdlYTFlYzVlMmI1YmVjNTRiMjMzMTIzZTRiZDRiNWI0
ZTk4My4uZjAxOTQ2MDlmOWY1MzIzZTZiYTBkZDgyODAxMTdiZjk2Zjg3OWUwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNTgwLDYg
KzE1ODAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJldmUKICAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6U2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9u
KHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbikpOwogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0SXNTY3JlZW5DYXB0dXJlZChib29sIHNjcmVlbk1pcnJvcmluZykK
K3sKKyAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0SXNTY3JlZW5DYXB0dXJlZChzY3JlZW5NaXJyb3JpbmcpKTsKK30KKwogdm9p
ZCBXZWJQYWdlUHJveHk6OndpbGxPcGVuQXBwTGluaygpCiB7CiAgICAgaWYgKG1fb3BlbmluZ0Fw
cExpbmtBY3Rpdml0eSAmJiBtX29wZW5pbmdBcHBMaW5rQWN0aXZpdHktPmlzVmFsaWQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAppbmRleCAwZDYyZjczMmJhZDQ5NWJmMGM0YzAzZDE5MWEzMTgyN2MxOTU2
ZjJmLi44MzYzZWY5ODUxNGRhNzljZDBmZDgyMDQ5YzM0MWRjODk3YmRkMTVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCkBAIC0xODgsNiArMTg4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVN0
cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRBbGxvd1Np
bmdsZUNsaWNrVG9DaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6Tm9kZSYsIGNvbnN0IFdlYkNvcmU6
OlZpc2libGVTZWxlY3Rpb24mKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc3Vy
cHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBwZXJm
b3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdl
JiwgYm9vbCBpc01vdmUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQpp
bmRleCA4ZjdmZjA3ZThjOGUyOTdhYzY2Y2I2YTMyZDk4YjY0ZWI4Y2ViYzIwLi44MzI3OGJhNWE0
ZmQxZTNmMzFiYmMxMzc3ZWY4OTZlMDhjZmUxYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNs
aWVudElPUy5tbQpAQCAtMTE5LDYgKzExOSwxMSBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hv
dWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3QKICAgICByZXR1
cm4gbV9wYWdlLT5zaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKTsK
IH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnN1cnByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9wYWdlLT5pc1NjcmVlbkNhcHR1cmVkKCkgfHwgbV9wYWdlLT5oYXJk
d2FyZUtleWJvYXJkSXNBdHRhY2hlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMGIxZDgxYzg2OThjN2FhMjY0Yzc2YTkwMjU0ZTcwMGI0
YWY5YzM1Yy4uZWFjM2RmMDA2ZWY4NDA5Y2Y1YmNlOTM4ZWM4YTU1OTU2MDU0NGY2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjY1LDYgKzY2NSw5
IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgb3ZlcnJpZGVTY3JlZW5TaXplKCkg
Y29uc3Q7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlT3JpZW50YXRpb247IH0KICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJv
b2wpOworICAgIAorICAgIGJvb2wgaXNTY3JlZW5DYXB0dXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTY3JlZW5DYXB0dXJlZDsgfQorICAgIHZvaWQgc2V0SXNTY3JlZW5DYXB0dXJlZChib29sKTsK
IAogICAgIGRvdWJsZSBtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgZG91Ymxl
IG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsKQEAgLTEwMTQsNiArMTAxNyw3IEBAIHB1
YmxpYzoKICAgICBib29sIHBsYXRmb3JtUHJlZmVyc1RleHRMZWdpYmlsaXR5QmFzZWRab29tU2Nh
bGluZygpIGNvbnN0OwogCiAgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hh
bmdlZChib29sIGtleWJvYXJkSXNBdHRhY2hlZCk7CisgICAgYm9vbCBoYXJkd2FyZUtleWJvYXJk
SXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5Ym9hcmRJc0F0dGFjaGVkOyB9CiAKICAg
ICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJik7CiAgICAgCkBAIC0xOTg4
LDExICsxOTkyLDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZh
Y3RvciB7IHRydWUgfTsKICAgICBib29sIG1faXNJblN0YWJsZVN0YXRlIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9zaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24geyB0cnVl
IH07CisgICAgYm9vbCBtX2lzU2NyZWVuQ2FwdHVyZWQgeyBmYWxzZSB9OwogICAgIE1vbm90b25p
Y1RpbWUgbV9vbGRlc3ROb25TdGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1w
OwogICAgIFNlY29uZHMgbV9lc3RpbWF0ZWRMYXRlbmN5IHsgMCB9OwogICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBtX3NjcmVlblNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fYXZhaWxhYmxl
U2NyZWVuU2l6ZTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9vdmVycmlkZVNjcmVlblNpemU7
CisgICAgCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fc2NyZWVuQ2FwdHVyZWQ7CiAKICAgICBS
ZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1faW5pdGlhbFNlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpW
aXNpYmxlU2VsZWN0aW9uIG1fc3RvcmVkU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eSB7IFdlYkNv
cmU6OlZpc2libGVTZWxlY3Rpb24oKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODFhN2Y3OGEwYTY4OWUzMjUw
MTJiODMyZmY3ODlkMWY5OTE4OWE3Ny4uZmZjZWQ4YTYxNjc3MGUzN2ZiYjFkMjdjMWYwNzBlY2Jl
N2VhMmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNl
T3JpZW50YXRpb24pCiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhPcHRpb25hbDxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIER5bmFtaWNWaWV3cG9y
dFNpemVVcGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpG
bG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0
RXhwb3NlZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJl
Y3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZl
QXJlYUluc2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3Vi
bGUgbWluaW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlSUQpCisgICAgCisgICAgU2V0SXNTY3JlZW5DYXB0dXJlZChib29sIGNhcHR1cmVk
KQogCiAgICAgSGFuZGxlVGFwKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2Vi
S2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUcmFuc2FjdGlvbklE
IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgIFBvdGVudGlhbFRhcEF0UG9zaXRpb24o
dWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50LCBib29sIHNob3Vs
ZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDgxOWZiYmZjMjNkNjQ1
MGFmMTU1YmY5MGVlNGZkOTI4YmU3NmQwZWMuLmU1YjU3MWQ2Y2QxNmRjODI1YWI5MmNlOGU3M2Vj
M2UwZjg3YzIwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00Mjc4LDYgKzQyNzgsMTEgQEAgdm9pZCBXZWJQYWdlOjpz
ZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91bGRS
ZXZlYWxDdXIKICAgICBzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogfQogCit2b2lk
IFdlYlBhZ2U6OnNldElzU2NyZWVuQ2FwdHVyZWQoYm9vbCBjYXB0dXJlZCkKK3sKKyAgICBtX2lz
U2NyZWVuQ2FwdHVyZWQgPSBjYXB0dXJlZDsKK30KKwogdm9pZCBXZWJQYWdlOjp0ZXh0SW5wdXRD
b250ZXh0c0luUmVjdChGbG9hdFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBWZWN0b3I8RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgYXV0byBjb250ZXh0cyA9IG1fcGFnZS0+ZWRpdGFibGVFbGVtZW50c0luUmVjdChzZWFy
Y2hSZWN0KS5tYXAoWyZdIChjb25zdCBhdXRvJiBlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4IDUxNjk4Y2M4
MDAzNTQ4NjIwYjIxMTBjZmM3NTJkZDNhNjg1NDVhOGQuLjYzYzBmYjg3YWJlODc5NGM4YTA4ZTVl
MjE4NWM2ZDc0NjBhZGI4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC0xMjgsMTEgKzEyOCwxNCBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBXZWJNZWRpYUNhcHR1cmVUeXBlKSB7CiAKIC0gKEJPT0wpc2hvdWxk
UmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uOwogCistIChCT09MKXN1cnByZXNz
UGFzc3dvcmRFY2hvOworCiAjaWYgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwogLSAoaW50KWRl
dmljZU9yaWVudGF0aW9uOwogI2VuZGlmCiAKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdl
YlZpZXcgYWRkTWVzc2FnZVRvQ29uc29sZTooTlNEaWN0aW9uYXJ5ICopbWVzc2FnZSB3aXRoU291
cmNlOihOU1N0cmluZyAqKXNvdXJjZTsKKwogQGVuZAogCiAjZW5kaWYgLy8gV2ViVUlLaXREZWxl
Z2F0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDg0NTZmMjZiN2FhNWVmMzU5OTYxNjVlYWI4ODc1
MmYxYjg0MGNiOWEuLjczNzAzNWE3ZTQzMDBiMDkxZDg3ZWMyNGRkYjAyZDNlMjUzM2VjNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCkBAIC0xNDksOCArMTQ5LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
V2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudEZyb21EZWxlZ2F0ZShp
bnQgaW5kZXgpIGZpbmFsOwogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudCopIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChj
b25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLQogICAgIGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNl
bGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzdXJwcmVzc1Bh
c3N3b3JkRWNobygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1Ud29T
dGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmIGRlc3Rp
bmF0aW9uLCBib29sIGlzTW92ZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNGMyMThj
ZDcwMjRjMGQyZWUyZGU5ZGIyODc4Yzg2MWY3MWIyM2M2Yy4uM2IzNmE3NzA4NTU2OTczNTM3ZTMy
YzJhNjhkMzI4YjA1OWYzZmNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtODMwLDYgKzgzMCwx
MyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFm
dGVySW5zZXJ0aW9uKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnN1cnByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QKK3sKKyAgICBpZiAoW1ttX3dl
YlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc3VycHJlc3NQYXNzd29yZEVjaG8pXSkKKyAgICAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9V
SUtpdERlbGVnYXRlRm9yd2FyZGVyXSBzdXJwcmVzc1Bhc3N3b3JkRWNob107CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudD4gV2ViRWRpdG9y
Q2xpZW50Ojpkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCBpbmRleCkKIHsKICAgICBp
ZiAoW1ttX3dlYlZpZXcgX2VkaXRpbmdEZWxlZ2F0ZUZvcndhcmRlcl0gcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihkb2N1bWVudEZyYWdtZW50Rm9yUGFzdGVib2FyZEl0ZW1BdEluZGV4Oild
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggYWQ5
YmZkZDUzMjFkMTdiMTA4ZTQxNGFjOTZlMDIyMmZkZWFlOTdjYy4uNmYxZDI2ZGRkYTExNjU1NzYw
NTI4OWFjZGYyYWQzNTBiNzRlYzdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQpAQCAtMTUyNCw2ICsxNTI0LDggQEAgLSAodm9pZClfY29tbW9uSW5pdGlh
bGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5T
U3QKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgIF9wcml2YXRlLT5kZXZpY2VP
cmllbnRhdGlvbiA9IFtbc2VsZiBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gZGV2aWNlT3JpZW50
YXRpb25dOwogI2VuZGlmCisgICAgaWYgKFtbc2VsZiBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0g
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXJwcmVzc1Bhc3N3b3JkRWNobyldKQorICAg
ICAgICBfcHJpdmF0ZS0+aXNTY3JlZW5DYXB0dXJlZCA9IFtbc2VsZiBfVUlLaXREZWxlZ2F0ZUZv
cndhcmRlcl0gc3VycHJlc3NQYXNzd29yZEVjaG9dOwogI2VuZGlmCiAKICAgICBpZiAoW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLmgKaW5kZXggYWU4YWRkNDAyNDkxM2NjNmUzMzUyNzJjNDA3NjdiN2FkMTBiYmRj
Yy4uZTI5N2E0YzA0NDFlOTZjNDFhMmVmNzY1NjdkMThlZDFlNzNlOTQ1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjQ1LDYgKzI0NSw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICBOU1VJbnRl
Z2VyIGRldmljZU9yaWVudGF0aW9uOwogI2VuZGlmCisgICAgQk9PTCBpc1NjcmVlbkNhcHR1cmVk
OwogI2VuZGlmCiAgICAgQk9PTCBzaG91bGRDbG9zZVdpdGhXaW5kb3c7CiAgICAgQk9PTCBtYWlu
RnJhbWVEb2N1bWVudFJlYWR5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399801</attachid>
            <date>2020-05-19 20:04:54 -0700</date>
            <delta_ts>2020-05-20 13:25:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212060-20200519200453.patch</filename>
            <type>text/plain</type>
            <size>19344</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uZmJmNTJiZjA4YmQ5MGNlNzJkZGMxODFhZjJiYTMz
NWU5M2UxYjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBzY3JlZW4gaXMgYmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRo
ZSBwYXNzd29yZCBlY2hvLiAKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50Ojppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKwogMjAyMC0wNS0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZh
dWx0IGluaXRpYWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUwMGQ0
NDg3MTMzYWU5MzUwZDk1ZDEwY2U1YmM4ZWIwN2E2ZDc5Li4yY2E2MzgzYzdmZTkyZGQ3NDI3YTU4
NWI1Nzg5YjkyMDMyMzVlYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTE4
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlk
ZSBwYXNzd29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgdGhlIFVJU2NyZWVuIHN0YXRlIGFuZCBub3RpZmljYXRpb24g
dG8gZGV0ZXJtaW5lIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgYmVpbmcgc2hhcmVkIG9yIGNh
cHR1cmVkLiBUaGlzIGZsYWcgaXMgZm9yIGFsbAorICAgICAgICBjYXB0dXJlIG1ldGhvZHMsIEFp
ciBQbGF5LCBTY3JlZW4gUmVjb3JkaW5nLCBldGMuIElmIHRoZSBzY3JlZW4gaXMKKyAgICAgICAg
YmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRoZSBwYXNzd29yZCBlY2hvIHRvIHByZXZlbnQgdGhl
IHBhc3N3b3JkIGZyb20KKyAgICAgICAgYmVpbmcgbGVha2VkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SXNTY3Jl
ZW5DYXB0dXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJF
ZGl0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNT
Y3JlZW5DYXB0dXJlZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRJc1NjcmVlbkNhcHR1cmVkKToKKwogMjAyMC0wNS0xOCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZhdWx0IGluaXRp
YWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNjYwMWRiOGZjYjRlMzdm
NGFkYjIwYWYxNzgyZTIyMTI0Y2YxM2JkNy4uMjBmMzU1ZmI0ZTg2MDZmNDkxZDU4ZTA4N2YwZjYy
MjVhMzE3Y2RiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTEs
MTMgKzUzLDE0IEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQKIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0g
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAgICBpZiAocGFz
c3dvcmRFY2hvRW5hYmxlZCkKKyAgICBib29sIHN1cHByZXNzUGFzc3dvcmRFY2hvID0gZG9jdW1l
bnQoKS5lZGl0b3IoKS5jbGllbnQoKS0+c3VycHJlc3NQYXNzd29yZEVjaG8oKTsKKyAgICBpZiAo
cGFzc3dvcmRFY2hvRW5hYmxlZCAmJiAhc3VwcHJlc3NQYXNzd29yZEVjaG8pCiAgICAgICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBp
ZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAocGFzc3dvcmRFY2hvRW5hYmxlZCkgeworICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkICYm
ICFzdXBwcmVzc1Bhc3N3b3JkRWNobykgewogICAgICAgICBpZiAoUmVuZGVyVGV4dCogcmVuZGVy
VGV4dCA9IG1fbm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlclRleHQtPm1vbWVu
dGFyaWx5UmV2ZWFsTGFzdFR5cGVkQ2hhcmFjdGVyKG1fb2Zmc2V0ICsgbV90ZXh0Lmxlbmd0aCgp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCA1ODRiMWU0MzgwN2M4
ODFiNDAwY2EzYzQ0NWI2OThhODQ3ZjgzNDJiLi5lZTE0ZDlkNDhkN2VjYzE5MWRkMGMwMjE0MGE2
YWNjZWIxZDljNWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTcxLDYgKzcx
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0
cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqIGZyb21SYW5nZSwgUmFuZ2UqIHRvUmFu
Z2UsIEVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgYm9vbCBzdXJwcmVzc1Bhc3N3b3JkRWNobygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBs
eVN0eWxlKFN0eWxlUHJvcGVydGllcyosIFJhbmdlKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRBcHBseVN0eWxlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA4YzgwZGUyZjMyZWM0NjgwOWZmZDBlMzAwN2Y3
NzRiZmE0ODUxZmU0Li5hMWM2ZDE2ZTllNThmZmU2MGYyM2I5YTU0NzQ4ZTAwN2RmODNkMDY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtMTA3LDYgKzEwNyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGRldmlj
ZU9yaWVudGF0aW9uOwogICAgIGVuY29kZXIgPDwga2V5Ym9hcmRJc0F0dGFjaGVkOwogICAgIGVu
Y29kZXIgPDwgY2FuU2hvd1doaWxlTG9ja2VkOworICAgIGVuY29kZXIgPDwgaXNDYXB0dXJpbmdT
Y3JlZW47CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDsKQEAgLTM0MCw2ICszNDEsOCBAQCBPcHRpb25hbDxXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBD
OjpEZWNvZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5jYW5TaG93V2hpbGVMb2NrZWQpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc0NhcHR1cmlu
Z1NjcmVlbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGNmZjMxMzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQx
ZGQuLjM0MWU0ZGUyNzc1NWIwODVjY2ZjNjI0OWU4YWUwZjY2MzRlODViNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2Nyw2
ICsxNjcsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgaW50MzJf
dCBkZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsKICAgICBib29sIGtleWJvYXJkSXNBdHRhY2hlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBjYW5TaG93V2hpbGVMb2NrZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgaXNDYXB0dXJpbmdTY3JlZW4geyBmYWxzZSB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ4NDFhOWJlNjBmNWY1YzY3MDhiZDcxYzVlY2NiZTAx
MGVjZWQyMjMuLjliODk5YjFiZWY5ZjM0NDA3M2I5MjcwZDNhZjVkNGQ1NTJhZDU3NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03MTgsNiArNzE4LDggQEAgcHVi
bGljOgogICAgIHZvaWQgZm9jdXNUZXh0SW5wdXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBX
ZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sKTsKKyAgICAgICAgCisgICAgdm9pZCBz
ZXRJc1NjcmVlbkNhcHR1cmVkKGJvb2wpOwogCiAgICAgdm9pZCBpbnNlcnRUZXh0UGxhY2Vob2xk
ZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+Jik+JiYpOwogICAgIHZvaWQgcmVtb3Zl
VGV4dFBsYWNlaG9sZGVyKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KaW5kZXggMmQ3OWNlZjE4ZGM1NWQyZjU0ZGRiNTQwMmIzYTQ1OTI3OTMwZGM1
MC4uZTk1ZWNhYmEwODA3ZmI5ZDFhZmQzMWMwNzhhOGM2MmU5ZGUzOGYwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTE2OSw2ICsxNjksNyBA
QCAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOihX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcgogICAgIF9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcihXZWJDb3JlOjpzY3JlZW5TY2FsZUZhY3RvcihbVUlTY3JlZW4gbWFpblNjcmVl
bl0pKTsKICAgICBfcGFnZS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CiAgICAgX3BhZ2UtPnNl
dERlbGVnYXRlc1Njcm9sbGluZyh0cnVlKTsKKyAgICBfcGFnZS0+c2V0SXNTY3JlZW5DYXB0dXJl
ZChbW1tzZWxmIHdpbmRvd10gc2NyZWVuXSBpc0NhcHR1cmVkXSk7CiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgX3BhZ2UtPnNldEZ1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxX
ZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KHNlbGYud2ViVmlldykpOwpAQCAtMjA4LDYgKzIwOSw3
IEBAIC0gKGluc3RhbmNldHlwZSlfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGlj
YXRpb25EaWRCZWNvbWVBY3RpdmU6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVO
b3RpZmljYXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAg
ICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1l
OlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0OltVSUFw
cGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGlj
YXRpb25dXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTop
IG5hbWU6VUlTY3JlZW5DYXB0dXJlZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2Ny
ZWVuIG1haW5TY3JlZW5dXTsKIAogI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAg
ICAgaWYgKFdlYkNvcmU6OklPU0FwcGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9u
T3JBZnRlcihXZWJLaXQ6OlNES1ZlcnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05v
dE92ZXJyaWRlS2V5Q29tbWFuZHMpKQpAQCAtNzcxLDYgKzc3MywxMSBAQCAtICh2b2lkKV9hcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6KE5TTm90aWZpY2F0aW9uKilub3RpZmljYXRpb24K
ICAgICAgICAgX3BhZ2UtPmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZEZvck1lZGlhKCk7
CiB9CiAKKy0gKHZvaWQpX3NjcmVlbkNhcHR1cmVkRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiop
bm90aWZpY2F0aW9uCit7CisgICAgX3BhZ2UtPnNldElzU2NyZWVuQ2FwdHVyZWQoW1tbc2VsZiB3
aW5kb3ddIHNjcmVlbl0gaXNDYXB0dXJlZF0pOworfQorCiBAZW5kCiAKICNwcmFnbWEgbWFyayBQ
cmludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggMjRiNTdlYTFlYzVlMmI1YmVjNTRiMjMzMTIzZTRiZDRiNWI0ZTk4My4uZjAxOTQ2
MDlmOWY1MzIzZTZiYTBkZDgyODAxMTdiZjk2Zjg3OWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xNTgwLDYgKzE1ODAsMTIgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlcklu
c2VydGlvbihib29sIHNob3VsZFJldmUKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
U2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKHNob3VsZFJldmVh
bEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0SXNTY3JlZW5DYXB0dXJlZChib29sIHNjcmVlbk1pcnJvcmluZykKK3sKKyAgICBpZiAo
aGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
SXNTY3JlZW5DYXB0dXJlZChzY3JlZW5NaXJyb3JpbmcpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJv
eHk6OndpbGxPcGVuQXBwTGluaygpCiB7CiAgICAgaWYgKG1fb3BlbmluZ0FwcExpbmtBY3Rpdml0
eSAmJiBtX29wZW5pbmdBcHBMaW5rQWN0aXZpdHktPmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCAwZDYyZjczMmJhZDQ5NWJmMGM0YzAzZDE5MWEzMTgyN2MxOTU2ZjJmLi44MzYzZWY5
ODUxNGRhNzljZDBmZDgyMDQ5YzM0MWRjODk3YmRkMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC0xODgsNiArMTg4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQo
Y29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRBbGxvd1NpbmdsZUNsaWNrVG9D
aGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6Tm9kZSYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb24mKSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rp
b25BZnRlckluc2VydGlvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc3VycHJlc3NQYXNzd29y
ZEVjaG8oKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERy
b3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdlJiwgYm9vbCBpc01v
dmUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2lvcy9XZWJFZGl0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQppbmRleCA4ZjdmZjA3
ZThjOGUyOTdhYzY2Y2I2YTMyZDk4YjY0ZWI4Y2ViYzIwLi44MzI3OGJhNWE0ZmQxZTNmMzFiYmMx
Mzc3ZWY4OTZlMDhjZmUxYTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQpA
QCAtMTE5LDYgKzExOSwxMSBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkUmV2ZWFsQ3Vy
cmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5z
aG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKTsKIH0KIAorYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnN1cnByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wYWdlLT5pc1NjcmVlbkNhcHR1cmVkKCkgfHwgbV9wYWdlLT5oYXJkd2FyZUtleWJvYXJk
SXNBdHRhY2hlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggMGIxZDgxYzg2OThjN2FhMjY0Yzc2YTkwMjU0ZTcwMGI0YWY5YzM1Yy4uZWFj
M2RmMDA2ZWY4NDA5Y2Y1YmNlOTM4ZWM4YTU1OTU2MDU0NGY2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjY1LDYgKzY2NSw5IEBAIHB1YmxpYzoK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgb3ZlcnJpZGVTY3JlZW5TaXplKCkgY29uc3Q7CiAgICAg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50
YXRpb247IH0KICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpOworICAgIAor
ICAgIGJvb2wgaXNTY3JlZW5DYXB0dXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY3JlZW5DYXB0
dXJlZDsgfQorICAgIHZvaWQgc2V0SXNTY3JlZW5DYXB0dXJlZChib29sKTsKIAogICAgIGRvdWJs
ZSBtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgZG91YmxlIG1heGltdW1QYWdl
U2NhbGVGYWN0b3IoKSBjb25zdDsKQEAgLTEwMTQsNiArMTAxNyw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHBsYXRmb3JtUHJlZmVyc1RleHRMZWdpYmlsaXR5QmFzZWRab29tU2NhbGluZygpIGNvbnN0
OwogCiAgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGtl
eWJvYXJkSXNBdHRhY2hlZCk7CisgICAgYm9vbCBoYXJkd2FyZUtleWJvYXJkSXNBdHRhY2hlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fa2V5Ym9hcmRJc0F0dGFjaGVkOyB9CiAKICAgICB2b2lkIHVwZGF0
ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJik7CiAgICAgCkBAIC0xOTg4LDExICsxOTkyLDE0
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvciB7IHRydWUg
fTsKICAgICBib29sIG1faXNJblN0YWJsZVN0YXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91
bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24geyB0cnVlIH07CisgICAgYm9v
bCBtX2lzU2NyZWVuQ2FwdHVyZWQgeyBmYWxzZSB9OwogICAgIE1vbm90b25pY1RpbWUgbV9vbGRl
c3ROb25TdGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wOwogICAgIFNlY29u
ZHMgbV9lc3RpbWF0ZWRMYXRlbmN5IHsgMCB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3Nj
cmVlblNpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fYXZhaWxhYmxlU2NyZWVuU2l6ZTsK
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9vdmVycmlkZVNjcmVlblNpemU7CisgICAgCisgICAg
V2ViQ29yZTo6RmxvYXRTaXplIG1fc2NyZWVuQ2FwdHVyZWQ7CiAKICAgICBSZWZQdHI8V2ViQ29y
ZTo6UmFuZ2U+IG1faW5pdGlhbFNlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0
aW9uIG1fc3RvcmVkU2VsZWN0aW9uRm9yQWNjZXNzaWJpbGl0eSB7IFdlYkNvcmU6OlZpc2libGVT
ZWxlY3Rpb24oKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODFhN2Y3OGEwYTY4OWUzMjUwMTJiODMyZmY3ODlk
MWY5OTE4OWE3Ny4uZmZjZWQ4YTYxNjc3MGUzN2ZiYjFkMjdjMWYwNzBlY2JlN2VhMmRhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC01Miw2ICs1Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24p
CiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhPcHRpb25hbDxXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
V2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNpemUgbWF4
aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3NlZENvbnRl
bnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdlYkNvcmU6
OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBX
ZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUluc2V0cywg
ZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWluaW11bUVm
ZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
CisgICAgCisgICAgU2V0SXNTY3JlZW5DYXB0dXJlZChib29sIGNhcHR1cmVkKQogCiAgICAgSGFu
ZGxlVGFwKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVu
dDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUcmFuc2FjdGlvbklEIGxhc3RMYXllclRy
ZWVUcmFuc2FjdGlvbklkKQogICAgIFBvdGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVx
dWVzdElELCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50LCBib29sIHNob3VsZFJlcXVlc3RNYWdu
aWZpY2F0aW9uSW5mb3JtYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDgxOWZiYmZjMjNkNjQ1MGFmMTU1YmY5MGVl
NGZkOTI4YmU3NmQwZWMuLmU1YjU3MWQ2Y2QxNmRjODI1YWI5MmNlOGU3M2VjM2UwZjg3YzIwMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC00Mjc4LDYgKzQyNzgsMTEgQEAgdm9pZCBXZWJQYWdlOjpzZXRTaG91bGRSZXZl
YWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91bGRSZXZlYWxDdXIKICAg
ICBzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNl
dElzU2NyZWVuQ2FwdHVyZWQoYm9vbCBjYXB0dXJlZCkKK3sKKyAgICBtX2lzU2NyZWVuQ2FwdHVy
ZWQgPSBjYXB0dXJlZDsKK30KKwogdm9pZCBXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVj
dChGbG9hdFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0
b3I8RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBj
b250ZXh0cyA9IG1fcGFnZS0+ZWRpdGFibGVFbGVtZW50c0luUmVjdChzZWFyY2hSZWN0KS5tYXAo
WyZdIChjb25zdCBhdXRvJiBlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRlLm0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVn
YXRlLm0KaW5kZXggMGJlODBmYmFmMTJjYTU0ZDFkNDg4OWU2NTAzZWM3NmJlNDU3Y2NkMC4uODA5
ZDlkNzYyMDNhYTAyMjZhZWYzMDNhODdmNWFlZWVkMTcxM2JlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZS5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVm
YXVsdFVJS2l0RGVsZWdhdGUubQpAQCAtMjY4LDYgKzI2OCwxMSBAQCAtIChpbnQpZGV2aWNlT3Jp
ZW50YXRpb24KIH0KICNlbmRpZgogCistIChCT09MKXN1cnByZXNzUGFzc3dvcmRFY2hvCit7Cisg
ICAgcmV0dXJuIE5POworfQorCiAtIChCT09MKWhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uCiB7
CiAgICAgcmV0dXJuIE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2Vi
Vmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3
L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCA1MTY5OGNjODAwMzU0ODYyMGIyMTEwY2ZjNzUyZGQz
YTY4NTQ1YThkLi5lZjkyYmQ3YjdlYTliMWU0MGY1NjcxNTQ1NThhOGJkZjE2ZDljMjA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUu
aApAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlh
Q2FwdHVyZVR5cGUpIHsKIAogLSAoQk9PTClzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0
ZXJJbnNlcnRpb247CiAKKy0gKEJPT0wpc3VycHJlc3NQYXNzd29yZEVjaG87CisKICNpZiBFTkFC
TEVfT1JJRU5UQVRJT05fRVZFTlRTCiAtIChpbnQpZGV2aWNlT3JpZW50YXRpb247CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggODQ1NmYyNmI3YWE1ZWYzNTk5NjE2NWVhYjg4NzUyZjFiODQw
Y2I5YS4uNzM3MDM1YTdlNDMwMGIwOTFkODdlYzI0ZGRiMDJkM2UyNTMzZWM1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKQEAgLTE0OSw4ICsxNDksOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCBpbmRl
eCkgZmluYWw7CiAgICAgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVu
dEZyYWdtZW50KikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kKGNvbnN0IFN0
cmluZyYpIGZpbmFsIHsgfQotCiAgICAgYm9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9u
QWZ0ZXJJbnNlcnRpb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cnByZXNzUGFzc3dvcmRF
Y2hvKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9w
KFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRpb24s
IGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0YzIxOGNkNzAyNGMw
ZDJlZTJkZTlkYjI4NzhjODYxZjcxYjIzYzZjLi4zYjM2YTc3MDg1NTY5NzM1MzdlMzJjMmE2OGQz
MjhiMDU5ZjNmY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC04MzAsNiArODMwLDEzIEBAIGJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNl
cnRpb24oKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFdlYkVkaXRvckNsaWVu
dDo6c3VycHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdAoreworICAgIGlmIChbW21fd2ViVmlldyBf
VUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXJw
cmVzc1Bhc3N3b3JkRWNobyldKQorICAgICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJS2l0RGVs
ZWdhdGVGb3J3YXJkZXJdIHN1cnByZXNzUGFzc3dvcmRFY2hvXTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50PiBXZWJFZGl0b3JDbGllbnQ6
OmRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KQogewogICAgIGlmIChbW21f
d2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGRvY3VtZW50RnJhZ21lbnRGb3JQYXN0ZWJvYXJkSXRlbUF0SW5kZXg6KV0pIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhZDliZmRkNTMy
MWQxN2IxMDhlNDE0YWM5NmUwMjIyZmRlYWU5N2NjLi4zN2UwYWEyNzIwOWJmNTZiNDNjMGU3M2I4
MDRmNDQ1NjM2YTQwZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNTI0LDYgKzE1MjQsOCBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlv
bldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogI2lm
IEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgX3ByaXZhdGUtPmRldmljZU9yaWVudGF0
aW9uID0gW1tzZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSBkZXZpY2VPcmllbnRhdGlvbl07
CiAjZW5kaWYKKyAgICBpZiAoW1tzZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN1cnByZXNzUGFzc3dvcmRFY2hvKV0pCisgICAgICAgIF9w
cml2YXRlLT5zdXJwcmVzc1Bhc3N3b3JkRWNobyA9IFtbc2VsZiBfVUlLaXREZWxlZ2F0ZUZvcndh
cmRlcl0gc3VycHJlc3NQYXNzd29yZEVjaG9dOwogI2VuZGlmCiAKICAgICBpZiAoW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKaW5kZXggYWU4YWRkNDAyNDkxM2NjNmUzMzUyNzJjNDA3NjdiN2FkMTBiYmRjYy4u
MDY3NGVlY2M3NzFkNGM5MzBlYjZmZmNkZGNhNzUxNmZiOTIzOGQ0NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjQ1LDYgKzI0NSw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICBOU1VJbnRlZ2Vy
IGRldmljZU9yaWVudGF0aW9uOwogI2VuZGlmCisgICAgQk9PTCBzdXJwcmVzc1Bhc3N3b3JkRWNo
bzsKICNlbmRpZgogICAgIEJPT0wgc2hvdWxkQ2xvc2VXaXRoV2luZG93OwogICAgIEJPT0wgbWFp
bkZyYW1lRG9jdW1lbnRSZWFkeTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399867</attachid>
            <date>2020-05-20 11:56:04 -0700</date>
            <delta_ts>2020-05-20 13:25:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212060-20200520115602.patch</filename>
            <type>text/plain</type>
            <size>19746</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uZmJmNTJiZjA4YmQ5MGNlNzJkZGMxODFhZjJiYTMz
NWU5M2UxYjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGVuIHRoZSBzY3JlZW4gaXMgYmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRo
ZSBwYXNzd29yZCBlY2hvLiAKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5k
Ojpkb0FwcGx5KToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50Ojppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKwogMjAyMC0wNS0x
OCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZh
dWx0IGluaXRpYWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMjUwMGQ0
NDg3MTMzYWU5MzUwZDk1ZDEwY2U1YmM4ZWIwN2E2ZDc5Li4yY2E2MzgzYzdmZTkyZGQ3NDI3YTU4
NWI1Nzg5YjkyMDMyMzVlYzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA1LTE4
ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlk
ZSBwYXNzd29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgdGhlIFVJU2NyZWVuIHN0YXRlIGFuZCBub3RpZmljYXRpb24g
dG8gZGV0ZXJtaW5lIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgYmVpbmcgc2hhcmVkIG9yIGNh
cHR1cmVkLiBUaGlzIGZsYWcgaXMgZm9yIGFsbAorICAgICAgICBjYXB0dXJlIG1ldGhvZHMsIEFp
ciBQbGF5LCBTY3JlZW4gUmVjb3JkaW5nLCBldGMuIElmIHRoZSBzY3JlZW4gaXMKKyAgICAgICAg
YmVpbmcgY2FwdHVyZWQsIHR1cm4gb2ZmIHRoZSBwYXNzd29yZCBlY2hvIHRvIHByZXZlbnQgdGhl
IHBhc3N3b3JkIGZyb20KKyAgICAgICAgYmVpbmcgbGVha2VkLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
UHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0SXNTY3Jl
ZW5DYXB0dXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJF
ZGl0b3JDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNT
Y3JlZW5DYXB0dXJlZCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzZXRJc1NjcmVlbkNhcHR1cmVkKToKKwogMjAyMC0wNS0xOCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBkZWZhdWx0IGluaXRp
YWxpemVycyBpbiBUZXh0SW5kaWNhdG9yRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAKaW5kZXggNjYwMWRiOGZjYjRlMzdm
NGFkYjIwYWYxNzgyZTIyMTI0Y2YxM2JkNy4uNDA0NjUzMGEwNmUzYTVkMzE0NzEyMDdhZjBjNWY5
ZjUyOTBhZjhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydElu
dG9UZXh0Tm9kZUNvbW1hbmQuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJFZGl0b3IuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNTEs
MTMgKzUzLDE0IEBAIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQ6Okluc2VydEludG9UZXh0Tm9k
ZUNvbW1hbmQoUmVmPFRleHQ+JiYgbm9kZSwgdW5zaWduZWQKIHZvaWQgSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7CiAgICAgYm9vbCBwYXNzd29yZEVjaG9FbmFibGVkID0g
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLnBhc3N3b3JkRWNob0VuYWJsZWQoKTsKLSAgICBpZiAocGFz
c3dvcmRFY2hvRW5hYmxlZCkKKyAgICBib29sIHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvID0g
ZG9jdW1lbnQoKS5lZGl0b3IoKS5jbGllbnQoKS0+c2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8o
KTsKKyAgICBpZiAocGFzc3dvcmRFY2hvRW5hYmxlZCAmJiAhc2hvdWxkU3VwcHJlc3NQYXNzd29y
ZEVjaG8pCiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAKICAgICBpZiAoIW1fbm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAocGFzc3dvcmRFY2hvRW5hYmxlZCkgeworICAgIGlmIChwYXNz
d29yZEVjaG9FbmFibGVkICYmICFzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobykgewogICAgICAg
ICBpZiAoUmVuZGVyVGV4dCogcmVuZGVyVGV4dCA9IG1fbm9kZS0+cmVuZGVyZXIoKSkKICAgICAg
ICAgICAgIHJlbmRlclRleHQtPm1vbWVudGFyaWx5UmV2ZWFsTGFzdFR5cGVkQ2hhcmFjdGVyKG1f
b2Zmc2V0ICsgbV90ZXh0Lmxlbmd0aCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaAppbmRleCA1ODRiMWU0MzgwN2M4ODFiNDAwY2EzYzQ0NWI2OThhODQ3ZjgzNDJiLi43Nzkz
MTcxZmUwYWRiMTE3ZGFmZjQxNjBkYWZmNjkxY2E0NDYwYzMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRp
dG9yQ2xpZW50LmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9u
KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2Uq
IGZyb21SYW5nZSwgUmFuZ2UqIHRvUmFuZ2UsIEVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGlu
ZykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0
ZXJJbnNlcnRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9OwogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyosIFJh
bmdlKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBcHBseVN0eWxlKCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA4YzgwZGUyZjMyZWM0NjgwOWZmZDBlMzAwN2Y3NzRiZmE0ODUxZmU0Li5hMWM2ZDE2ZTllNThm
ZmU2MGYyM2I5YTU0NzQ4ZTAwN2RmODNkMDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTA3LDYgKzEwNyw3IEBAIHZv
aWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IGRldmljZU9yaWVudGF0aW9uOwogICAgIGVuY29kZXIg
PDwga2V5Ym9hcmRJc0F0dGFjaGVkOwogICAgIGVuY29kZXIgPDwgY2FuU2hvd1doaWxlTG9ja2Vk
OworICAgIGVuY29kZXIgPDwgaXNDYXB0dXJpbmdTY3JlZW47CiAjZW5kaWYKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKQEAgLTM0
MCw2ICszNDEsOCBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5TaG93V2hp
bGVMb2NrZWQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5pc0NhcHR1cmluZ1NjcmVlbikpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGNmZjMxMzU1
YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQuLjM0MWU0ZGUyNzc1NWIwODVjY2ZjNjI0
OWU4YWUwZjY2MzRlODViNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiB7IDAgfTsK
ICAgICBib29sIGtleWJvYXJkSXNBdHRhY2hlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBjYW5TaG93
V2hpbGVMb2NrZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNDYXB0dXJpbmdTY3JlZW4geyBmYWxz
ZSB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ4
NDFhOWJlNjBmNWY1YzY3MDhiZDcxYzVlY2NiZTAxMGVjZWQyMjMuLjgwOTU0OGZiYjU4NWViMzA3
MDIxODA4YTlhMjY2NWJhN2UzYTA3MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC03MTgsNiArNzE4LDggQEAgcHVibGljOgogICAgIHZvaWQgZm9jdXNUZXh0SW5w
dXRDb250ZXh0QW5kUGxhY2VDYXJldChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAKICAgICB2b2lkIHNldFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlv
bihib29sKTsKKyAgICAgICAgCisgICAgdm9pZCBzZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9v
bCk7CiAKICAgICB2b2lkIGluc2VydFRleHRQbGFjZWhvbGRlcihjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpFbGVt
ZW50Q29udGV4dD4mKT4mJik7CiAgICAgdm9pZCByZW1vdmVUZXh0UGxhY2Vob2xkZXIoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudENvbnRleHQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAyZDc5
Y2VmMThkYzU1ZDJmNTRkZGI1NDAyYjNhNDU5Mjc5MzBkYzUwLi42Y2VjYjExNmViZWI1MjQ0ZjFl
YzliNjMxMTViOWY3MWZlNmQzNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQpAQCAtMTY5LDYgKzE2OSw3IEBAIC0gKGluc3RhbmNldHlwZSlfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wm
KXByCiAgICAgX3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFdlYkNvcmU6OnNj
cmVlblNjYWxlRmFjdG9yKFtVSVNjcmVlbiBtYWluU2NyZWVuXSkpOwogICAgIF9wYWdlLT5zZXRV
c2VGaXhlZExheW91dCh0cnVlKTsKICAgICBfcGFnZS0+c2V0RGVsZWdhdGVzU2Nyb2xsaW5nKHRy
dWUpOworICAgIF9wYWdlLT5zZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoW1tbc2VsZiB3aW5kb3dd
IHNjcmVlbl0gaXNDYXB0dXJlZF0pOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAg
IF9wYWdlLT5zZXRGdWxsc2NyZWVuQ2xpZW50KG1ha2VVbmlxdWU8V2ViS2l0OjpGdWxsc2NyZWVu
Q2xpZW50PihzZWxmLndlYlZpZXcpKTsKQEAgLTIwOCw2ICsyMDksNyBAQCAtIChpbnN0YW5jZXR5
cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nl
c3NQb29sJilwcgogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0
aXZlOikgbmFtZTpVSUFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVj
dDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl1dOwogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2FwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uRGlk
RW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRB
cHBsaWNhdGlvbl1dOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZDopIG5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmlj
YXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CisgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfc2NyZWVuQ2FwdHVyZWREaWRDaGFuZ2U6KSBuYW1lOlVJU2NyZWVuQ2Fw
dHVyZWREaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0OltVSVNjcmVlbiBtYWluU2NyZWVuXV07
CiAKICNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIGlmIChXZWJDb3JlOjpJ
T1NBcHBsaWNhdGlvbjo6aXNFdmVybm90ZSgpICYmICFsaW5rZWRPbk9yQWZ0ZXIoV2ViS2l0OjpT
REtWZXJzaW9uOjpGaXJzdFdoZXJlV0tDb250ZW50Vmlld0RvZXNOb3RPdmVycmlkZUtleUNvbW1h
bmRzKSkKQEAgLTc3MSw2ICs3NzMsMTEgQEAgLSAodm9pZClfYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kOihOU05vdGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCiAgICAgICAgIF9wYWdlLT5h
cHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRGb3JNZWRpYSgpOwogfQogCistICh2b2lkKV9z
Y3JlZW5DYXB0dXJlZERpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sK
KyAgICBfcGFnZS0+c2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKFtbW3NlbGYgd2luZG93XSBzY3Jl
ZW5dIGlzQ2FwdHVyZWRdKTsKK30KKwogQGVuZAogCiAjcHJhZ21hIG1hcmsgUHJpbnRpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IDQzMTY3NDMxNDgzMzIxNzMzOWJhYjc0ZjY4ZmRjYzE4NzI3MGUwYmMu
LmQwODY3YTcyYjEwYjVmMTQwZWNkNzc1MGM4Y2ZhNWY2ODNjMTFhNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtODk2LDYgKzg5Niw3IEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogI2VuZGlmCiAK
ICAgICBfcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBfcGFn
ZS0+c2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKFtbW3NlbGYgd2luZG93XSBzY3JlZW5dIGlzQ2Fw
dHVyZWRdKTsKIAogICAgIF9oYXNTZXRVcEludGVyYWN0aW9ucyA9IFlFUzsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDI0YjU3ZWEx
ZWM1ZTJiNWJlYzU0YjIzMzEyM2U0YmQ0YjViNGU5ODMuLjhkZmYyNWU3YThjZDA3NzkxNTU1ZGMz
MjVkYzhjNGY1YzAzMDVjZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQpAQCAtMTU4MCw2ICsxNTgwLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRTaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91
bGRSZXZlCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9u
QWZ0ZXJJbnNlcnRpb24pKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldFNjcmVlbklzQmVp
bmdDYXB0dXJlZChib29sIGNhcHR1cmVkKQoreworICAgIGlmIChoYXNSdW5uaW5nUHJvY2Vzcygp
KQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRTY3JlZW5Jc0JlaW5nQ2FwdHVy
ZWQoY2FwdHVyZWQpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OndpbGxPcGVuQXBwTGluaygp
CiB7CiAgICAgaWYgKG1fb3BlbmluZ0FwcExpbmtBY3Rpdml0eSAmJiBtX29wZW5pbmdBcHBMaW5r
QWN0aXZpdHktPmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAwZDYyZjczMmJhZDQ5
NWJmMGM0YzAzZDE5MWEzMTgyN2MxOTU2ZjJmLi4wZGY3NzU5ZTFiODJkZDQwM2NmZGE4Y2E3MzA5
OWViYzZkZGQ4MDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xODgsNiArMTg4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQoY29uc3QgU3RyaW5nJikgZmluYWw7
CiAgICAgYm9vbCBzaG91bGRBbGxvd1NpbmdsZUNsaWNrVG9DaGFuZ2VTZWxlY3Rpb24oV2ViQ29y
ZTo6Tm9kZSYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24mKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9j
dW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdlJiwgYm9vbCBpc01vdmUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJF
ZGl0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQppbmRleCA4ZjdmZjA3ZThjOGUyOTdhYzY2Y2I2
YTMyZDk4YjY0ZWI4Y2ViYzIwLi5lYzc3ZWRiNjlhNmIyZGVjMjA1YjdlMWJkYTA5ZmFiM2M5NTdl
YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
aW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQpAQCAtMTE5LDYgKzExOSwx
MSBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFm
dGVySW5zZXJ0aW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5zaG91bGRSZXZlYWxDdXJy
ZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6
OnNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdl
LT5zY3JlZW5Jc0NhcHR1cmVkKCkgfHwgbV9wYWdlLT5oYXJkd2FyZUtleWJvYXJkSXNBdHRhY2hl
ZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMGIxZDgxYzg2OThjN2FhMjY0Yzc2YTkwMjU0ZTcwMGI0YWY5YzM1Yy4uNzQ5OTFmN2I5MWQ4
Y2U4NzcyNThmYTZkYTY2OGU0Yjg4NTJjMTM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjY1LDYgKzY2NSw5IEBAIHB1YmxpYzoKICAgICBXZWJD
b3JlOjpGbG9hdFNpemUgb3ZlcnJpZGVTY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgaW50MzJfdCBk
ZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0K
ICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpOworICAgIAorICAgIGJvb2wg
c2NyZWVuSXNDYXB0dXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuSXNDYXB0dXJlZDsgfQor
ICAgIHZvaWQgc2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKGJvb2wpOwogCiAgICAgZG91YmxlIG1p
bmltdW1QYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICBkb3VibGUgbWF4aW11bVBhZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0OwpAQCAtMTAxNCw2ICsxMDE3LDcgQEAgcHVibGljOgogICAgIGJvb2wg
cGxhdGZvcm1QcmVmZXJzVGV4dExlZ2liaWxpdHlCYXNlZFpvb21TY2FsaW5nKCkgY29uc3Q7CiAK
ICAgICB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKGJvb2wga2V5Ym9h
cmRJc0F0dGFjaGVkKTsKKyAgICBib29sIGhhcmR3YXJlS2V5Ym9hcmRJc0F0dGFjaGVkKCkgY29u
c3QgeyByZXR1cm4gbV9rZXlib2FyZElzQXR0YWNoZWQ7IH0KIAogICAgIHZvaWQgdXBkYXRlU3Ry
aW5nRm9yRmluZChjb25zdCBTdHJpbmcmKTsKICAgICAKQEAgLTE5ODgsNiArMTk5Miw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2hhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvciB7IHRydWUgfTsKICAg
ICBib29sIG1faXNJblN0YWJsZVN0YXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXZl
YWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24geyB0cnVlIH07CisgICAgYm9vbCBtX3Nj
cmVlbklzQ2FwdHVyZWQgeyBmYWxzZSB9OwogICAgIE1vbm90b25pY1RpbWUgbV9vbGRlc3ROb25T
dGFibGVVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzVGltZXN0YW1wOwogICAgIFNlY29uZHMgbV9l
c3RpbWF0ZWRMYXRlbmN5IHsgMCB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3NjcmVlblNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgppbmRleCA4MWE3Zjc4YTBhNjg5ZTMyNTAxMmI4MzJmZjc4OWQxZjk5MTg5YTc3
Li4xY2ZiZGVmN2I0MTI0MWQ5NzVhZWQyMDdiYTQ0YjU4ODNiNTE5NTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAg
LTUyLDYgKzUyLDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAg
U2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBTZXRP
dmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1l
bnRzPiBhcmd1bWVudHMpCiAgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpG
bG9hdFNpemUgdmlld0xheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNj
dXJlZFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIFdl
YkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0
IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIFdlYkNvcmU6OlJl
Y3RFZGdlczxmbG9hdD4gdGFyZ2V0VW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgc2Nh
bGUsIGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24sIGRvdWJsZSBtaW5pbXVtRWZmZWN0aXZlRGV2
aWNlV2lkdGgsIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKKyAgICAKKyAg
ICBTZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCBjYXB0dXJlZCkKIAogICAgIEhhbmRsZVRh
cChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKICAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNh
dGlvbkluZm9ybWF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4MTlmYmJmYzIzZDY0NTBhZjE1NWJmOTBlZTRmZDky
OGJlNzZkMGVjLi5jNTQzNzQwNzZiNDNjMWRmYThiM2QwYzc0OWY0Y2MzMTJmODMyNmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtNDI3OCw2ICs0Mjc4LDExIEBAIHZvaWQgV2ViUGFnZTo6c2V0U2hvdWxkUmV2ZWFsQ3Vy
cmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJvb2wgc2hvdWxkUmV2ZWFsQ3VyCiAgICAgc2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzZXRTY3Jl
ZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCBjYXB0dXJlZCkKK3sKKyAgICBtX3NjcmVlbklzQ2FwdHVy
ZWQgPSBjYXB0dXJlZDsKK30KKwogdm9pZCBXZWJQYWdlOjp0ZXh0SW5wdXRDb250ZXh0c0luUmVj
dChGbG9hdFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0
b3I8RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBj
b250ZXh0cyA9IG1fcGFnZS0+ZWRpdGFibGVFbGVtZW50c0luUmVjdChzZWFyY2hSZWN0KS5tYXAo
WyZdIChjb25zdCBhdXRvJiBlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRlLm0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVn
YXRlLm0KaW5kZXggMGJlODBmYmFmMTJjYTU0ZDFkNDg4OWU2NTAzZWM3NmJlNDU3Y2NkMC4uM2U3
YjgxODcxNTEwYzc5MWZjMTYzMzljZDdmMjZkYTBiNzcxYTI5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZS5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVm
YXVsdFVJS2l0RGVsZWdhdGUubQpAQCAtMjY4LDYgKzI2OCwxMSBAQCAtIChpbnQpZGV2aWNlT3Jp
ZW50YXRpb24KIH0KICNlbmRpZgogCistIChCT09MKXNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hv
Cit7CisgICAgcmV0dXJuIE5POworfQorCiAtIChCT09MKWhhc1JpY2hseUVkaXRhYmxlU2VsZWN0
aW9uCiB7CiAgICAgcmV0dXJuIE5POwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9X
ZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCA1MTY5OGNjODAwMzU0ODYyMGIyMTEwY2Zj
NzUyZGQzYTY4NTQ1YThkLi5jNjY0ZWE2NTUwMmFkYmJhMGMwNDdhM2QyMzdjYmY5NTcxOWNjM2Qy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVs
ZWdhdGUuaApAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdl
Yk1lZGlhQ2FwdHVyZVR5cGUpIHsKIAogLSAoQk9PTClzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0
aW9uQWZ0ZXJJbnNlcnRpb247CiAKKy0gKEJPT0wpc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG87
CisKICNpZiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAtIChpbnQpZGV2aWNlT3JpZW50YXRp
b247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggODQ1NmYyNmI3YWE1ZWYzNTk5NjE2NWVh
Yjg4NzUyZjFiODQwY2I5YS4uZTFiNDJlYTZkMmZiZWZlM2ExZWRmMTEzMjJjNmQ1ZThiMzAzZmY0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0OSw4ICsxNDksOCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVn
YXRlKGludCBpbmRleCkgZmluYWw7CiAgICAgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJD
b3JlOjpEb2N1bWVudEZyYWdtZW50KikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVTdHJpbmdGb3JG
aW5kKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQotCiAgICAgYm9vbCBzaG91bGRSZXZlYWxDdXJy
ZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3Vs
ZFN1cHByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wg
cGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpS
YW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpp
bmRleCA0YzIxOGNkNzAyNGMwZDJlZTJkZTlkYjI4NzhjODYxZjcxYjIzYzZjLi5kMDY2NDExMzMx
ZGExMGZjNDkwNGM0NjM5ODc3ODc2MmE3NDI3NDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC04
MzAsNiArODMwLDEzIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRSZXZlYWxDdXJyZW50
U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdAor
eworICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobyldKQorICAgICAg
ICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHNob3VsZFN1cHBy
ZXNzUGFzc3dvcmRFY2hvXTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudEZyYWdtZW50PiBXZWJFZGl0b3JDbGllbnQ6OmRvY3VtZW50RnJhZ21lbnRGcm9t
RGVsZWdhdGUoaW50IGluZGV4KQogewogICAgIGlmIChbW21fd2ViVmlldyBfZWRpdGluZ0RlbGVn
YXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRvY3VtZW50RnJhZ21l
bnRGb3JQYXN0ZWJvYXJkSXRlbUF0SW5kZXg6KV0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhZDliZmRkNTMyMWQxN2IxMDhlNDE0YWM5NmUwMjIy
ZmRlYWU5N2NjLi5hNTZiMzY3ZjJjMDJjNThmOWVlZTU0NjEyMGU0ZDQ3Njg2ODY3ZGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNTI0LDYgKzE1
MjQsOCBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3Ry
aW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9F
VkVOVFMpCiAgICAgX3ByaXZhdGUtPmRldmljZU9yaWVudGF0aW9uID0gW1tzZWxmIF9VSUtpdERl
bGVnYXRlRm9yd2FyZGVyXSBkZXZpY2VPcmllbnRhdGlvbl07CiAjZW5kaWYKKyAgICBpZiAoW1tz
ZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKV0pCisgICAgICAgIF9wcml2YXRlLT5zaG91bGRT
dXBwcmVzc1Bhc3N3b3JkRWNobyA9IFtbc2VsZiBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gc2hv
dWxkU3VwcHJlc3NQYXNzd29yZEVjaG9dOwogI2VuZGlmCiAKICAgICBpZiAoW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLmgKaW5kZXggYWU4YWRkNDAyNDkxM2NjNmUzMzUyNzJjNDA3NjdiN2FkMTBiYmRjYy4uYTAy
OGQ3NzQ0ODc4OWZjZTY0NTZiY2ZmYjJiYzgyNGI0ZmQyMWZjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjQ1LDYgKzI0NSw3IEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICBOU1VJbnRlZ2VyIGRl
dmljZU9yaWVudGF0aW9uOwogI2VuZGlmCisgICAgQk9PTCBzaG91bGRTdXBwcmVzc1Bhc3N3b3Jk
RWNobzsKICNlbmRpZgogICAgIEJPT0wgc2hvdWxkQ2xvc2VXaXRoV2luZG93OwogICAgIEJPT0wg
bWFpbkZyYW1lRG9jdW1lbnRSZWFkeTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399883</attachid>
            <date>2020-05-20 13:25:45 -0700</date>
            <delta_ts>2020-05-20 14:57:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212060-20200520132544.patch</filename>
            <type>text/plain</type>
            <size>19742</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uMDA1NzQ5YmYzNjlmMjlkNTViNGM5NzNjNjc3ZmUz
NDc2MDk2OTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisK
KyAgICAgICAgV2hlbiB0aGUgc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLCB0dXJuIG9mZiB0aGUg
cGFzc3dvcmQgZWNoby4gCisKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudDo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6CisKIDIwMjAtMDUtMTgg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgZGVmYXVs
dCBpbml0aWFsaXplcnMgaW4gVGV4dEluZGljYXRvckRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MDBkNDQ4
NzEzM2FlOTM1MGQ5NWQxMGNlNWJjOGViMDdhNmQ3OS4uZGM4ODc1MGVmN2RlNWMwZTkzODExMjI4
ZDQ0N2MxZDk0NjI5YzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0wNS0xOCAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhpZGUg
cGFzc3dvcmQgZWNobyB3aGVuIHNjcmVlbiBpcyBiZWluZyBjYXB0dXJlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA2MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDc2NTM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVo
LgorCisgICAgICAgIFVzZSB0aGUgVUlTY3JlZW4gc3RhdGUgYW5kIG5vdGlmaWNhdGlvbiB0byBk
ZXRlcm1pbmUgaWYgdGhlCisgICAgICAgIHNjcmVlbiBpcyBiZWluZyBzaGFyZWQgb3IgY2FwdHVy
ZWQuIFRoaXMgZmxhZyBpcyBmb3IgYWxsCisgICAgICAgIGNhcHR1cmUgbWV0aG9kcywgQWlyIFBs
YXksIFNjcmVlbiBSZWNvcmRpbmcsIGV0Yy4gSWYgdGhlIHNjcmVlbiBpcworICAgICAgICBiZWlu
ZyBjYXB0dXJlZCwgdHVybiBvZmYgdGhlIHBhc3N3b3JkIGVjaG8gdG8gcHJldmVudCB0aGUgcGFz
c3dvcmQgZnJvbQorICAgICAgICBiZWluZyBsZWFrZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9j
ZXNzUG9vbDpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zY3Jl
ZW5DYXB0dXJlZERpZENoYW5nZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRJc1NjcmVlbkNh
cHR1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRv
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc1NjcmVl
bkNhcHR1cmVkIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldElzU2NyZWVuQ2FwdHVyZWQpOgorCiAyMDIwLTA1LTE4ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGRlZmF1bHQgaW5pdGlhbGl6
ZXJzIGluIFRleHRJbmRpY2F0b3JEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA2NjAxZGI4ZmNiNGUzN2Y0YWRi
MjBhZjE3ODJlMjIxMjRjZjEzYmQ3Li40MDQ2NTMwYTA2ZTNhNWQzMTQ3MTIwN2FmMGM1ZjlmNTI5
MGFmOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVk
aXRvci5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01MSwxMyAr
NTMsMTQgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBkb2N1
bWVudCgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwotICAgIGlmIChwYXNzd29y
ZEVjaG9FbmFibGVkKQorICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8gPSBkb2N1
bWVudCgpLmVkaXRvcigpLmNsaWVudCgpLT5zaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpOwor
ICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkICYmICFzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNo
bykKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKIAogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkKSB7CisgICAgaWYgKHBhc3N3b3Jk
RWNob0VuYWJsZWQgJiYgIXNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKSB7CiAgICAgICAgIGlm
IChSZW5kZXJUZXh0KiByZW5kZXJUZXh0ID0gbV9ub2RlLT5yZW5kZXJlcigpKQogICAgICAgICAg
ICAgcmVuZGVyVGV4dC0+bW9tZW50YXJpbHlSZXZlYWxMYXN0VHlwZWRDaGFyYWN0ZXIobV9vZmZz
ZXQgKyBtX3RleHQubGVuZ3RoKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CmluZGV4IDU4NGIxZTQzODA3Yzg4MWI0MDBjYTNjNDQ1YjY5OGE4NDdmODM0MmIuLjc3OTMxNzFm
ZTBhZGIxMTdkYWZmNDE2MGRhZmY2OTFjYTQ0NjBjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSogZnJv
bVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlcklu
c2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN1cHByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH07CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiwgUmFuZ2Uq
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFwcGx5U3R5bGUoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDhj
ODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQuLmExYzZkMTZlOWU1OGZmZTYw
ZjIzYjlhNTQ3NDhlMDA3ZGY4M2QwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMDcsNiArMTA3LDcgQEAgdm9pZCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgZGV2aWNlT3JpZW50YXRpb247CiAgICAgZW5jb2RlciA8PCBr
ZXlib2FyZElzQXR0YWNoZWQ7CiAgICAgZW5jb2RlciA8PCBjYW5TaG93V2hpbGVMb2NrZWQ7Cisg
ICAgZW5jb2RlciA8PCBpc0NhcHR1cmluZ1NjcmVlbjsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGVuY29kZXIgPDwgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwpAQCAtMzQwLDYg
KzM0MSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNhblNob3dXaGlsZUxv
Y2tlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLmlzQ2FwdHVyaW5nU2NyZWVuKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2ZmMzEzNTVjMWEy
NjE4YWE4MzcyYzUyN2I4MTQ2OWJjNDZlNDFkZC4uMzQxZTRkZTI3NzU1YjA4NWNjZmM2MjQ5ZThh
ZTBmNjYzNGU4NWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtMTY3LDYgKzE2Nyw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAg
IGJvb2wga2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBib29sIGNhblNob3dXaGls
ZUxvY2tlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0NhcHR1cmluZ1NjcmVlbiB7IGZhbHNlIH07
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDg0MWE5
YmU2MGY1ZjVjNjcwOGJkNzFjNWVjY2JlMDEwZWNlZDIyMy4uODA5NTQ4ZmJiNTg1ZWIzMDcwMjE4
MDhhOWEyNjY1YmE3ZTNhMDcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTcxOCw2ICs3MTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1dENv
bnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAog
ICAgIHZvaWQgc2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJv
b2wpOworICAgICAgICAKKyAgICB2b2lkIHNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sKTsK
IAogICAgIHZvaWQgaW5zZXJ0VGV4dFBsYWNlaG9sZGVyKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0PiYpPiYmKTsKICAgICB2b2lkIHJlbW92ZVRleHRQbGFjZWhvbGRlcihjb25zdCBXZWJD
b3JlOjpFbGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDJkNzljZWYx
OGRjNTVkMmY1NGRkYjU0MDJiM2E0NTkyNzkzMGRjNTAuLjZjZWNiMTE2ZWJlYjUyNDRmMWVjOWI2
MzExNWI5ZjcxZmU2ZDM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCkBAIC0xNjksNiArMTY5LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25J
bml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIK
ICAgICBfcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoV2ViQ29yZTo6c2NyZWVu
U2NhbGVGYWN0b3IoW1VJU2NyZWVuIG1haW5TY3JlZW5dKSk7CiAgICAgX3BhZ2UtPnNldFVzZUZp
eGVkTGF5b3V0KHRydWUpOwogICAgIF9wYWdlLT5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcodHJ1ZSk7
CisgICAgX3BhZ2UtPnNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2Ny
ZWVuXSBpc0NhcHR1cmVkXSk7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgX3Bh
Z2UtPnNldEZ1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGll
bnQ+KHNlbGYud2ViVmlldykpOwpAQCAtMjA4LDYgKzIwOSw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmU6
KSBuYW1lOlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0OltV
SUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlv
biBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKKyAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJl
ZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAog
I2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1Zl
cnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMp
KQpAQCAtNzcxLDYgKzc3MywxMSBAQCAtICh2b2lkKV9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQ6KE5TTm90aWZpY2F0aW9uKilub3RpZmljYXRpb24KICAgICAgICAgX3BhZ2UtPmFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZEZvck1lZGlhKCk7CiB9CiAKKy0gKHZvaWQpX3NjcmVl
bkNhcHR1cmVkRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAg
IF9wYWdlLT5zZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoW1tbc2VsZiB3aW5kb3ddIHNjcmVlbl0g
aXNDYXB0dXJlZF0pOworfQorCiBAZW5kCiAKICNwcmFnbWEgbWFyayBQcmludGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggNDMxNjc0MzE0ODMzMjE3MzM5YmFiNzRmNjhmZGNjMTg3MjcwZTBiYy4uZDA4
NjdhNzJiMTBiNWYxNDBlY2Q3NzUwYzhjZmE1ZjY4M2MxMWE0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC04OTYsNiArODk2LDcgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAjZW5kaWYKIAogICAg
IF9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9wYWdlLT5z
ZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoW1tbc2VsZiB3aW5kb3ddIHNjcmVlbl0gaXNDYXB0dXJl
ZF0pOwogCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gWUVTOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMjRiNTdlYTFlYzVl
MmI1YmVjNTRiMjMzMTIzZTRiZDRiNWI0ZTk4My4uOGRmZjI1ZTdhOGNkMDc3OTE1NTVkYzMyNWRj
OGM0ZjVjMDMwNWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCkBAIC0xNTgwLDYgKzE1ODAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJl
dmUKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2hvdWxkUmV2ZWFsQ3VycmVu
dFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRl
ckluc2VydGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2NyZWVuSXNCZWluZ0Nh
cHR1cmVkKGJvb2wgY2FwdHVyZWQpCit7CisgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCisg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChj
YXB0dXJlZCkpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbE9wZW5BcHBMaW5rKCkKIHsK
ICAgICBpZiAobV9vcGVuaW5nQXBwTGlua0FjdGl2aXR5ICYmIG1fb3BlbmluZ0FwcExpbmtBY3Rp
dml0eS0+aXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDBkNjJmNzMyYmFkNDk1YmYw
YzRjMDNkMTkxYTMxODI3YzE5NTZmMmYuLjBkZjc3NTllMWI4MmRkNDAzY2ZkYThjYTczMDk5ZWJj
NmRkZDgwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE4OCw2ICsxODgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAg
ICBib29sIHNob3VsZEFsbG93U2luZ2xlQ2xpY2tUb0NoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpO
b2RlJiwgY29uc3QgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVu
dEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRv
ckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9p
b3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCmluZGV4IDhmN2ZmMDdlOGM4ZTI5N2FjNjZjYjZhMzJk
OThiNjRlYjhjZWJjMjAuLmVjNzdlZGI2OWE2YjJkZWMyMDViN2UxYmRhMDlmYWIzYzk1N2VhZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3Mv
V2ViRWRpdG9yQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCkBAIC0xMTksNiArMTE5LDExIEBA
IGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJ
bnNlcnRpb24oKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPnNob3VsZFJldmVhbEN1cnJlbnRT
ZWxlY3Rpb25BZnRlckluc2VydGlvbigpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hv
dWxkU3VwcHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNj
cmVlbklzQ2FwdHVyZWQoKSB8fCBtX3BhZ2UtPmhhcmR3YXJlS2V5Ym9hcmRJc0F0dGFjaGVkKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAw
YjFkODFjODY5OGM3YWEyNjRjNzZhOTAyNTRlNzAwYjRhZjljMzVjLi43NDk5MWY3YjkxZDhjZTg3
NzI1OGZhNmRhNjY4ZTRiODg1MmMxMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC02NjUsNiArNjY1LDkgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBvdmVycmlkZVNjcmVlblNpemUoKSBjb25zdDsKICAgICBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAg
IHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCk7CisgICAgCisgICAgYm9vbCBzY3Jl
ZW5Jc0NhcHR1cmVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3JlZW5Jc0NhcHR1cmVkOyB9CisgICAg
dm9pZCBzZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCk7CiAKICAgICBkb3VibGUgbWluaW11
bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhpbXVtUGFnZVNjYWxlRmFj
dG9yKCkgY29uc3Q7CkBAIC0xMDE0LDYgKzEwMTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwbGF0
Zm9ybVByZWZlcnNUZXh0TGVnaWJpbGl0eUJhc2VkWm9vbVNjYWxpbmcoKSBjb25zdDsKIAogICAg
IHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCBrZXlib2FyZElz
QXR0YWNoZWQpOworICAgIGJvb2wgaGFyZHdhcmVLZXlib2FyZElzQXR0YWNoZWQoKSBjb25zdCB7
IHJldHVybiBtX2tleWJvYXJkSXNBdHRhY2hlZDsgfQogCiAgICAgdm9pZCB1cGRhdGVTdHJpbmdG
b3JGaW5kKGNvbnN0IFN0cmluZyYpOwogICAgIApAQCAtMTk4OCw2ICsxOTkyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yIHsgdHJ1ZSB9OwogICAgIGJv
b2wgbV9pc0luU3RhYmxlU3RhdGUgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJldmVhbEN1
cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbiB7IHRydWUgfTsKKyAgICBib29sIG1fc2NyZWVu
SXNDYXB0dXJlZCB7IGZhbHNlIH07CiAgICAgTW9ub3RvbmljVGltZSBtX29sZGVzdE5vblN0YWJs
ZVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHNUaW1lc3RhbXA7CiAgICAgU2Vjb25kcyBtX2VzdGlt
YXRlZExhdGVuY3kgeyAwIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fc2NyZWVuU2l6ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDgxYTdmNzhhMGE2ODllMzI1MDEyYjgzMmZmNzg5ZDFmOTkxODlhNzcuLjFj
ZmJkZWY3YjQxMjQxZDk3NWFlZDIwN2JhNDRiNTg4M2I1MTk1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTIs
NiArNTIsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRE
ZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKQogICAgIFNldE92ZXJy
aWRlVmlld3BvcnRBcmd1bWVudHMoT3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+
IGFyZ3VtZW50cykKICAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6OkZsb2F0
U2l6ZSB2aWV3TGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1Vbm9ic2N1cmVk
U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFy
Z2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgV2ViQ29yZTo6UmVjdEVk
Z2VzPGZsb2F0PiB0YXJnZXRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSBzY2FsZSwg
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbiwgZG91YmxlIG1pbmltdW1FZmZlY3RpdmVEZXZpY2VX
aWR0aCwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQorICAgIAorICAgIFNl
dFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sIGNhcHR1cmVkKQogCiAgICAgSGFuZGxlVGFwKFdl
YkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZp
ZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUcmFuc2FjdGlvbklEIGxhc3RMYXllclRyZWVUcmFuc2Fj
dGlvbklkKQogICAgIFBvdGVudGlhbFRhcEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50LCBib29sIHNob3VsZFJlcXVlc3RNYWduaWZpY2F0aW9u
SW5mb3JtYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCmluZGV4IDgxOWZiYmZjMjNkNjQ1MGFmMTU1YmY5MGVlNGZkOTI4YmU3
NmQwZWMuLmM1NDM3NDA3NmI0M2MxZGZhOGIzZDBjNzQ5ZjRjYzMxMmY4MzI2ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC00Mjc4LDYgKzQyNzgsMTEgQEAgdm9pZCBXZWJQYWdlOjpzZXRTaG91bGRSZXZlYWxDdXJyZW50
U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oYm9vbCBzaG91bGRSZXZlYWxDdXIKICAgICBzY2hlZHVs
ZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldFNjcmVlbklz
QmVpbmdDYXB0dXJlZChib29sIGNhcHR1cmVkKQoreworICAgIG1fc2NyZWVuSXNDYXB0dXJlZCA9
IGNhcHR1cmVkOworfQorCiB2b2lkIFdlYlBhZ2U6OnRleHRJbnB1dENvbnRleHRzSW5SZWN0KEZs
b2F0UmVjdCBzZWFyY2hSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxF
bGVtZW50Q29udGV4dD4mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGNvbnRl
eHRzID0gbV9wYWdlLT5lZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHNlYXJjaFJlY3QpLm1hcChbJl0g
KGNvbnN0IGF1dG8mIGVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
aW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUu
bQppbmRleCAwYmU4MGZiYWYxMmNhNTRkMWQ0ODg5ZTY1MDNlYzc2YmU0NTdjY2QwLi4zZTdiODE4
NzE1MTBjNzkxZmMxNjMzOWNkN2YyNmRhMGI3NzFhMjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVnYXRlLm0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
VUlLaXREZWxlZ2F0ZS5tCkBAIC0yNjgsNiArMjY4LDExIEBAIC0gKGludClkZXZpY2VPcmllbnRh
dGlvbgogfQogI2VuZGlmCiAKKy0gKEJPT0wpc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8KK3sK
KyAgICByZXR1cm4gTk87Cit9CisKIC0gKEJPT0wpaGFzUmljaGx5RWRpdGFibGVTZWxlY3Rpb24K
IHsKICAgICByZXR1cm4gTk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9X
ZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZp
ZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4IDUxNjk4Y2M4MDAzNTQ4NjIwYjIxMTBjZmM3NTJk
ZDNhNjg1NDVhOGQuLmM2NjRlYTY1NTAyYWRiYmEwYzA0N2EzZDIzN2NiZjk1NzE5Y2MzZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0
ZS5oCkBAIC0xMjgsNiArMTI4LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV2ViTWVk
aWFDYXB0dXJlVHlwZSkgewogCiAtIChCT09MKXNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25B
ZnRlckluc2VydGlvbjsKIAorLSAoQk9PTClzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobzsKKwog
I2lmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKIC0gKGludClkZXZpY2VPcmllbnRhdGlvbjsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA4NDU2ZjI2YjdhYTVlZjM1OTk2MTY1ZWFiODg3
NTJmMWI4NDBjYjlhLi5lMWI0MmVhNmQyZmJlZmUzYTFlZGYxMTMyMmM2ZDVlOGIzMDNmZjQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaApAQCAtMTQ5LDggKzE0OSw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUo
aW50IGluZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6
OkRvY3VtZW50RnJhZ21lbnQqKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVN0cmluZ0ZvckZpbmQo
Y29uc3QgU3RyaW5nJikgZmluYWwgeyB9Ci0KICAgICBib29sIHNob3VsZFJldmVhbEN1cnJlbnRT
ZWxlY3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkU3Vw
cHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBwZXJm
b3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdl
JiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4
IDRjMjE4Y2Q3MDI0YzBkMmVlMmRlOWRiMjg3OGM4NjFmNzFiMjNjNmMuLmQwNjY0MTEzMzFkYTEw
ZmM0OTA0YzQ2Mzk4Nzc4NzYyYTc0Mjc0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTgzMCw2
ICs4MzAsMTMgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFJldmVhbEN1cnJlbnRTZWxl
Y3Rpb25BZnRlckluc2VydGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wg
V2ViRWRpdG9yQ2xpZW50OjpzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpIGNvbnN0Cit7Cisg
ICAgaWYgKFtbbV93ZWJWaWV3IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKV0pCisgICAgICAgIHJl
dHVybiBbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gc2hvdWxkU3VwcHJlc3NQ
YXNzd29yZEVjaG9dOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUmVmUHRyPFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQ+IFdlYkVkaXRvckNsaWVudDo6ZG9jdW1lbnRGcmFnbWVudEZyb21EZWxl
Z2F0ZShpbnQgaW5kZXgpCiB7CiAgICAgaWYgKFtbbV93ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVG
b3J3YXJkZXJdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZG9jdW1lbnRGcmFnbWVudEZv
clBhc3RlYm9hcmRJdGVtQXRJbmRleDopXSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IGFkOWJmZGQ1MzIxZDE3YjEwOGU0MTRhYzk2ZTAyMjJmZGVh
ZTk3Y2MuLmE1NmIzNjdmMmMwMmM1OGY5ZWVlNTQ2MTIwZTRkNDc2ODY4NjdkYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE1MjQsNiArMTUyNCw4
IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcg
KilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5U
UykKICAgICBfcHJpdmF0ZS0+ZGV2aWNlT3JpZW50YXRpb24gPSBbW3NlbGYgX1VJS2l0RGVsZWdh
dGVGb3J3YXJkZXJdIGRldmljZU9yaWVudGF0aW9uXTsKICNlbmRpZgorICAgIGlmIChbW3NlbGYg
X1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hv
dWxkU3VwcHJlc3NQYXNzd29yZEVjaG8pXSkKKyAgICAgICAgX3ByaXZhdGUtPnNob3VsZFN1cHBy
ZXNzUGFzc3dvcmRFY2hvID0gW1tzZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSBzaG91bGRT
dXBwcmVzc1Bhc3N3b3JkRWNob107CiAjZW5kaWYKIAogICAgIGlmIChbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVF
bmFibGVkXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEu
aAppbmRleCBhZThhZGQ0MDI0OTEzY2M2ZTMzNTI3MmM0MDc2N2I3YWQxMGJiZGNjLi5hMDI4ZDc3
NDQ4Nzg5ZmNlNjQ1NmJjZmZiMmJjODI0YjRmZDIxZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBAIC0yNDUsNiArMjQ1LDcgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQogICAgIE5TVUludGVnZXIgZGV2aWNl
T3JpZW50YXRpb247CiAjZW5kaWYKKyAgICBCT09MIHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hv
OwogI2VuZGlmCiAgICAgQk9PTCBzaG91bGRDbG9zZVdpdGhXaW5kb3c7CiAgICAgQk9PTCBtYWlu
RnJhbWVEb2N1bWVudFJlYWR5Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399896</attachid>
            <date>2020-05-20 14:57:41 -0700</date>
            <delta_ts>2020-05-20 15:34:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212060-20200520145740.patch</filename>
            <type>text/plain</type>
            <size>19767</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY0NjEwMmZkZDA4MjQ4
NDBmZWY1OTk2OWMxOTZiOWEyMDA4MWViNS4uMDA1NzQ5YmYzNjlmMjlkNTViNGM5NzNjNjc3ZmUz
NDc2MDk2OTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE4ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSGlkZSBwYXNz
d29yZCBlY2hvIHdoZW4gc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMDYwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzY1MzU3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisK
KyAgICAgICAgV2hlbiB0aGUgc2NyZWVuIGlzIGJlaW5nIGNhcHR1cmVkLCB0dXJuIG9mZiB0aGUg
cGFzc3dvcmQgZWNoby4gCisKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9UZXh0Tm9kZUNv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudDo6aXNTY3JlZW5DYXB0dXJlZCBjb25zdCk6CisKIDIwMjAtMDUtMTgg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgZGVmYXVs
dCBpbml0aWFsaXplcnMgaW4gVGV4dEluZGljYXRvckRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjI1MDBkNDQ4
NzEzM2FlOTM1MGQ5NWQxMGNlNWJjOGViMDdhNmQ3OS4uZGM4ODc1MGVmN2RlNWMwZTkzODExMjI4
ZDQ0N2MxZDk0NjI5YzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMC0wNS0xOCAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEhpZGUg
cGFzc3dvcmQgZWNobyB3aGVuIHNjcmVlbiBpcyBiZWluZyBjYXB0dXJlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjA2MAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDc2NTM1Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVo
LgorCisgICAgICAgIFVzZSB0aGUgVUlTY3JlZW4gc3RhdGUgYW5kIG5vdGlmaWNhdGlvbiB0byBk
ZXRlcm1pbmUgaWYgdGhlCisgICAgICAgIHNjcmVlbiBpcyBiZWluZyBzaGFyZWQgb3IgY2FwdHVy
ZWQuIFRoaXMgZmxhZyBpcyBmb3IgYWxsCisgICAgICAgIGNhcHR1cmUgbWV0aG9kcywgQWlyIFBs
YXksIFNjcmVlbiBSZWNvcmRpbmcsIGV0Yy4gSWYgdGhlIHNjcmVlbiBpcworICAgICAgICBiZWlu
ZyBjYXB0dXJlZCwgdHVybiBvZmYgdGhlIHBhc3N3b3JkIGVjaG8gdG8gcHJldmVudCB0aGUgcGFz
c3dvcmQgZnJvbQorICAgICAgICBiZWluZyBsZWFrZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhQcm9j
ZXNzUG9vbDpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zY3Jl
ZW5DYXB0dXJlZERpZENoYW5nZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRJc1NjcmVlbkNh
cHR1cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRv
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc1NjcmVl
bkNhcHR1cmVkIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1NjcmVlbkNhcHR1cmVkIGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnNldElzU2NyZWVuQ2FwdHVyZWQpOgorCiAyMDIwLTA1LTE4ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGRlZmF1bHQgaW5pdGlhbGl6
ZXJzIGluIFRleHRJbmRpY2F0b3JEYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0luc2VydEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAppbmRleCA2NjAxZGI4ZmNiNGUzN2Y0YWRi
MjBhZjE3ODJlMjIxMjRjZjEzYmQ3Li40MDQ2NTMwYTA2ZTNhNWQzMTQ3MTIwN2FmMGM1ZjlmNTI5
MGFmOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydEludG9UZXh0
Tm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1Rl
eHROb2RlQ29tbWFuZC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVk
aXRvci5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01MSwxMyAr
NTMsMTQgQEAgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29t
bWFuZChSZWY8VGV4dD4mJiBub2RlLCB1bnNpZ25lZAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kOjpkb0FwcGx5KCkKIHsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJsZWQgPSBkb2N1
bWVudCgpLnNldHRpbmdzKCkucGFzc3dvcmRFY2hvRW5hYmxlZCgpOwotICAgIGlmIChwYXNzd29y
ZEVjaG9FbmFibGVkKQorICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG8gPSBkb2N1
bWVudCgpLmVkaXRvcigpLmNsaWVudCgpLT5zaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpOwor
ICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkICYmICFzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNo
bykKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKIAogICAgIGlmICghbV9ub2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChwYXNzd29yZEVjaG9FbmFibGVkKSB7CisgICAgaWYgKHBhc3N3b3Jk
RWNob0VuYWJsZWQgJiYgIXNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKSB7CiAgICAgICAgIGlm
IChSZW5kZXJUZXh0KiByZW5kZXJUZXh0ID0gbV9ub2RlLT5yZW5kZXJlcigpKQogICAgICAgICAg
ICAgcmVuZGVyVGV4dC0+bW9tZW50YXJpbHlSZXZlYWxMYXN0VHlwZWRDaGFyYWN0ZXIobV9vZmZz
ZXQgKyBtX3RleHQubGVuZ3RoKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CmluZGV4IDU4NGIxZTQzODA3Yzg4MWI0MDBjYTNjNDQ1YjY5OGE4NDdmODM0MmIuLjc3OTMxNzFm
ZTBhZGIxMTdkYWZmNDE2MGRhZmY2OTFjYTQ0NjBjMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgUmFuZ2UqLCBFZGl0b3JJbnNlcnRBY3Rpb24pID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShSYW5nZSogZnJv
bVJhbmdlLCBSYW5nZSogdG9SYW5nZSwgRUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlcklu
c2VydGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH07CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFN1cHByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH07CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0aWVzKiwgUmFuZ2Uq
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFwcGx5U3R5bGUoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDhj
ODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQuLmExYzZkMTZlOWU1OGZmZTYw
ZjIzYjlhNTQ3NDhlMDA3ZGY4M2QwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMDcsNiArMTA3LDcgQEAgdm9pZCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgZGV2aWNlT3JpZW50YXRpb247CiAgICAgZW5jb2RlciA8PCBr
ZXlib2FyZElzQXR0YWNoZWQ7CiAgICAgZW5jb2RlciA8PCBjYW5TaG93V2hpbGVMb2NrZWQ7Cisg
ICAgZW5jb2RlciA8PCBpc0NhcHR1cmluZ1NjcmVlbjsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIGVuY29kZXIgPDwgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwpAQCAtMzQwLDYg
KzM0MSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNhblNob3dXaGlsZUxv
Y2tlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLmlzQ2FwdHVyaW5nU2NyZWVuKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2ZmMzEzNTVjMWEy
NjE4YWE4MzcyYzUyN2I4MTQ2OWJjNDZlNDFkZC4uMzQxZTRkZTI3NzU1YjA4NWNjZmM2MjQ5ZThh
ZTBmNjYzNGU4NWI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaApAQCAtMTY3LDYgKzE2Nyw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uIHsgMCB9OwogICAg
IGJvb2wga2V5Ym9hcmRJc0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBib29sIGNhblNob3dXaGls
ZUxvY2tlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0NhcHR1cmluZ1NjcmVlbiB7IGZhbHNlIH07
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDg0MWE5
YmU2MGY1ZjVjNjcwOGJkNzFjNWVjY2JlMDEwZWNlZDIyMy4uODA5NTQ4ZmJiNTg1ZWIzMDcwMjE4
MDhhOWEyNjY1YmE3ZTNhMDcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTcxOCw2ICs3MTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c1RleHRJbnB1dENv
bnRleHRBbmRQbGFjZUNhcmV0KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAog
ICAgIHZvaWQgc2V0U2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKGJv
b2wpOworICAgICAgICAKKyAgICB2b2lkIHNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChib29sKTsK
IAogICAgIHZvaWQgaW5zZXJ0VGV4dFBsYWNlaG9sZGVyKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkVsZW1lbnRD
b250ZXh0PiYpPiYmKTsKICAgICB2b2lkIHJlbW92ZVRleHRQbGFjZWhvbGRlcihjb25zdCBXZWJD
b3JlOjpFbGVtZW50Q29udGV4dCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDJkNzljZWYx
OGRjNTVkMmY1NGRkYjU0MDJiM2E0NTkyNzkzMGRjNTAuLjZjZWNiMTE2ZWJlYjUyNDRmMWVjOWI2
MzExNWI5ZjcxZmU2ZDM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tCkBAIC0xNjksNiArMTY5LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9jb21tb25J
bml0aWFsaXphdGlvbldpdGhQcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHIK
ICAgICBfcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoV2ViQ29yZTo6c2NyZWVu
U2NhbGVGYWN0b3IoW1VJU2NyZWVuIG1haW5TY3JlZW5dKSk7CiAgICAgX3BhZ2UtPnNldFVzZUZp
eGVkTGF5b3V0KHRydWUpOwogICAgIF9wYWdlLT5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcodHJ1ZSk7
CisgICAgX3BhZ2UtPnNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChbW1tzZWxmIHdpbmRvd10gc2Ny
ZWVuXSBpc0NhcHR1cmVkXSk7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgX3Bh
Z2UtPnNldEZ1bGxzY3JlZW5DbGllbnQobWFrZVVuaXF1ZTxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGll
bnQ+KHNlbGYud2ViVmlldykpOwpAQCAtMjA4LDYgKzIwOSw3IEBAIC0gKGluc3RhbmNldHlwZSlf
Y29tbW9uSW5pdGlhbGl6YXRpb25XaXRoUHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2wmKXByCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmU6
KSBuYW1lOlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0OltV
SUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOlVJQXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxp
Y2F0aW9uXV07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlv
biBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKKyAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKF9zY3JlZW5DYXB0dXJlZERpZENoYW5nZTopIG5hbWU6VUlTY3JlZW5DYXB0dXJl
ZERpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJU2NyZWVuIG1haW5TY3JlZW5dXTsKIAog
I2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OklPU0Fw
cGxpY2F0aW9uOjppc0V2ZXJub3RlKCkgJiYgIWxpbmtlZE9uT3JBZnRlcihXZWJLaXQ6OlNES1Zl
cnNpb246OkZpcnN0V2hlcmVXS0NvbnRlbnRWaWV3RG9lc05vdE92ZXJyaWRlS2V5Q29tbWFuZHMp
KQpAQCAtNzcxLDYgKzc3MywxMSBAQCAtICh2b2lkKV9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQ6KE5TTm90aWZpY2F0aW9uKilub3RpZmljYXRpb24KICAgICAgICAgX3BhZ2UtPmFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZEZvck1lZGlhKCk7CiB9CiAKKy0gKHZvaWQpX3NjcmVl
bkNhcHR1cmVkRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAg
IF9wYWdlLT5zZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoW1tbc2VsZiB3aW5kb3ddIHNjcmVlbl0g
aXNDYXB0dXJlZF0pOworfQorCiBAZW5kCiAKICNwcmFnbWEgbWFyayBQcmludGluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KaW5kZXggNDMxNjc0MzE0ODMzMjE3MzM5YmFiNzRmNjhmZGNjMTg3MjcwZTBiYy4uZDA4
NjdhNzJiMTBiNWYxNDBlY2Q3NzUwYzhjZmE1ZjY4M2MxMWE0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC04OTYsNiArODk2LDcgQEAgLSAodm9pZClzZXRVcEludGVyYWN0aW9uCiAjZW5kaWYKIAogICAg
IF9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9wYWdlLT5z
ZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoW1tbc2VsZiB3aW5kb3ddIHNjcmVlbl0gaXNDYXB0dXJl
ZF0pOwogCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gWUVTOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMjRiNTdlYTFlYzVl
MmI1YmVjNTRiMjMzMTIzZTRiZDRiNWI0ZTk4My4uOGRmZjI1ZTdhOGNkMDc3OTE1NTVkYzMyNWRj
OGM0ZjVjMDMwNWNkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCkBAIC0xNTgwLDYgKzE1ODAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJl
dmUKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2hvdWxkUmV2ZWFsQ3VycmVu
dFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKHNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRl
ckluc2VydGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2NyZWVuSXNCZWluZ0Nh
cHR1cmVkKGJvb2wgY2FwdHVyZWQpCit7CisgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCisg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldFNjcmVlbklzQmVpbmdDYXB0dXJlZChj
YXB0dXJlZCkpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbE9wZW5BcHBMaW5rKCkKIHsK
ICAgICBpZiAobV9vcGVuaW5nQXBwTGlua0FjdGl2aXR5ICYmIG1fb3BlbmluZ0FwcExpbmtBY3Rp
dml0eS0+aXNWYWxpZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDBkNjJmNzMyYmFkNDk1YmYw
YzRjMDNkMTkxYTMxODI3YzE5NTZmMmYuLjBkZjc3NTllMWI4MmRkNDAzY2ZkYThjYTczMDk5ZWJj
NmRkZDgwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE4OCw2ICsxODgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgdXBkYXRlU3RyaW5nRm9yRmluZChjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAg
ICBib29sIHNob3VsZEFsbG93U2luZ2xlQ2xpY2tUb0NoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpO
b2RlJiwgY29uc3QgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgc2hvdWxkUmV2ZWFsQ3VycmVudFNlbGVjdGlvbkFmdGVySW5zZXJ0aW9uKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBzaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobygpIGNvbnN0IGZpbmFs
OwogI2VuZGlmCiAKICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVu
dEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRv
ckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9p
b3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCmluZGV4IDhmN2ZmMDdlOGM4ZTI5N2FjNjZjYjZhMzJk
OThiNjRlYjhjZWJjMjAuLmFmYjM4NjEwM2M2Yzc4OGFmOTk5YjVlNDAyOGI0YzQwYjk2NzNjNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3Mv
V2ViRWRpdG9yQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCkBAIC0xMTksNiArMTE5LDExIEBA
IGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJ
bnNlcnRpb24oKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPnNob3VsZFJldmVhbEN1cnJlbnRT
ZWxlY3Rpb25BZnRlckluc2VydGlvbigpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hv
dWxkU3VwcHJlc3NQYXNzd29yZEVjaG8oKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPnNj
cmVlbklzQmVpbmdDYXB0dXJlZCgpIHx8IG1fcGFnZS0+aGFyZHdhcmVLZXlib2FyZElzQXR0YWNo
ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDBiMWQ4MWM4Njk4YzdhYTI2NGM3NmE5MDI1NGU3MDBiNGFmOWMzNWMuLjU2ZDJkMThjOTJi
NTg4NTAwNjIxZjhiMzAzNzA5MGMyNTZlNWY0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY2NSw2ICs2NjUsOSBAQCBwdWJsaWM6CiAgICAgV2Vi
Q29yZTo6RmxvYXRTaXplIG92ZXJyaWRlU2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIGludDMyX3Qg
ZGV2aWNlT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uOyB9
CiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKTsKKyAgICAKKyAgICBib29s
IHNjcmVlbklzQmVpbmdDYXB0dXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NyZWVuSXNCZWluZ0Nh
cHR1cmVkOyB9CisgICAgdm9pZCBzZXRTY3JlZW5Jc0JlaW5nQ2FwdHVyZWQoYm9vbCk7CiAKICAg
ICBkb3VibGUgbWluaW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIGRvdWJsZSBtYXhp
bXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CkBAIC0xMDE0LDYgKzEwMTcsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBwbGF0Zm9ybVByZWZlcnNUZXh0TGVnaWJpbGl0eUJhc2VkWm9vbVNjYWxpbmco
KSBjb25zdDsKIAogICAgIHZvaWQgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQo
Ym9vbCBrZXlib2FyZElzQXR0YWNoZWQpOworICAgIGJvb2wgaGFyZHdhcmVLZXlib2FyZElzQXR0
YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX2tleWJvYXJkSXNBdHRhY2hlZDsgfQogCiAgICAgdm9p
ZCB1cGRhdGVTdHJpbmdGb3JGaW5kKGNvbnN0IFN0cmluZyYpOwogICAgIApAQCAtMTk4OCw2ICsx
OTkyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9pc0luU3RhYmxlU3RhdGUgeyB0cnVlIH07CiAgICAgYm9vbCBt
X3Nob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbiB7IHRydWUgfTsKKyAg
ICBib29sIG1fc2NyZWVuSXNCZWluZ0NhcHR1cmVkIHsgZmFsc2UgfTsKICAgICBNb25vdG9uaWNU
aW1lIG1fb2xkZXN0Tm9uU3RhYmxlVXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c1RpbWVzdGFtcDsK
ICAgICBTZWNvbmRzIG1fZXN0aW1hdGVkTGF0ZW5jeSB7IDAgfTsKICAgICBXZWJDb3JlOjpGbG9h
dFNpemUgbV9zY3JlZW5TaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggODFhN2Y3OGEwYTY4OWUzMjUwMTJiODMy
ZmY3ODlkMWY5OTE4OWE3Ny4uMWNmYmRlZjdiNDEyNDFkOTc1YWVkMjA3YmE0NGI1ODgzYjUxOTUx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1Miw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QgZGV2aWNlT3JpZW50
YXRpb24pCiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhPcHRpb25hbDxXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGUoV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdMYXlvdXRTaXplLCBXZWJDb3JlOjpGbG9hdFNp
emUgbWF4aW11bVVub2JzY3VyZWRTaXplLCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0RXhwb3Nl
ZENvbnRlbnRSZWN0LCBXZWJDb3JlOjpGbG9hdFJlY3QgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIFdl
YkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IHRhcmdldFVub2JzY3VyZWRTYWZlQXJlYUlu
c2V0cywgZG91YmxlIHNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBkb3VibGUgbWlu
aW11bUVmZmVjdGl2ZURldmljZVdpZHRoLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlSUQpCisgICAgCisgICAgU2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKGJvb2wgY2FwdHVyZWQp
CiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlvblNldDxXZWJL
aXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQg
bGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAgICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1
aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxk
UmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggODE5ZmJiZmMyM2Q2NDUw
YWYxNTViZjkwZWU0ZmQ5MjhiZTc2ZDBlYy4uYmY3MGJkMzIyMmQ3NDAzZWY0NmQ3M2Q4ZWE1OTBk
NWRhZjJlN2MxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KQEAgLTQyNzgsNiArNDI3OCwxMSBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFNob3VsZFJldmVhbEN1cnJlbnRTZWxlY3Rpb25BZnRlckluc2VydGlvbihib29sIHNob3VsZFJl
dmVhbEN1cgogICAgIHNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7CiB9CiAKK3ZvaWQg
V2ViUGFnZTo6c2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVkKGJvb2wgY2FwdHVyZWQpCit7CisgICAg
bV9zY3JlZW5Jc0JlaW5nQ2FwdHVyZWQgPSBjYXB0dXJlZDsKK30KKwogdm9pZCBXZWJQYWdlOjp0
ZXh0SW5wdXRDb250ZXh0c0luUmVjdChGbG9hdFJlY3Qgc2VhcmNoUmVjdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBWZWN0b3I8RWxlbWVudENvbnRleHQ+Jik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgYXV0byBjb250ZXh0cyA9IG1fcGFnZS0+ZWRpdGFibGVFbGVtZW50c0lu
UmVjdChzZWFyY2hSZWN0KS5tYXAoWyZdIChjb25zdCBhdXRvJiBlbGVtZW50KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRV
SUtpdERlbGVnYXRlLm0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9EZWZhdWx0RGVsZWdhdGVz
L1dlYkRlZmF1bHRVSUtpdERlbGVnYXRlLm0KaW5kZXggMGJlODBmYmFmMTJjYTU0ZDFkNDg4OWU2
NTAzZWM3NmJlNDU3Y2NkMC4uM2U3YjgxODcxNTEwYzc5MWZjMTYzMzljZDdmMjZkYTBiNzcxYTI5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvRGVmYXVsdERlbGVnYXRlcy9X
ZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0Rl
ZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubQpAQCAtMjY4LDYgKzI2OCwx
MSBAQCAtIChpbnQpZGV2aWNlT3JpZW50YXRpb24KIH0KICNlbmRpZgogCistIChCT09MKXNob3Vs
ZFN1cHByZXNzUGFzc3dvcmRFY2hvCit7CisgICAgcmV0dXJuIE5POworfQorCiAtIChCT09MKWhh
c1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uCiB7CiAgICAgcmV0dXJuIE5POwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAppbmRleCA1MTY5
OGNjODAwMzU0ODYyMGIyMTEwY2ZjNzUyZGQzYTY4NTQ1YThkLi5jNjY0ZWE2NTUwMmFkYmJhMGMw
NDdhM2QyMzdjYmY5NTcxOWNjM2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApAQCAtMTI4LDYgKzEyOCw4IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVyZVR5cGUpIHsKIAogLSAoQk9PTClzaG91
bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb247CiAKKy0gKEJPT0wpc2hvdWxk
U3VwcHJlc3NQYXNzd29yZEVjaG87CisKICNpZiBFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTCiAt
IChpbnQpZGV2aWNlT3JpZW50YXRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggODQ1
NmYyNmI3YWE1ZWYzNTk5NjE2NWVhYjg4NzUyZjFiODQwY2I5YS4uZTFiNDJlYTZkMmZiZWZlM2Ex
ZWRmMTEzMjJjNmQ1ZThiMzAzZmY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE0OSw4ICsxNDks
OCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50PiBkb2N1
bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCBpbmRleCkgZmluYWw7CiAgICAgYm9vbCBwZXJm
b3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KikgZmluYWw7CiAgICAg
dm9pZCB1cGRhdGVTdHJpbmdGb3JGaW5kKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQotCiAgICAg
Ym9vbCBzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdCBm
aW5hbDsKKyAgICBib29sIHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKCkgY29uc3QgZmluYWw7
CiAjZW5kaWYKIAogICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50
RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0YzIxOGNkNzAyNGMwZDJlZTJkZTlkYjI4NzhjODYx
ZjcxYjIzYzZjLi5kMDY2NDExMzMxZGExMGZjNDkwNGM0NjM5ODc3ODc2MmE3NDI3NDIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCkBAIC04MzAsNiArODMwLDEzIEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRSZXZlYWxDdXJyZW50U2VsZWN0aW9uQWZ0ZXJJbnNlcnRpb24oKSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU3VwcHJlc3NQ
YXNzd29yZEVjaG8oKSBjb25zdAoreworICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0
ZUZvcndhcmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzaG91bGRTdXBwcmVzc1Bh
c3N3b3JkRWNobyldKQorICAgICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJS2l0RGVsZWdhdGVG
b3J3YXJkZXJdIHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvXTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50PiBXZWJFZGl0b3JDbGllbnQ6
OmRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KQogewogICAgIGlmIChbW21f
d2ViVmlldyBfZWRpdGluZ0RlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGRvY3VtZW50RnJhZ21lbnRGb3JQYXN0ZWJvYXJkSXRlbUF0SW5kZXg6KV0pIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhZDliZmRkNTMy
MWQxN2IxMDhlNDE0YWM5NmUwMjIyZmRlYWU5N2NjLi5hNTZiMzY3ZjJjMDJjNThmOWVlZTU0NjEy
MGU0ZDQ3Njg2ODY3ZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNTI0LDYgKzE1MjQsOCBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlv
bldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogI2lm
IEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgX3ByaXZhdGUtPmRldmljZU9yaWVudGF0
aW9uID0gW1tzZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSBkZXZpY2VPcmllbnRhdGlvbl07
CiAjZW5kaWYKKyAgICBpZiAoW1tzZWxmIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNob3VsZFN1cHByZXNzUGFzc3dvcmRFY2hvKV0pCisgICAg
ICAgIF9wcml2YXRlLT5zaG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobyA9IFtbc2VsZiBfVUlLaXRE
ZWxlZ2F0ZUZvcndhcmRlcl0gc2hvdWxkU3VwcHJlc3NQYXNzd29yZEVjaG9dOwogI2VuZGlmCiAK
ICAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9y
S2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggYWU4YWRkNDAyNDkxM2NjNmUzMzUyNzJj
NDA3NjdiN2FkMTBiYmRjYy4uYTAyOGQ3NzQ0ODc4OWZjZTY0NTZiY2ZmYjJiYzgyNGI0ZmQyMWZj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApA
QCAtMjQ1LDYgKzI0NSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5U
UykKICAgICBOU1VJbnRlZ2VyIGRldmljZU9yaWVudGF0aW9uOwogI2VuZGlmCisgICAgQk9PTCBz
aG91bGRTdXBwcmVzc1Bhc3N3b3JkRWNobzsKICNlbmRpZgogICAgIEJPT0wgc2hvdWxkQ2xvc2VX
aXRoV2luZG93OwogICAgIEJPT0wgbWFpbkZyYW1lRG9jdW1lbnRSZWFkeTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>