<?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>220436</bug_id>
          
          <creation_ts>2021-01-07 14:19:08 -0800</creation_ts>
          <short_desc>Make SpeechRecognition permission error more informative</short_desc>
          <delta_ts>2021-01-11 14:30:15 -0800</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718083</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-07 14:19:08 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718085</commentid>
    <comment_count>1</comment_count>
      <attachid>417211</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-07 14:25:21 -0800</bug_when>
    <thetext>Created attachment 417211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718235</commentid>
    <comment_count>2</comment_count>
      <attachid>417211</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-08 00:29:06 -0800</bug_when>
    <thetext>Comment on attachment 417211
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        boolean value.

For debug purposes, it might be good to add release logging for each error case so that we get the information in sysdiagnose.

&gt; Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp:78
&gt; +void SpeechRecognitionPermissionManager::request(const String&amp; lang, const WebCore::ClientOrigin&amp; origin, CompletionHandler&lt;void(Optional&lt;WebCore::SpeechRecognitionError&gt;)&gt;&amp;&amp; completiontHandler)

Optional&lt;WebCore::SpeechRecognitionError&gt;&amp;&amp; here and elsewhere

&gt; Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp:110
&gt;          m_speechRecognitionServiceCheck = CheckResult::Granted;

We do not need to compute m_microphoneCheck and m_speechRecognitionServiceCheck if mockCaptureDevicesEnabled is true.
We could write it as:
if (mockCaptureDevicesEnabled) {
    m_microphoneCheck = CheckResult::Granted;
    ...
} else {
    m_microphoneCheck = computeMicrophoneAccess();
    if (m_microphoneCheck == CheckResult::Denied) { 
        ...
        return;
    }
    ...
}

&gt; Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp:124
&gt;      if (!mockCaptureDevicesEnabled &amp;&amp; m_speechRecognitionServiceCheck != CheckResult::Denied) {

We no longer need m_speechRecognitionServiceCheck != CheckResult::Denied

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.cpp:77
&gt;              sendUpdate(identifier, WebCore::SpeechRecognitionUpdateType::Error, error);

WTFMove(error)

&gt; Source/WebKit/UIProcess/SpeechRecognitionServer.h:48
&gt; +using SpeechRecognitionPermissionChecker = Function&lt;void(const String&amp;, const WebCore::ClientOrigin&amp;, CompletionHandler&lt;void(Optional&lt;WebCore::SpeechRecognitionError&gt;)&gt;&amp;&amp;)&gt;;

Optional&lt;WebCore::SpeechRecognitionError&gt;&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718810</commentid>
    <comment_count>3</comment_count>
      <attachid>417409</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-01-11 13:52:47 -0800</bug_when>
    <thetext>Created attachment 417409
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718822</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-11 14:29:27 -0800</bug_when>
    <thetext>Committed r271381: &lt;https://trac.webkit.org/changeset/271381&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417409.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718823</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-11 14:30:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73014001&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417211</attachid>
            <date>2021-01-07 14:25:21 -0800</date>
            <delta_ts>2021-01-11 13:52:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220436-20210107142520.patch</filename>
            <type>text/plain</type>
            <size>23891</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0MzE4MDQ0N2NlMmI3MWVl
ZGFiOGI3YzkwY2RlOWNiYmQ0YmIzMzYuLjRlNDRjNDIxMzc3N2FmZTBlODhhZThhY2JlMGU1NWQ4
MGMzNzIwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDEtMDcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBNYWtlIFNwZWVjaFJlY29nbml0aW9u
IHBlcm1pc3Npb24gZXJyb3IgbW9yZSBpbmZvcm1hdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNDM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyIGNvbXBsZXRlIHJlcXVlc3RzIHdpdGggYW4gb3B0aW9uYWwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciBpbnN0ZWFkIG9mIGEgCisgICAgICAgIGJvb2xlYW4gdmFsdWUuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6On5TcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6
OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnN0YXJ0UHJvY2Vzc2luZ1JlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2Vy
Ojpjb250aW51ZVByb2Nlc3NpbmdSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6Y29tcGxldGVDdXJyZW50UmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RT
cGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0TWljcm9waG9uZUFjY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVl
c3RVc2VyUGVybWlzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Q6OlNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1ZXN0
UGVybWlzc2lvbkZvclJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNvZ25pdGlvblNlcnZlcik6CisKIDIwMjEtMDEtMDcgIFNp
aHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVE
OiAhbV9tZXNzYWdlUmVjZWl2ZXJNYXBDb3VudCB1bmRlciBXZWJLaXQ6OlNwZWVjaFJlY29nbml0
aW9uU2VydmVyOjp+U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5h
Z2VyLmNwcAppbmRleCA0OGY3MDBiY2IxZTU5NzZiMmQ2YjU5MTNmNTI2ZTNmZWY4NzdhNTBjLi5m
ZWNjZDZiZjk1MzJhN2ZhNmY0YTgyZDc0NWY2OGEzMWEwMTVjNmQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLmNwcApAQCAtNzIsMTAgKzcyLDEwIEBAIFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIoV2ViUGFnZVBy
CiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjp+U3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uTWFuYWdlcigpCiB7CiAgICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9yZXF1ZXN0
cykKLSAgICAgICAgcmVxdWVzdC0+Y29tcGxldGUoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
RGVjaXNpb246OkRlbnkpOworICAgICAgICByZXF1ZXN0LT5jb21wbGV0ZShTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsICJQZXJt
aXNzaW9uIG1hbmFnZXIgaGFzIGV4aXRlZCJfcyB9KTsKIH0KICAgICAKLXZvaWQgU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJiBjb21wbGV0aW9udEhhbmRs
ZXIpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3QoY29u
c3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPik+JiYgY29tcGxldGlvbnRIYW5kbGVyKQogewogICAgIG1fcmVxdWVzdHMuYXBwZW5kKFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZShsYW5nLCBvcmlnaW4sIFdU
Rk1vdmUoY29tcGxldGlvbnRIYW5kbGVyKSkpOwogICAgIGlmIChtX3JlcXVlc3RzLnNpemUoKSA9
PSAxKQpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1h
bmFnZXI6OnN0YXJ0UHJvY2Vzc2luZ1JlcXVlc3QoKQogewogI2lmIFBMQVRGT1JNKENPT0NBKQog
ICAgIGlmICghY2hlY2tTYW5kYm94UmVxdWlyZW1lbnRGb3JUeXBlKE1lZGlhUGVybWlzc2lvblR5
cGU6OkF1ZGlvKSkgewotICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKKyAgICAgICAgY29tcGxldGVDdXJyZW50
UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5
cGU6Ok5vdEFsbG93ZWQsICJTYW5kYm94IGNoZWNrIGhhcyBmYWlsZWQiX3MgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTExMCwyMCArMTEwLDI3IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVxdWVzdCgpCiAg
ICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgPSBDaGVja1Jlc3VsdDo6R3Jh
bnRlZDsKICAgICB9CiAKKyAgICBpZiAobV9taWNyb3Bob25lQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6
OkRlbmllZCkgeworICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIk1pY3Jv
cGhvbmUgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIl9zIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgPT0gQ2hl
Y2tSZXN1bHQ6OkRlbmllZCkgeworICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5v
dEFsbG93ZWQsICJTcGVlY2ggcmVjb2duaXRpb24gc2VydmljZSBwZXJtaXNzaW9uIGNoZWNrIGhh
cyBmYWlsZWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICNpZiBIQVZFKFNQRUVD
SFJFQ09HTklaRVIpCiAgICAgaWYgKCFtb2NrQ2FwdHVyZURldmljZXNFbmFibGVkICYmIG1fc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgIT0gQ2hlY2tSZXN1bHQ6OkRlbmllZCkgewogICAg
ICAgICAvLyBTcGVlY2ggcmVjb2duaXRpb24gc2VydmljZSBjYW4gYmUgdW5hdmFpbGFibGUgd2hl
biB1c2VyIGRvZXMgbm90IGVuYWJsZSBkaWN0YXRpb24gaW4gc3lzdGVtIHNldHRpbmdzLgogICAg
ICAgICAvLyBMZXQncyBhdm9pZCBwcm9tcHRpbmcgdXNlciBpbiB0aGF0IGNhc2UuCi0gICAgICAg
IGlmICghY2hlY2tTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBdmFpbGFiaWxpdHkobV9yZXF1ZXN0
cy5maXJzdCgpLT5sYW5nKCkpKQotICAgICAgICAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZp
Y2VDaGVjayA9IENoZWNrUmVzdWx0OjpEZW5pZWQ7CisgICAgICAgIGlmICghY2hlY2tTcGVlY2hS
ZWNvZ25pdGlvblNlcnZpY2VBdmFpbGFiaWxpdHkobV9yZXF1ZXN0cy5maXJzdCgpLT5sYW5nKCkp
KSB7CisgICAgICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6U2VydmljZU5vdEFsbG93ZWQsICJT
cGVlY2ggcmVjb2duaXRpb24gc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIl9zIH0pOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKLSAgICBpZiAobV9taWNy
b3Bob25lQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6OkRlbmllZCB8fCBtX3NwZWVjaFJlY29nbml0aW9u
U2VydmljZUNoZWNrID09IENoZWNrUmVzdWx0OjpEZW5pZWQpIHsKLSAgICAgICAgY29tcGxldGVD
dXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBXZSBjdXJyZW50bHkgZG9uJ3QgYWxs
b3cgdGhpcmQtcGFydHkgYWNjZXNzLgogICAgIGlmIChtX3VzZXJQZXJtaXNzaW9uQ2hlY2sgPT0g
Q2hlY2tSZXN1bHQ6OlVua25vd24pIHsKICAgICAgICAgYXV0byBjbGllbnRPcmlnaW4gPSBtX3Jl
cXVlc3RzLmZpcnN0KCktPm9yaWdpbigpOwpAQCAtMTM0LDcgKzE0MSw3IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVxdWVzdCgpCiAg
ICAgfQogCiAgICAgaWYgKG1fdXNlclBlcm1pc3Npb25DaGVjayA9PSBDaGVja1Jlc3VsdDo6RGVu
aWVkKSB7Ci0gICAgICAgIGNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOworICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0
KFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90
QWxsb3dlZCwgIlVzZXIgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIl9zIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xNjIsMTggKzE2OSwxOCBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ1JlcXVlc3QoKQogICAg
IEFTU0VSVChtX3VzZXJQZXJtaXNzaW9uQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6OkdyYW50ZWQpOwog
CiAgICAgaWYgKCFtX3BhZ2UuaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgIGNvbXBsZXRlQ3Vy
cmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOwor
ICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBhZ2UgaXMgbm90IHZpc2li
bGUgdG8gdXNlciIgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb21wbGV0ZUN1
cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpHcmFudCk7
CisgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCgpOwogfQogCi12b2lkIFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXI6OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pCit2b2lkIFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbk1hbmFnZXI6OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoT3B0aW9uYWw8U3BlZWNo
UmVjb2duaXRpb25FcnJvcj4gZXJyb3IpCiB7CiAgICAgQVNTRVJUKCFtX3JlcXVlc3RzLmlzRW1w
dHkoKSk7CiAgICAgYXV0byBjdXJyZW50UmVxdWVzdCA9IG1fcmVxdWVzdHMudGFrZUZpcnN0KCk7
Ci0gICAgY3VycmVudFJlcXVlc3QtPmNvbXBsZXRlKGRlY2lzaW9uKTsKKyAgICBjdXJyZW50UmVx
dWVzdC0+Y29tcGxldGUoZXJyb3IpOwogCiAgICAgc3RhcnROZXh0UmVxdWVzdCgpOwogfQpAQCAt
MTg5LDcgKzE5Niw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6
cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uU2VydmljZUFjY2VzcygpCiAKICAgICAgICAgbV9zcGVl
Y2hSZWNvZ25pdGlvblNlcnZpY2VDaGVjayA9IGF1dGhvcml6ZWQgPyBDaGVja1Jlc3VsdDo6R3Jh
bnRlZCA6IENoZWNrUmVzdWx0OjpEZW5pZWQ7CiAgICAgICAgIGlmIChtX3NwZWVjaFJlY29nbml0
aW9uU2VydmljZUNoZWNrID09IENoZWNrUmVzdWx0OjpEZW5pZWQpIHsKLSAgICAgICAgICAgIGNv
bXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246
OkRlbnkpOworICAgICAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZpY2VOb3RBbGxvd2Vk
LCAiU3BlZWNoIHJlY29nbml0aW9uIHNlcnZpY2UgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVk
Il9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTIwOSw3ICsyMTYs
NyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RNaWNy
b3Bob25lQWNjZXNzKCkKIAogICAgICAgICBtX21pY3JvcGhvbmVDaGVjayA9IGF1dGhvcml6ZWQg
PyBDaGVja1Jlc3VsdDo6R3JhbnRlZCA6IENoZWNrUmVzdWx0OjpEZW5pZWQ7CiAgICAgICAgIGlm
IChtX21pY3JvcGhvbmVDaGVjayA9PSBDaGVja1Jlc3VsdDo6RGVuaWVkKSB7Ci0gICAgICAgICAg
ICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lz
aW9uOjpEZW55KTsKKyAgICAgICAgICAgIGNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVj
b2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAi
TWljcm9waG9uZSBwZXJtaXNzaW9uIGNoZWNrIGhhcyBmYWlsZWQiX3MgfSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMjMxLDcgKzIzOCw3IEBAIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdFVzZXJQZXJtaXNzaW9uKCkKIAogICAg
ICAgICBtX3VzZXJQZXJtaXNzaW9uQ2hlY2sgPSBncmFudGVkID8gQ2hlY2tSZXN1bHQ6OkdyYW50
ZWQgOiBDaGVja1Jlc3VsdDo6RGVuaWVkOwogICAgICAgICBpZiAobV91c2VyUGVybWlzc2lvbkNo
ZWNrID09IENoZWNrUmVzdWx0OjpEZW5pZWQpIHsKLSAgICAgICAgICAgIGNvbXBsZXRlQ3VycmVu
dFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOworICAg
ICAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFsbG93ZWQsICJVc2VyIHBlcm1pc3Npb24g
Y2hlY2sgaGFzIGZhaWxlZCJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0yNDAsOCArMjQ3LDYgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5h
Z2VyOjpyZXF1ZXN0VXNlclBlcm1pc3Npb24oKQogICAgIG1fcGFnZS51aUNsaWVudCgpLmRlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCBBUEk6
OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodG9wT3JpZ2luLmdldCgpKS5nZXQoKSwgV1RGTW92ZShk
ZWNpc2lvbkhhbmRsZXIpKTsKIH0KIAotCi0KIHZvaWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlcjo6ZGVjaWRlQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmgK
aW5kZXggMGM0Y2E2ZjViODNiNDlkYWRjNzRmN2Y3ZjEwMGM4Njg2YmYxODI3Zi4uYmU2NjI1ZTlk
MDRlODI2ZGE5ZDU1N2JlZTBlNjdiYjRiNjEwOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIu
aApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBDaGVja1Jlc3VsdCB7
IERlbmllZCwgR3JhbnRlZCwgVW5rbm93biB9OwogICAgIGV4cGxpY2l0IFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIoV2ViUGFnZVByb3h5Jik7CiAgICAgflNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbk1hbmFnZXIoKTsKLSAgICB2b2lkIHJlcXVlc3QoY29uc3QgU3RyaW5nJiBs
YW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CisgICAgdm9pZCByZXF1
ZXN0KGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yPik+JiYpOwogCiAgICAgdm9pZCBkZWNpZGVCeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH0KQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0TmV4dFJlcXVlc3QoKTsKICAgICB2b2lkIHN0YXJ0
UHJvY2Vzc2luZ1JlcXVlc3QoKTsKICAgICB2b2lkIGNvbnRpbnVlUHJvY2Vzc2luZ1JlcXVlc3Qo
KTsKLSAgICB2b2lkIGNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uRGVjaXNpb24pOworICAgIHZvaWQgY29tcGxldGVDdXJyZW50UmVxdWVzdChPcHRpb25h
bDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiA9IFdURjo6bnVsbG9wdCk7CiAgICAg
dm9pZCByZXF1ZXN0TWljcm9waG9uZUFjY2VzcygpOwogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJl
Y29nbml0aW9uU2VydmljZUFjY2VzcygpOwogICAgIHZvaWQgcmVxdWVzdFVzZXJQZXJtaXNzaW9u
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXggZTdjY2M0OGQxN2MwMTA2YjUwZTlkZWQz
YjlmNGE1NzJiNzRiYzg3Ny4uNTAxYTJhMjEwYTU0YjFlZWYwNDgyNTkyZTQwMWMyOTBlNTM5NzI1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMjcsMzAgKzI3LDI5IEBACiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotZW51bSBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbiA6IGJvb2wgeyBEZW55LCBHcmFudCB9
OwotCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNp
b24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChsYW5nLCBvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KSk7CiAgICAgfQogCi0gICAgdm9pZCBjb21wbGV0ZShTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25EZWNpc2lvbiBkZWNpc2lvbikKKyAgICB2b2lkIGNvbXBsZXRlKE9wdGlvbmFsPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+IGVycm9yKQogICAgIHsKICAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgeyB9KTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGVjaXNpb24pOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihlcnJvcik7CiAgICAgfQogCiAgICAgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGNvbnN0IFN0cmluZyYg
bGFuZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFuZzsgfQogCiBwcml2YXRlOgotICAgIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKICAgICAgICAgOiBtX2xhbmcobGFuZykKICAgICAgICAgLCBtX29yaWdpbihvcmln
aW4pCiAgICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkKQEAgLTU4LDcgKzU3LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX2xhbmc7CiAg
ICAgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG1fb3JpZ2luOwotICAgIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiBtX2NvbXBsZXRpb25I
YW5kbGVyOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvcj4pPiBtX2NvbXBsZXRpb25IYW5kbGVyOwogfTsKIAogY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2sgOiBwdWJsaWMgQVBJOjpPYmplY3RJ
bXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFj
az4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIuY3BwCmluZGV4IGVjOWI4YjE4ODdmOTU4NDBhZWEzYzNmZGExMGRkMTYyNWJhZDgxNWYu
LmU1MzI0OWZjOGU1NDM1M2MxODE3N2I5Mjc3Y2Q3MDBlMWQ4NWNlMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKQEAgLTY0
LDcgKzY0LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblNlcnZlcjo6c3RhcnQoV2ViQ29yZTo6
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWQKIAogdm9pZCBTcGVlY2hSZWNvZ25p
dGlvblNlcnZlcjo6cmVxdWVzdFBlcm1pc3Npb25Gb3JSZXF1ZXN0KFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBtX3Blcm1pc3Npb25DaGVja2VyKHJl
cXVlc3QubGFuZygpLCByZXF1ZXN0LmNsaWVudE9yaWdpbigpLCBbdGhpcywgd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKSwgd2Vha1JlcXVlc3QgPSBtYWtlV2Vha1B0cihyZXF1ZXN0KV0oYXV0
byBkZWNpc2lvbikgbXV0YWJsZSB7CisgICAgbV9wZXJtaXNzaW9uQ2hlY2tlcihyZXF1ZXN0Lmxh
bmcoKSwgcmVxdWVzdC5jbGllbnRPcmlnaW4oKSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIHdlYWtSZXF1ZXN0ID0gbWFrZVdlYWtQdHIocmVxdWVzdCldKGF1dG8gZXJyb3Ip
IG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC03Miw5ICs3Miw4IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQ
ZXJtaXNzaW9uRm9yUmVxdWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElk
ZW50aWZpZXIoKTsKLSAgICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbkRlY2lzaW9uOjpEZW55KSB7CisgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAg
ICAgbV9yZXF1ZXN0cy5yZW1vdmUoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICBhdXRvIGVycm9y
ID0gV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3Mg
fTsKICAgICAgICAgICAgIHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25VcGRhdGVUeXBlOjpFcnJvciwgZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25TZXJ2ZXIuaAppbmRleCA2NTFmODRhZGEzZTg4MjIyZTE3MWZkNzZiNmMyN2RkMzViN2VmYWY1
Li5kZmU0NTE4YWM0YTM4MDRmZDNjNTcwMTkzNThhYjYyMjcxZjk0NzcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKQEAgLTQzLDEw
ICs0Myw5IEBAIHN0cnVjdCBDbGllbnRPcmlnaW47CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25EZWNpc2lvbiA6IGJvb2w7CiAKIHVzaW5nIFNwZWVjaFJlY29nbml0aW9uU2VydmVySWRlbnRp
ZmllciA9IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyOwotdXNpbmcgU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uQ2hlY2tlciA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25EZWNpc2lvbik+JiYpPjsKK3VzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbkNoZWNrZXIgPSBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29y
ZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4pPiYmKT47CiB1c2luZyBTcGVlY2hSZWNvZ25pdGlv
bkNoZWNrSWZNb2NrU3BlZWNoUmVjb2duaXRpb25FbmFibGVkID0gRnVuY3Rpb248Ym9vbCgpPjsK
IAogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHBy
aXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDIwMzg4NWE3ODIyNDU0YmFmN2M5M2YyNjczM2YxYWM5YTJmNGZjY2Eu
LmU3MTU4N2Y5Zjc2MDBkOTQ0Y2UwNjlkYzdiZmJkMGVjNTk1MmI5OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTAzMDIsNyArMTAzMDIsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hBY3Rpdml0eVN0YXRlVXBkYXRlRm9yVGVzdGluZygpCiAg
ICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uRGVjaXNpb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBsYW5n
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTcGVlY2hSZWNvZ25pdGlvbkVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXIpCiAgICAgICAgIG1fc3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlciA9IG1ha2VV
bmlxdWU8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcj4oKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhNDE2NTlkOWQzMzYzMDVhYTA2MWM5
Yzg3N2M2MzM2ZDE5MTQzMTc5Li5iNjFkODFlNDNmZWJjMmJlOTg2NWE3YTRmNzlhMmU1NmYyZGMx
ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjY0LDYgKzI2
NCw3IEBAIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogc3RydWN0
IFByZXdhcm1JbmZvcm1hdGlvbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3Qg
U2hhcmVEYXRhOworc3RydWN0IFNwZWVjaFJlY29nbml0aW9uRXJyb3I7CiBzdHJ1Y3QgVGV4dEFs
dGVybmF0aXZlV2l0aFJhbmdlOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBW
aWV3cG9ydEF0dHJpYnV0ZXM7CkBAIC0zNjcsNyArMzY4LDYgQEAgc3RydWN0IFVzZXJNZXNzYWdl
OwogZW51bSBjbGFzcyBDcmVhdGVOZXdHcm91cEZvckhpZ2hsaWdodCA6IGJvb2w7CiBlbnVtIGNs
YXNzIE5lZ290aWF0ZWRMZWdhY3lUTFMgOiBib29sOwogZW51bSBjbGFzcyBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50IDogYm9vbDsKLWVudW0gY2xhc3MgU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uRGVjaXNpb24gOiBib29sOwogZW51bSBjbGFzcyBVbmRvT3JSZWRvIDogYm9vbDsKIGVu
dW0gY2xhc3MgV2ViQ29udGVudE1vZGUgOiB1aW50OF90OwogCkBAIC0xODExLDcgKzE4MTEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheShTZWNvbmRz
IGNhcHR1cmVSZXBvcnRpbmdEZWxheSkgeyBtX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5ID0g
Y2FwdHVyZVJlcG9ydGluZ0RlbGF5OyB9CiAgICAgc2l6ZV90IHN1c3BlbmRNZWRpYVBsYXliYWNr
Q291bnRlcigpIHsgcmV0dXJuIG1fc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyOyB9CiAKLSAg
ICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBs
YW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJik7CisgICAgdm9pZCByZXF1
ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAg
dm9pZCBzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlZTE2M2M3MjM2NGE4NTkzNzM2YTgz
MTA1YmE2NmJlOTViNDU0MzUzLi45YWVlNWY3YzEzMDgwZTBiYzZhZTkzOGMzMDBhZDg0NThlZWNm
Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTE3MjQsNyArMTcyNCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVTcGVlY2hSZWNv
Z25pdGlvblNlcnZlcihTcGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50CiAgICAgYXV0byYgc3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXIgPSBtX3NwZWVjaFJlY29nbml0aW9uU2VydmVyTWFwLmFkZChp
ZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgYXV0byBwZXJtaXNzaW9u
Q2hlY2tlciA9IFt3ZWFrUGFnZSA9IG1ha2VXZWFrUHRyKHRhcmdldFBhZ2UpXShhdXRvJiBsYW5n
LCBhdXRvJiBvcmlnaW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghd2Vha1BhZ2UpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uOjpEZW55KTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBhZ2Ugbm8gbG9uZ2VyIGV4aXN0cyJfcyB9
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGI4NDAxNWFiZTMxNzY0ZmY0ZGExNjBl
MmRhZTA0MWEzMDE4NDFkNi4uZjU1ZmIyMTc5NjZhMjM3Yjg1ZWMzOTk5NWQ5MWFiYTJiNTNkMjRk
MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTAxLTA3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwZS5jb20+
CisKKyAgICAgICAgTWFrZSBTcGVlY2hSZWNvZ25pdGlvbiBwZXJtaXNzaW9uIGVycm9yIG1vcmUg
aW5mb3JtYXRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMDQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTAxLTA3ICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIW1f
bWVzc2FnZVJlY2VpdmVyTWFwQ291bnQgdW5kZXIgV2ViS2l0OjpTcGVlY2hSZWNvZ25pdGlvblNl
cnZlcjo6flNwZWVjaFJlY29nbml0aW9uU2VydmVyKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCmluZGV4
IDRhYmEwZWE2MGM5NDkzMjNmYzk1NTQxMmYyODg3ZTJkMGY0NDkzYjEuLmE1YTQ0MjdhMzBmNTU4
M2Q3MGRmZTdlZDU2NWUxMmE2MWQzZTFkYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQpAQCAtMTE5
LDcgKzExOSw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25Vc2VyUGVybWlzc2lv
blBlcnNpc3RlbmNlKQogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFt3
ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAic3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNz
aW9uLXBlcnNpc3RlbmNlIl07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwotICAgIEVYUEVDVF9XS19TVFJFUShAIkVycm9yOiBub3QtYWxsb3dl
ZCAtIFBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjogbm90LWFsbG93ZWQgLSBVc2VyIHBlcm1pc3Np
b24gY2hlY2sgaGFzIGZhaWxlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CiAgICAgRVhQ
RUNUX1RSVUUocGVybWlzc2lvblJlcXVlc3RlZCk7CiAKICAgICAvLyBQZXJtaXNzaW9uIHJlc3Vs
dCBpcyByZW1lbWJlcmVkLgpAQCAtMTI3LDcgKzEyNyw3IEBAIFRFU1QoV2ViS2l0MiwgU3BlZWNo
UmVjb2duaXRpb25Vc2VyUGVybWlzc2lvblBlcnNpc3RlbmNlKQogICAgIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJzdGFydCgpIl07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cmlwdE1lc3NhZ2UpOwotICAgIEVYUEVDVF9XS19TVFJFUShAIkVycm9yOiBub3QtYWxsb3dlZCAt
IFBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjogbm90LWFsbG93ZWQgLSBVc2VyIHBlcm1pc3Npb24g
Y2hlY2sgaGFzIGZhaWxlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CiAgICAgRVhQRUNU
X0ZBTFNFKHBlcm1pc3Npb25SZXF1ZXN0ZWQpOwogCiAgICAgLy8gUGVybWlzc2lvbiByZXN1bHQg
d2lsbCBiZSBjbGVhcmVkIGFmdGVyIGRvY3VtZW50IGNoYW5nZXMuCkBAIC0yMzEsNyArMjMxLDcg
QEAgVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblBhZ2VCZWNvbWVzSW52aXNpYmxlKQog
ICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAInN0YXJ0KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwotICAgIEVYUEVDVF9X
S19TVFJFUShAIkVycm9yOiBub3QtYWxsb3dlZCAtIFBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIiwg
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjog
bm90LWFsbG93ZWQgLSBQYWdlIGlzIG5vdCB2aXNpYmxlIHRvIHVzZXIiLCBbbGFzdFNjcmlwdE1l
c3NhZ2UgYm9keV0pOwogfQogCiBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uUGFnZUlz
RGVzdHJveWVkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGFjMDU1MTQxNDkxYzRmMDIwMDBjYjZjNjY1NjFmZGIzMzQwNzkz
NGYuLjI1OGMwYmNhMWM3YTQ4N2JlNmQyYTMwMzc4MjcxOTg1NWI3MDJhYzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0wMS0wNyAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgor
CisgICAgICAgIE1ha2UgU3BlZWNoUmVjb2duaXRpb24gcGVybWlzc2lvbiBlcnJvciBtb3JlIGlu
Zm9ybWF0aXZlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjA0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9yLmh0bWw6
CisKIDIwMjEtMDEtMDcgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjcwNDI1KSBbR1RLXSB3aGVlbCBzY3JvbGxpbmcgc3RvcHBlZCB3b3Jr
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25p
dGlvbi9wZXJtaXNzaW9uLWVycm9yLWV4cGVjdGVkLnR4dAppbmRleCBhNzk4YTk1MmUyNWFkMDM0
MjQzMmJhYjg1M2Y4MTIyMDRhODg4YzExLi4zYzgyMDIxNDg3OTRhZDgyZDY4OTlkNWRiZjNjN2Uz
ZTcyNjAwM2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9u
L3Blcm1pc3Npb24tZXJyb3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHJlY29nbml0aW9uID0gbmV3IHdlYmtp
dFNwZWVjaFJlY29nbml0aW9uKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIHJlY29n
bml0aW9uLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCiBQQVNTIGV2ZW50LmVycm9y
IGlzICJub3QtYWxsb3dlZCIKLVBBU1MgZXZlbnQubWVzc2FnZSBpcyAiUGVybWlzc2lvbiBjaGVj
ayBmYWlsZWQiCitQQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIlVzZXIgcGVybWlzc2lvbiBjaGVjayBo
YXMgZmFpbGVkIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1p
c3Npb24tZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVy
bWlzc2lvbi1lcnJvci5odG1sCmluZGV4IDJiZWFkMzViNzM2YTRmY2I4ZTI3YjNlMDRhNDM3MGIz
MDRhNmI3YjIuLjA3ZTBlMmMxNmJkYzQyNGM2OTY2NjdlNDc0Y2ZhMTg4Y2UxNDAxMGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJv
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lv
bi1lcnJvci5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIHNob3VsZE5vdFRocm93KCJyZWNvZ25pdGlv
biA9IG5ldyB3ZWJraXRTcGVlY2hSZWNvZ25pdGlvbigpIik7CiBzaG91bGROb3RUaHJvdygicmVj
b2duaXRpb24uc3RhcnQoKSIpOwogcmVjb2duaXRpb24ub25lcnJvciA9IChldmVudCkgPT4gewog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuZXJyb3IiLCAibm90LWFsbG93ZWQiKTsK
LSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3NhZ2UiLCAiUGVybWlzc2lvbiBj
aGVjayBmYWlsZWQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50Lm1lc3NhZ2Ui
LCAiVXNlciBwZXJtaXNzaW9uIGNoZWNrIGhhcyBmYWlsZWQiKTsKIAogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417409</attachid>
            <date>2021-01-11 13:52:47 -0800</date>
            <delta_ts>2021-01-11 14:29:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-220436-20210111135246.patch</filename>
            <type>text/plain</type>
            <size>24450</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3YWE3N2MyNjk5ZGQxM2Jl
ZTQzYTFiNzBkYmFkZTY0MGZhNjFjZGMuLjc0ZWExNzk1OTY1NTI2ZjVjYmJkZjE3NzNhMzA4MTMy
YmIxYmJkMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjEtMDEtMTEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBNYWtlIFNwZWVjaFJlY29nbml0aW9u
IHBlcm1pc3Npb24gZXJyb3IgbW9yZSBpbmZvcm1hdGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNDM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICBNYWtlIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
bk1hbmFnZXIgY29tcGxldGUgcmVxdWVzdHMgd2l0aCBhbiBvcHRpb25hbCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIGluc3RlYWQgb2YgYSAKKyAgICAgICAgYm9vbGVhbiB2YWx1ZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6flNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVxdWVz
dCk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6
OmNvbnRpbnVlUHJvY2Vzc2luZ1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdFNw
ZWVjaFJlY29nbml0aW9uU2VydmljZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RNaWNyb3Bob25lQWNjZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVz
dFVzZXJQZXJtaXNzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25SZXF1ZXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvblJlcXVlc3Q6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQ
ZXJtaXNzaW9uRm9yUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0
aW9uU2VydmVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OmNyZWF0ZVNwZWVjaFJlY29nbml0aW9uU2VydmVyKToKKwogMjAyMS0wMS0xMSAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEVuYWJs
ZSB0aGUgY2xpZW50IGRlY29kZXIgZW50aXRsZW1lbnQgZm9yIHRoZSBHUFUgUHJvY2VzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25NYW5hZ2VyLmNwcAppbmRleCA0OGY3MDBiY2IxZTU5NzZiMmQ2YjU5MTNmNTI2
ZTNmZWY4NzdhNTBjLi5hN2RmM2MxZDQ5MDVjMzNjZGUwNjVmNTkyNDE2Yzg1NjdjYWIwNTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLmNwcApAQCAtNzIsMTAgKzcyLDEwIEBAIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1h
bmFnZXIoV2ViUGFnZVByCiBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjp+U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcigpCiB7CiAgICAgZm9yIChhdXRvJiByZXF1
ZXN0IDogbV9yZXF1ZXN0cykKLSAgICAgICAgcmVxdWVzdC0+Y29tcGxldGUoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOworICAgICAgICByZXF1ZXN0LT5jb21wbGV0
ZShTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5v
dEFsbG93ZWQsICJQZXJtaXNzaW9uIG1hbmFnZXIgaGFzIGV4aXRlZCJfcyB9KTsKIH0KICAgICAK
LXZvaWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6cmVxdWVzdChjb25zdCBT
dHJpbmcmIGxhbmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKT4mJiBj
b21wbGV0aW9udEhhbmRsZXIpCit2b2lkIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFn
ZXI6OnJlcXVlc3QoY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTcGVlY2hSZWNvZ25p
dGlvbkVycm9yPiYmKT4mJiBjb21wbGV0aW9udEhhbmRsZXIpCiB7CiAgICAgbV9yZXF1ZXN0cy5h
cHBlbmQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGxhbmcsIG9y
aWdpbiwgV1RGTW92ZShjb21wbGV0aW9udEhhbmRsZXIpKSk7CiAgICAgaWYgKG1fcmVxdWVzdHMu
c2l6ZSgpID09IDEpCkBAIC05NCwzNCArOTQsMzUgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyOjpzdGFydFByb2Nlc3NpbmdSZXF1ZXN0KCkKIHsKICNpZiBQTEFURk9S
TShDT09DQSkKICAgICBpZiAoIWNoZWNrU2FuZGJveFJlcXVpcmVtZW50Rm9yVHlwZShNZWRpYVBl
cm1pc3Npb25UeXBlOjpBdWRpbykpIHsKLSAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7CisgICAgICAgIGNvbXBs
ZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpOb3RBbGxvd2VkLCAiU2FuZGJveCBjaGVjayBoYXMgZmFpbGVkIl9zIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKLSAgICAvLyBUQ0Mgc3RhdHVzIG1h
eSBoYXZlIGNoYW5nZWQgYmV0d2VlbiByZXF1ZXN0cy4KLSAgICBtX21pY3JvcGhvbmVDaGVjayA9
IGNvbXB1dGVNaWNyb3Bob25lQWNjZXNzKCk7Ci0gICAgbV9zcGVlY2hSZWNvZ25pdGlvblNlcnZp
Y2VDaGVjayA9IGNvbXB1dGVTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBY2Nlc3MoKTsKLQogICAg
IG1fcGFnZS5zeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCk7Ci0gICAgYm9vbCBtb2Nr
Q2FwdHVyZURldmljZXNFbmFibGVkID0gbV9wYWdlLnByZWZlcmVuY2VzKCkubW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZCgpOwotICAgIGlmIChtb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKSB7Cisg
ICAgaWYgKG1fcGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKSkg
ewogICAgICAgICBtX21pY3JvcGhvbmVDaGVjayA9IENoZWNrUmVzdWx0OjpHcmFudGVkOwogICAg
ICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmljZUNoZWNrID0gQ2hlY2tSZXN1bHQ6OkdyYW50
ZWQ7Ci0gICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRDQyBzdGF0dXMgbWF5IGhhdmUg
Y2hhbmdlZCBiZXR3ZWVuIHJlcXVlc3RzLgorICAgICAgICBtX21pY3JvcGhvbmVDaGVjayA9IGNv
bXB1dGVNaWNyb3Bob25lQWNjZXNzKCk7CisgICAgICAgIGlmIChtX21pY3JvcGhvbmVDaGVjayA9
PSBDaGVja1Jlc3VsdDo6RGVuaWVkKSB7CisgICAgICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1
ZXN0KFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
Tm90QWxsb3dlZCwgIk1pY3JvcGhvbmUgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIl9zIH0p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZpY2VDaGVjayA9IGNvbXB1dGVTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBY2Nl
c3MoKTsKKyAgICAgICAgaWYgKG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgPT0gQ2hl
Y2tSZXN1bHQ6OkRlbmllZCkgeworICAgICAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNlcnZp
Y2VOb3RBbGxvd2VkLCAiU3BlZWNoIHJlY29nbml0aW9uIHNlcnZpY2UgcGVybWlzc2lvbiBjaGVj
ayBoYXMgZmFpbGVkIl9zIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICNp
ZiBIQVZFKFNQRUVDSFJFQ09HTklaRVIpCi0gICAgaWYgKCFtb2NrQ2FwdHVyZURldmljZXNFbmFi
bGVkICYmIG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgIT0gQ2hlY2tSZXN1bHQ6OkRl
bmllZCkgewotICAgICAgICAvLyBTcGVlY2ggcmVjb2duaXRpb24gc2VydmljZSBjYW4gYmUgdW5h
dmFpbGFibGUgd2hlbiB1c2VyIGRvZXMgbm90IGVuYWJsZSBkaWN0YXRpb24gaW4gc3lzdGVtIHNl
dHRpbmdzLgotICAgICAgICAvLyBMZXQncyBhdm9pZCBwcm9tcHRpbmcgdXNlciBpbiB0aGF0IGNh
c2UuCi0gICAgICAgIGlmICghY2hlY2tTcGVlY2hSZWNvZ25pdGlvblNlcnZpY2VBdmFpbGFiaWxp
dHkobV9yZXF1ZXN0cy5maXJzdCgpLT5sYW5nKCkpKQotICAgICAgICAgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblNlcnZpY2VDaGVjayA9IENoZWNrUmVzdWx0OjpEZW5pZWQ7Ci0gICAgfQorICAgICAg
ICBpZiAoIWNoZWNrU3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQXZhaWxhYmlsaXR5KG1fcmVxdWVz
dHMuZmlyc3QoKS0+bGFuZygpKSkgeworICAgICAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVz
dChTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OlNl
cnZpY2VOb3RBbGxvd2VkLCAiU3BlZWNoIHJlY29nbml0aW9uIHNlcnZpY2UgaXMgbm90IGF2YWls
YWJsZSJfcyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogI2VuZGlmCi0KLSAg
ICBpZiAobV9taWNyb3Bob25lQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6OkRlbmllZCB8fCBtX3NwZWVj
aFJlY29nbml0aW9uU2VydmljZUNoZWNrID09IENoZWNrUmVzdWx0OjpEZW5pZWQpIHsKLSAgICAg
ICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNp
c2lvbjo6RGVueSk7Ci0gICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBXZSBjdXJyZW50
bHkgZG9uJ3QgYWxsb3cgdGhpcmQtcGFydHkgYWNjZXNzLgpAQCAtMTM0LDcgKzEzNSw3IEBAIHZv
aWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcjo6c3RhcnRQcm9jZXNzaW5nUmVx
dWVzdCgpCiAgICAgfQogCiAgICAgaWYgKG1fdXNlclBlcm1pc3Npb25DaGVjayA9PSBDaGVja1Jl
c3VsdDo6RGVuaWVkKSB7Ci0gICAgICAgIGNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOworICAgICAgICBjb21wbGV0ZUN1cnJl
bnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6Tm90QWxsb3dlZCwgIlVzZXIgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIl9zIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNjIsMTggKzE2MywxOCBAQCB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ1JlcXVl
c3QoKQogICAgIEFTU0VSVChtX3VzZXJQZXJtaXNzaW9uQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6Okdy
YW50ZWQpOwogCiAgICAgaWYgKCFtX3BhZ2UuaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgIGNv
bXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb246
OkRlbnkpOworICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9u
RXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dlZCwgIlBhZ2UgaXMg
bm90IHZpc2libGUgdG8gdXNlciIgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBj
b21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9u
OjpHcmFudCk7CisgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdCgpOwogfQogCi12b2lkIFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pCit2b2lkIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OmNvbXBsZXRlQ3VycmVudFJlcXVlc3QoT3B0aW9u
YWw8U3BlZWNoUmVjb2duaXRpb25FcnJvcj4mJiBlcnJvcikKIHsKICAgICBBU1NFUlQoIW1fcmVx
dWVzdHMuaXNFbXB0eSgpKTsKICAgICBhdXRvIGN1cnJlbnRSZXF1ZXN0ID0gbV9yZXF1ZXN0cy50
YWtlRmlyc3QoKTsKLSAgICBjdXJyZW50UmVxdWVzdC0+Y29tcGxldGUoZGVjaXNpb24pOworICAg
IGN1cnJlbnRSZXF1ZXN0LT5jb21wbGV0ZShXVEZNb3ZlKGVycm9yKSk7CiAKICAgICBzdGFydE5l
eHRSZXF1ZXN0KCk7CiB9CkBAIC0xODksNyArMTkwLDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQWNjZXNz
KCkKIAogICAgICAgICBtX3NwZWVjaFJlY29nbml0aW9uU2VydmljZUNoZWNrID0gYXV0aG9yaXpl
ZCA/IENoZWNrUmVzdWx0OjpHcmFudGVkIDogQ2hlY2tSZXN1bHQ6OkRlbmllZDsKICAgICAgICAg
aWYgKG1fc3BlZWNoUmVjb2duaXRpb25TZXJ2aWNlQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6OkRlbmll
ZCkgewotICAgICAgICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25EZWNpc2lvbjo6RGVueSk7CisgICAgICAgICAgICBjb21wbGV0ZUN1cnJlbnRS
ZXF1ZXN0KFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6U2VydmljZU5vdEFsbG93ZWQsICJTcGVlY2ggcmVjb2duaXRpb24gc2VydmljZSBwZXJtaXNz
aW9uIGNoZWNrIGhhcyBmYWlsZWQiX3MgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIApAQCAtMjA5LDcgKzIxMCw3IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
TWFuYWdlcjo6cmVxdWVzdE1pY3JvcGhvbmVBY2Nlc3MoKQogCiAgICAgICAgIG1fbWljcm9waG9u
ZUNoZWNrID0gYXV0aG9yaXplZCA/IENoZWNrUmVzdWx0OjpHcmFudGVkIDogQ2hlY2tSZXN1bHQ6
OkRlbmllZDsKICAgICAgICAgaWYgKG1fbWljcm9waG9uZUNoZWNrID09IENoZWNrUmVzdWx0OjpE
ZW5pZWQpIHsKLSAgICAgICAgICAgIGNvbXBsZXRlQ3VycmVudFJlcXVlc3QoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb246OkRlbnkpOworICAgICAgICAgICAgY29tcGxldGVDdXJy
ZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6Ok5vdEFsbG93ZWQsICJNaWNyb3Bob25lIHBlcm1pc3Npb24gY2hlY2sgaGFzIGZhaWxl
ZCJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0yMzEsNyArMjMy
LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpyZXF1ZXN0VXNl
clBlcm1pc3Npb24oKQogCiAgICAgICAgIG1fdXNlclBlcm1pc3Npb25DaGVjayA9IGdyYW50ZWQg
PyBDaGVja1Jlc3VsdDo6R3JhbnRlZCA6IENoZWNrUmVzdWx0OjpEZW5pZWQ7CiAgICAgICAgIGlm
IChtX3VzZXJQZXJtaXNzaW9uQ2hlY2sgPT0gQ2hlY2tSZXN1bHQ6OkRlbmllZCkgewotICAgICAg
ICAgICAgY29tcGxldGVDdXJyZW50UmVxdWVzdChTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25E
ZWNpc2lvbjo6RGVueSk7CisgICAgICAgICAgICBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0KFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6Tm90QWxsb3dl
ZCwgIlVzZXIgcGVybWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIl9zIH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTI0MCw4ICsyNDEsNiBAQCB2b2lkIFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXI6OnJlcXVlc3RVc2VyUGVybWlzc2lvbigpCiAgICAgbV9w
YWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdChtX3BhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BPcmlnaW4uZ2V0
KCkpLmdldCgpLCBXVEZNb3ZlKGRlY2lzaW9uSGFuZGxlcikpOwogfQogCi0KLQogdm9pZCBTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyOjpkZWNpZGVCeURlZmF1bHRBY3Rpb24oY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbk1hbmFnZXIuaAppbmRleCAwYzRjYTZmNWI4M2I0OWRhZGM3NGY3ZjdmMTAwYzg2
ODZiZjE4MjdmLi4yNDI1NzU5NWEyOWY5YzcwOTAwY2RlNTY5MTg5NGI5NmI3NTMzM2M4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uTWFuYWdlci5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICBlbnVt
IGNsYXNzIENoZWNrUmVzdWx0IHsgRGVuaWVkLCBHcmFudGVkLCBVbmtub3duIH07CiAgICAgZXhw
bGljaXQgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcihXZWJQYWdlUHJveHkmKTsK
ICAgICB+U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcigpOwotICAgIHZvaWQgcmVx
dWVzdChjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24p
PiYmKTsKKyAgICB2b2lkIHJlcXVlc3QoY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+JiYpPiYmKTsKIAogICAgIHZvaWQgZGVjaWRlQnlEZWZh
dWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gbV9w
YWdlOyB9CkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydE5leHRSZXF1
ZXN0KCk7CiAgICAgdm9pZCBzdGFydFByb2Nlc3NpbmdSZXF1ZXN0KCk7CiAgICAgdm9pZCBjb250
aW51ZVByb2Nlc3NpbmdSZXF1ZXN0KCk7Ci0gICAgdm9pZCBjb21wbGV0ZUN1cnJlbnRSZXF1ZXN0
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uKTsKKyAgICB2b2lkIGNvbXBsZXRl
Q3VycmVudFJlcXVlc3QoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4m
JiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCByZXF1ZXN0TWljcm9waG9uZUFjY2VzcygpOwog
ICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uU2VydmljZUFjY2VzcygpOwogICAgIHZv
aWQgcmVxdWVzdFVzZXJQZXJtaXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgKaW5kZXgg
ZTdjY2M0OGQxN2MwMTA2YjUwZTlkZWQzYjlmNGE1NzJiNzRiYzg3Ny4uNjU2YjU3NTdhZDI1YjI0
OTM5ZTM1NjNjYWQzM2M2MmNkNzNjZDY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QuaApAQCAt
MjcsMzAgKzI3LDI5IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0NsaWVudE9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlZWNoUmVjb2duaXRpb25F
cnJvci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lv
biA6IGJvb2wgeyBEZW55LCBHcmFudCB9OwotCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHN0
YXRpYyBSZWY8U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KGxhbmcsIG9yaWdpbiwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKICAgICB9CiAKLSAgICB2b2lkIGNvbXBsZXRl
KFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKQorICAgIHZvaWQg
Y29tcGxldGUoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4mJiBlcnJv
cikKICAgICB7CiAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdl
KG1fY29tcGxldGlvbkhhbmRsZXIsIHsgfSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGRl
Y2lzaW9uKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlcnJvcikpOwogICAg
IH0KIAogICAgIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcmlnaW47IH0KICAgICBjb25zdCBTdHJpbmcmIGxhbmcoKSBjb25zdCB7IHJldHVy
biBtX2xhbmc7IH0KIAogcHJpdmF0ZToKLSAgICBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25S
ZXF1ZXN0KGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBv
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
RGVjaXNpb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAg
OiBtX2xhbmcobGFuZykKICAgICAgICAgLCBtX29yaWdpbihvcmlnaW4pCiAgICAgICAgICwgbV9j
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKQEAgLTU4LDcgKzU3
LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX2xhbmc7CiAgICAgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luIG1fb3JpZ2luOwotICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJv
cj4mJik+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9OwogCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DYWxsYmFjayA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6
OlR5cGU6OlNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblNlcnZlci5jcHAKaW5kZXgg
ZWM5YjhiMTg4N2Y5NTg0MGFlYTNjM2ZkYTEwZGQxNjI1YmFkODE1Zi4uOTVmNGRmMjBkZGIxZTI3
OTZiNGI5NmFjYWJhYTc2NGZjOGRmODYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpzdGFydChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb25DbGllbnRJZAogCiB2b2lkIFNwZWVjaFJlY29nbml0aW9uU2VydmVyOjpyZXF1
ZXN0UGVybWlzc2lvbkZvclJlcXVlc3QoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25SZXF1ZXN0
JiByZXF1ZXN0KQogewotICAgIG1fcGVybWlzc2lvbkNoZWNrZXIocmVxdWVzdC5sYW5nKCksIHJl
cXVlc3QuY2xpZW50T3JpZ2luKCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCB3ZWFrUmVxdWVzdCA9IG1ha2VXZWFrUHRyKHJlcXVlc3QpXShhdXRvIGRlY2lzaW9uKSBtdXRh
YmxlIHsKKyAgICBtX3Blcm1pc3Npb25DaGVja2VyKHJlcXVlc3QubGFuZygpLCByZXF1ZXN0LmNs
aWVudE9yaWdpbigpLCBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgd2Vha1Jl
cXVlc3QgPSBtYWtlV2Vha1B0cihyZXF1ZXN0KV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTcyLDEwICs3Miw5
IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI6OnJlcXVlc3RQZXJtaXNzaW9uRm9yUmVx
dWVzdChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgYXV0byBpZGVudGlmaWVyID0gd2Vha1JlcXVlc3QtPmNsaWVudElkZW50aWZpZXIoKTsKLSAg
ICAgICAgaWYgKGRlY2lzaW9uID09IFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkRlY2lzaW9u
OjpEZW55KSB7CisgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgbV9yZXF1ZXN0cy5y
ZW1vdmUoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICBhdXRvIGVycm9yID0gV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpOb3RBbGxvd2VkLCAiUGVybWlzc2lvbiBjaGVjayBmYWlsZWQiX3MgfTsKLSAgICAgICAgICAg
IHNlbmRVcGRhdGUoaWRlbnRpZmllciwgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGVU
eXBlOjpFcnJvciwgZXJyb3IpOworICAgICAgICAgICAgc2VuZFVwZGF0ZShpZGVudGlmaWVyLCBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZVR5cGU6OkVycm9yLCBXVEZNb3ZlKGVycm9y
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uU2VydmVyLmgKaW5kZXggNjUxZjg0YWRhM2U4
ODIyMmUxNzFmZDc2YjZjMjdkZDM1YjdlZmFmNS4uYzM3Zjg5MmY1NzRhZTRmZGRkOGU2NDY0ZGUy
ZDI4ZGE5ZDdkM2U2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNo
UmVjb2duaXRpb25TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblNlcnZlci5oCkBAIC00MywxMCArNDMsOSBAQCBzdHJ1Y3QgQ2xpZW50T3JpZ2lu
OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKLWVudW0gY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24gOiBib29sOwogCiB1c2luZyBT
cGVlY2hSZWNvZ25pdGlvblNlcnZlcklkZW50aWZpZXIgPSBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cjsKLXVzaW5nIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrZXIgPSBGdW5jdGlvbjx2
b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmKT47
Cit1c2luZyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVja2VyID0gRnVuY3Rpb248dm9p
ZChjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+JiYp
PiYmKT47CiB1c2luZyBTcGVlY2hSZWNvZ25pdGlvbkNoZWNrSWZNb2NrU3BlZWNoUmVjb2duaXRp
b25FbmFibGVkID0gRnVuY3Rpb248Ym9vbCgpPjsKIAogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25T
ZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3BlZWNoUmVjb2duaXRpb25TZXJ2ZXI+LCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjZTNiNzJjMmFh
MTQ1MjdhZTI1YWJhMTFlNDIwMjZlMWI5OWM1MjQuLmNmMWNlMGMyMGM4ODZjNjIxODkyNzg1MTRk
M2IyYzc0MGFlZDNhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMTAzMDUsNyArMTAzMDUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hBY3Rp
dml0eVN0YXRlVXBkYXRlRm9yVGVzdGluZygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgbGFu
ZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRGVjaXNpb24pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1f
c3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlcikKICAgICAgICAgbV9zcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25NYW5hZ2VyID0gbWFrZVVuaXF1ZTxTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25NYW5hZ2VyPigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGE0MTY1OWQ5ZDMzNjMwNWFhMDYxYzljODc3YzYzMzZkMTkxNDMxNzkuLjgyZTA1
YTU1NzEwZjA4YTczYTk3NTY3N2MyOTA0OTQ1OGZkNDg5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNjQsNiArMjY0LDcgQEAgc3RydWN0IE1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uOwogc3Ry
dWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTaGFyZURhdGE7CitzdHJ1Y3QgU3BlZWNo
UmVjb2duaXRpb25FcnJvcjsKIHN0cnVjdCBUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U7CiBzdHJ1
Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKQEAgLTM2
Nyw3ICszNjgsNiBAQCBzdHJ1Y3QgVXNlck1lc3NhZ2U7CiBlbnVtIGNsYXNzIENyZWF0ZU5ld0dy
b3VwRm9ySGlnaGxpZ2h0IDogYm9vbDsKIGVudW0gY2xhc3MgTmVnb3RpYXRlZExlZ2FjeVRMUyA6
IGJvb2w7CiBlbnVtIGNsYXNzIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgOiBib29sOwot
ZW51bSBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25EZWNpc2lvbiA6IGJvb2w7CiBl
bnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29sOwogZW51bSBjbGFzcyBXZWJDb250ZW50TW9kZSA6
IHVpbnQ4X3Q7CiAKQEAgLTE4MTEsNyArMTgxMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1l
ZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5KFNlY29uZHMgY2FwdHVyZVJlcG9ydGluZ0RlbGF5KSB7
IG1fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXkgPSBjYXB0dXJlUmVwb3J0aW5nRGVsYXk7IH0K
ICAgICBzaXplX3Qgc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyKCkgeyByZXR1cm4gbV9zdXNw
ZW5kTWVkaWFQbGF5YmFja0NvdW50ZXI7IH0KIAotICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uRGVjaXNpb24pPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb24oY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
RXJyb3I+JiYpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIHZvaWQgc3luY0lmTW9ja0RldmljZXNF
bmFibGVkQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggZWUxNjNjNzIzNjRhODU5MzczNmE4MzEwNWJhNjZiZTk1YjQ1NDM1My4uOWFl
ZTVmN2MxMzA4MGUwYmM2YWU5MzhjMzAwYWQ4NDU4ZWVjZjM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNzI0LDcgKzE3MjQsNyBAQCB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIoU3BlZWNoUmVj
b2duaXRpb25TZXJ2ZXJJZGVudAogICAgIGF1dG8mIHNwZWVjaFJlY29nbml0aW9uU2VydmVyID0g
bV9zcGVlY2hSZWNvZ25pdGlvblNlcnZlck1hcC5hZGQoaWRlbnRpZmllciwgbnVsbHB0cikuaXRl
cmF0b3ItPnZhbHVlOwogICAgIGF1dG8gcGVybWlzc2lvbkNoZWNrZXIgPSBbd2Vha1BhZ2UgPSBt
YWtlV2Vha1B0cih0YXJnZXRQYWdlKV0oYXV0byYgbGFuZywgYXV0byYgb3JpZ2luLCBhdXRvJiYg
Y29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtQYWdlKSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25E
ZWNpc2lvbjo6RGVueSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6Ok5vdEFs
bG93ZWQsICJQYWdlIG5vIGxvbmdlciBleGlzdHMiX3MgfSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGMyYzUxNWM2MTExZmQwOTAzZDAxZjE4MDAwNWZiMDNiMjg3MTE4NjYuLmM3Zjg4
YjRlMDkyNjk2NzQ2MjE2MDJlNmY4YjQxYTU1M2U5YTQwZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMS0x
MSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGUuY29tPgorCisgICAgICAgIE1ha2UgU3BlZWNo
UmVjb2duaXRpb24gcGVybWlzc2lvbiBlcnJvciBtb3JlIGluZm9ybWF0aXZlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA0MzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIxLTAxLTExICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxl
LmNvbT4KIAogICAgICAgICBbYnVpbGQud2Via2l0Lm9yZ10gU3RvcCB1c2luZyBkZXByZWNhdGVk
IGFkZEZhY3RvcnlBcmd1bWVudHMgbWV0aG9kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBlMGI0
NjY4ZWEzM2M5NjE1YWRmZjVhNWI5ZmZiMzhlMjU2NDc1OTI0Li5jMzEyYTlmZjgxODg1ZTY5NTIw
NTRiNjZhNTI3MjJiOGM5MjZjMzQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTExOSw3ICsx
MTksNyBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29nbml0aW9uVXNlclBlcm1pc3Npb25QZXJz
aXN0ZW5jZSkKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBbd2ViVmll
dyBsb2FkVGVzdFBhZ2VOYW1lZDpAInNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1w
ZXJzaXN0ZW5jZSJdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjogbm90LWFsbG93ZWQgLSBQ
ZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisgICAg
RVhQRUNUX1dLX1NUUkVRKEAiRXJyb3I6IG5vdC1hbGxvd2VkIC0gVXNlciBwZXJtaXNzaW9uIGNo
ZWNrIGhhcyBmYWlsZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogICAgIEVYUEVDVF9U
UlVFKHBlcm1pc3Npb25SZXF1ZXN0ZWQpOwogCiAgICAgLy8gUGVybWlzc2lvbiByZXN1bHQgaXMg
cmVtZW1iZXJlZC4KQEAgLTEyNyw3ICsxMjcsNyBAQCBURVNUKFdlYktpdDIsIFNwZWVjaFJlY29n
bml0aW9uVXNlclBlcm1pc3Npb25QZXJzaXN0ZW5jZSkKICAgICByZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UgPSBmYWxzZTsKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
c3RhcnQoKSJdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRN
ZXNzYWdlKTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoQCJFcnJvcjogbm90LWFsbG93ZWQgLSBQZXJt
aXNzaW9uIGNoZWNrIGZhaWxlZCIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKEAiRXJyb3I6IG5vdC1hbGxvd2VkIC0gVXNlciBwZXJtaXNzaW9uIGNoZWNr
IGhhcyBmYWlsZWQiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogICAgIEVYUEVDVF9GQUxT
RShwZXJtaXNzaW9uUmVxdWVzdGVkKTsKIAogICAgIC8vIFBlcm1pc3Npb24gcmVzdWx0IHdpbGwg
YmUgY2xlYXJlZCBhZnRlciBkb2N1bWVudCBjaGFuZ2VzLgpAQCAtMjMxLDcgKzIzMSw3IEBAIFRF
U1QoV2ViS2l0MiwgU3BlZWNoUmVjb2duaXRpb25QYWdlQmVjb21lc0ludmlzaWJsZSkKICAgICBy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJzdGFydCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKLSAgICBFWFBFQ1RfV0tfU1RS
RVEoQCJFcnJvcjogbm90LWFsbG93ZWQgLSBQZXJtaXNzaW9uIGNoZWNrIGZhaWxlZCIsIFtsYXN0
U2NyaXB0TWVzc2FnZSBib2R5XSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiRXJyb3I6IG5vdC1h
bGxvd2VkIC0gUGFnZSBpcyBub3QgdmlzaWJsZSB0byB1c2VyIiwgW2xhc3RTY3JpcHRNZXNzYWdl
IGJvZHldKTsKIH0KIAogVEVTVChXZWJLaXQyLCBTcGVlY2hSZWNvZ25pdGlvblBhZ2VJc0Rlc3Ry
b3llZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAzYTcwMTAwMDA4MWFlNjMyYWYxZTA0MGMyYWIxNGI5NzI3NjliNGU4Li5m
ZTkzY2RlNGFlMGE3OGM2YzIzOTZjZjMzNDk5YTY2NjlhYWM2ZDgxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjEtMDEtMTEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAg
ICAgICBNYWtlIFNwZWVjaFJlY29nbml0aW9uIHBlcm1pc3Npb24gZXJyb3IgbW9yZSBpbmZvcm1h
dGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIw
NDM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIGZh
c3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlzc2lvbi1lcnJvci1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9yLmh0bWw6CisKIDIw
MjEtMDEtMTEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBv
cnQgbGFiKCksIGxjaCgpLCBncmF5KCkgYW5kIGNvbG9yKGxhYiAuLi4pIGNvbG9ycwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9y
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNocmVjb2duaXRpb24vcGVybWlz
c2lvbi1lcnJvci1leHBlY3RlZC50eHQKaW5kZXggYTc5OGE5NTJlMjVhZDAzNDI0MzJiYWI4NTNm
ODEyMjA0YTg4OGMxMS4uM2M4MjAyMTQ4Nzk0YWQ4MmQ2ODk5ZDVkYmYzYzdlM2U3MjYwMDNhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9u
LWVycm9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0
aW9uL3Blcm1pc3Npb24tZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogUEFTUyByZWNvZ25pdGlvbiA9IG5ldyB3ZWJraXRTcGVlY2hSZWNv
Z25pdGlvbigpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyByZWNvZ25pdGlvbi5zdGFy
dCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgogUEFTUyBldmVudC5lcnJvciBpcyAibm90LWFs
bG93ZWQiCi1QQVNTIGV2ZW50Lm1lc3NhZ2UgaXMgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVkIgor
UEFTUyBldmVudC5tZXNzYWdlIGlzICJVc2VyIHBlcm1pc3Npb24gY2hlY2sgaGFzIGZhaWxlZCIK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2hyZWNvZ25pdGlvbi9wZXJtaXNzaW9uLWVycm9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJy
b3IuaHRtbAppbmRleCAyYmVhZDM1YjczNmE0ZmNiOGUyN2IzZTA0YTQzNzBiMzA0YTZiN2IyLi4w
N2UwZTJjMTZiZGM0MjRjNjk2NjY3ZTQ3NGNmYTE4OGNlMTQwMTBlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaHJlY29nbml0aW9uL3Blcm1pc3Npb24tZXJyb3IuaHRt
bApAQCAtMTQsNyArMTQsNyBAQCBzaG91bGROb3RUaHJvdygicmVjb2duaXRpb24gPSBuZXcgd2Vi
a2l0U3BlZWNoUmVjb2duaXRpb24oKSIpOwogc2hvdWxkTm90VGhyb3coInJlY29nbml0aW9uLnN0
YXJ0KCkiKTsKIHJlY29nbml0aW9uLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImV2ZW50LmVycm9yIiwgIm5vdC1hbGxvd2VkIik7Ci0gICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJldmVudC5tZXNzYWdlIiwgIlBlcm1pc3Npb24gY2hlY2sgZmFpbGVk
Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5tZXNzYWdlIiwgIlVzZXIgcGVy
bWlzc2lvbiBjaGVjayBoYXMgZmFpbGVkIik7CiAKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>