<?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>189318</bug_id>
          
          <creation_ts>2018-09-05 14:58:51 -0700</creation_ts>
          <short_desc>[Curl] Respond with requested authentication scheme for authentication challenge.</short_desc>
          <delta_ts>2018-09-17 20:28:22 -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>Platform</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>
          <dependson>189601</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Basuke Suzuki">basuke</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>galpeter</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1456874</commentid>
    <comment_count>0</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-05 14:58:51 -0700</bug_when>
    <thetext>Curl port depends on libcurl&apos;s authentication handling by enabling CURLAUTH_ANY. With this mode, the round-trip communication between the client and the server is handled by libcurl internally. That&apos;s okay for many cases. But when initial request has a credentials (i.e. XMLHttpRequest), there&apos;s no valid chance to store credential to the storage because the returned response is not 401.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458770</commentid>
    <comment_count>1</comment_count>
      <attachid>349489</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-11 16:24:16 -0700</bug_when>
    <thetext>Created attachment 349489
PATCH</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458772</commentid>
    <comment_count>2</comment_count>
      <attachid>349489</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-11 16:26:56 -0700</bug_when>
    <thetext>Comment on attachment 349489
PATCH

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

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:335
&gt; +std::optional&lt;Credential&gt; ResourceHandle::getCredential(const ResourceRequest&amp; request, bool redirect)

These changes follow the Mac port implementation.

&gt; Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:403
&gt; +    }

To set the default authentication in the credential storage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1458825</commentid>
    <comment_count>3</comment_count>
      <attachid>349489</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-11 19:09:35 -0700</bug_when>
    <thetext>Comment on attachment 349489
PATCH

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

Do we need to do something similar for NetworkDataTask?

&gt; LayoutTests/ChangeLog:3
&gt; +        [Curl] Response with collect authentication scheme for authentication challenge.

This title doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459011</commentid>
    <comment_count>4</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-12 10:58:23 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 349489 [details]
&gt; PATCH
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349489&amp;action=review
&gt; 
&gt; Do we need to do something similar for NetworkDataTask?

Yes, but we don&apos;t get ready for WebKitTestRunner for WinCairo yet. I&apos;m not comfortable to fix the behavior without testing because these sequence is complicated. As my first comment mentioned, the behavior is almost okay without this fix. After our effort to the WebKitTestRunner finish, we will port this to NetworkDataTask. That&apos;s my idea.

&gt; &gt; LayoutTests/ChangeLog:3
&gt; &gt; +        [Curl] Response with collect authentication scheme for authentication challenge.
&gt; 
&gt; This title doesn&apos;t make sense.

How about new one?
&quot;Respond with requested authentication scheme for authentication challenge.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459063</commentid>
    <comment_count>5</comment_count>
      <attachid>349575</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-12 13:15:59 -0700</bug_when>
    <thetext>Created attachment 349575
FIX</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459086</commentid>
    <comment_count>6</comment_count>
      <attachid>349575</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-12 14:00:00 -0700</bug_when>
    <thetext>Comment on attachment 349575
FIX

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

I think it&apos;s a bad idea to change ResourceHandle but not NetworkDataTask.

&gt; Source/WebCore/ChangeLog:15
&gt; +        - http/tests/websocket/tests/hybi/httponly-cookie.pl [ Failure ]

No need for [ Failure ] here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459092</commentid>
    <comment_count>7</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-12 14:07:54 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Comment on attachment 349575 [details]
&gt; FIX
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=349575&amp;action=review
&gt; 
&gt; I think it&apos;s a bad idea to change ResourceHandle but not NetworkDataTask.

But fixing without testing is also bad. Okay, I do manual test using MiniBrowser for NDT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459947</commentid>
    <comment_count>8</comment_count>
      <attachid>349828</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-14 16:34:43 -0700</bug_when>
    <thetext>Created attachment 349828
PATCH

Add NetworkDataTask implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459974</commentid>
    <comment_count>9</comment_count>
      <attachid>349828</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 17:21:17 -0700</bug_when>
    <thetext>Comment on attachment 349828
PATCH

Rejecting attachment 349828 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 349828, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=349828&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=189318&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 349828 from bug 189318.
Fetching: https://bugs.webkit.org/attachment.cgi?id=349828
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 12 diffs from patch file(s).
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/platform/wincairo/TestExpectations
Hunk #1 FAILED at 915.
Hunk #2 FAILED at 935.
2 out of 2 hunks FAILED -- saving rejects to file LayoutTests/platform/wincairo/TestExpectations.rej
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/platform/network/ResourceHandle.h
patching file Source/WebCore/platform/network/curl/CurlContext.cpp
patching file Source/WebCore/platform/network/curl/CurlContext.h
patching file Source/WebCore/platform/network/curl/CurlRequest.cpp
patching file Source/WebCore/platform/network/curl/CurlRequest.h
patching file Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp
patching file Source/WebKit/ChangeLog
patching file Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
patching file Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/9222335</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460201</commentid>
    <comment_count>10</comment_count>
      <attachid>349828</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 10:15:45 -0700</bug_when>
    <thetext>Comment on attachment 349828
PATCH

Rejecting attachment 349828 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 349828, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=349828&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=189318&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Processing patch 349828 from bug 189318.
Fetching: https://bugs.webkit.org/attachment.cgi?id=349828
Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Parsed 12 diffs from patch file(s).
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/platform/wincairo/TestExpectations
Hunk #1 FAILED at 915.
Hunk #2 FAILED at 935.
2 out of 2 hunks FAILED -- saving rejects to file LayoutTests/platform/wincairo/TestExpectations.rej
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/platform/network/ResourceHandle.h
patching file Source/WebCore/platform/network/curl/CurlContext.cpp
patching file Source/WebCore/platform/network/curl/CurlContext.h
patching file Source/WebCore/platform/network/curl/CurlRequest.cpp
Hunk #2 succeeded at 211 (offset 3 lines).
patching file Source/WebCore/platform/network/curl/CurlRequest.h
Hunk #1 succeeded at 34 with fuzz 1.
Hunk #2 succeeded at 68 with fuzz 2 (offset 1 line).
Hunk #3 succeeded at 167 (offset 2 lines).
patching file Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp
Hunk #1 succeeded at 85 with fuzz 2 (offset 2 lines).
Hunk #2 succeeded at 233 (offset 3 lines).
Hunk #3 succeeded at 258 (offset 3 lines).
Hunk #4 succeeded at 293 (offset 3 lines).
Hunk #5 succeeded at 335 (offset 3 lines).
Hunk #6 succeeded at 352 (offset 3 lines).
Hunk #7 FAILED at 373.
Hunk #8 FAILED at 399.
Hunk #9 succeeded at 524 with fuzz 2 (offset 7 lines).
2 out of 9 hunks FAILED -- saving rejects to file Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp.rej
patching file Source/WebKit/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
Hunk #1 FAILED at 62.
Hunk #2 FAILED at 307.
Hunk #3 succeeded at 331 (offset 7 lines).
Hunk #4 succeeded at 353 (offset 7 lines).
Hunk #5 succeeded at 381 (offset 7 lines).
Hunk #6 succeeded at 409 (offset 7 lines).
Hunk #7 succeeded at 417 (offset 7 lines).
Hunk #8 succeeded at 425 with fuzz 2 (offset 7 lines).
2 out of 8 hunks FAILED -- saving rejects to file Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp.rej
patching file Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Alex Christensen&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: https://webkit-queues.webkit.org/results/9244213</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460215</commentid>
    <comment_count>11</comment_count>
      <attachid>349899</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2018-09-17 10:42:45 -0700</bug_when>
    <thetext>Created attachment 349899
PATCH

Thanks Alex for r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460237</commentid>
    <comment_count>12</comment_count>
      <attachid>349899</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 11:19:42 -0700</bug_when>
    <thetext>Comment on attachment 349899
PATCH

Clearing flags on attachment: 349899

Committed r236073: &lt;https://trac.webkit.org/changeset/236073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460238</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 11:19:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460239</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-17 11:20:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/44527129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460482</commentid>
    <comment_count>15</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-09-17 20:28:22 -0700</bug_when>
    <thetext>Following test cases are constantly failing since r236073.

http/tests/xmlhttprequest/basic-auth-default.html
http/tests/xmlhttprequest/cross-origin-authorization.html
http/tests/xmlhttprequest/logout.html
http/tests/xmlhttprequest/re-login-async.html
http/tests/xmlhttprequest/re-login.html
http/tests/xmlhttprequest/redirect-credentials-responseURL.html
http/tests/xmlhttprequest/remember-bad-password.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349489</attachid>
            <date>2018-09-11 16:24:16 -0700</date>
            <delta_ts>2018-09-12 13:15:59 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>189318.diff</filename>
            <type>text/plain</type>
            <size>17845</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDhjM2Q2NDViZi4uYmYyNjdlM2MxZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOS0xMSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAg
ICAgICAgW0N1cmxdIFJlc3BvbnNlIHdpdGggY29sbGVjdCBhdXRoZW50aWNhdGlvbiBzY2hlbWUg
Zm9yIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
czoKKwogMjAxOC0wOS0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dpbmRvd3NdIExheW91dCBUZXN0IHdlYmFuaW1hdGlvbnMvYWNjZWxlcmF0ZWQt
dHJhbnNpdGlvbi1pbnRlcnJ1cHRlZC1vbi1jb21wb3NpdGVkLWVsZW1lbnQuaHRtbCBpcyBmYWls
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA3NzUxNDlmYzkxMC4uZjczYzY0MGJlMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTE1LDEwICs5MTUsNyBAQCBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbnRlbnRleHRlbnNpb25zIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWNv
b2tpZXMucGhwIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvY29udGVudGV4dGVuc2lvbnMvYmxvY2stY29va2llcy13b3JrZXIucGhwIFsgUGFzcyBGYWls
dXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1wYXJh
bWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9o
dHRwb25seS1jb29raWUucGwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3NlY3VyZS1jb29raWUtaW5zZWN1cmUtY29ubmVjdGlvbi5wbCBbIEZhaWx1cmUgXQotaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZWN1cmUtY29va2llLXNlY3VyZS1jb25uZWN0aW9u
LnBsIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3VwZ3JhZGUt
c2ltcGxlLXdzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS93ZWJzb2NrZXQtYWxsb3dlZC1zZXR0aW5nLWNvb2tpZS1hcy10aGlyZC1wYXJ0eS5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd2Vi
c29ja2V0LWJsb2NrZWQtZnJvbS1zZXR0aW5nLWNvb2tpZS1hcy10aGlyZC1wYXJ0eS5odG1sIFsg
RmFpbHVyZSBdCkBAIC05MzgsMjMgKzkzNSwxNSBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1jcmVkZW50aWFsLWFzeW5jLmh0bWwgWyBGYWlsdQog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVu
dGlhbC1zeW5jLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNj
ZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LW5vdC1zdWNjZXNzZnVsLmh0bWwgWyBGYWlsdXJlIF0KIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYXV0aC1yZWplY3QtcHJvdGVjdGlvbi1zcGFjZS5odG1s
IFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgtZGVmYXVs
dC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgt
bm9wYXNzd29yZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jh
c2ljLWF1dGgtbm91c2VyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0aC1lbWJlZGRlci5odG1sIFsgRmFpbHVy
ZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9u
Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2lu
LWNvb2tpZS1zdG9yYWdlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvY3Jvc3Mtb3JpZ2luLW5vLWF1dGhvcml6YXRpb24uaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQuaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9udWxsLWF1dGgucGhwIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3JlLWxvZ2luLWFzeW5jLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmUtbG9naW4uaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZWRpcmVjdC1jcmVkZW50aWFscy1yZXNwb25zZVVSTC5odG1sIFsgRmFpbHVyZSBd
CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0LWNyb3NzLW9yaWdpbi1wb3N0LXN5
bmMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1j
cm9zcy1vcmlnaW4tc3luYy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3JlZGlyZWN0LWNyb3NzLW9yaWdpbi10cmlwbWluZS5odG1sIFsgRmFpbHVyZSBdCiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwg
WyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVtZW1iZXItYmFkLXBhc3N3
b3JkLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2Ut
YWNjZXNzLW9uLWVycm9yLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvdXBsb2FkLW9ubG9hZC1ldmVudC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItbG9hZC5odG1sIFsgRmFpbHVy
ZSBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggNTkzODA0YjZmZGEuLjZhYWE5Y2NjYjU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTgtMDktMTEgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtp
QHNvbnkuY29tPgorCisgICAgICAgIFtDdXJsXSBSZXNwb25zZSB3aXRoIGNvbGxlY3QgYXV0aGVu
dGljYXRpb24gc2NoZW1lIGZvciBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzMTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJsIHBvcnQgZGVwZW5kcyBv
biBsaWJjdXJsJ3MgYXV0aGVudGljYXRpb24gaGFuZGxpbmcgYnkgZW5hYmxpbmcgQ1VSTEFVVEhf
QU5ZLiBXaXRoIHRoaXMKKyAgICAgICAgbW9kZSwgdGhlIHJvdW5kLXRyaXAgY29tbXVuaWNhdGlv
biBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgaXMgaGFuZGxlZCBieSBsaWJjdXJs
CisgICAgICAgIGludGVybmFsbHkuIFRoYXQncyBva2F5IGZvciBtYW55IGNhc2VzLiBCdXQgd2hl
biBpbml0aWFsIHJlcXVlc3QgaGFzIGEgY3JlZGVudGlhbHMKKyAgICAgICAgKGkuZS4gWE1MSHR0
cFJlcXVlc3QpLCB0aGVyZSdzIG5vIHZhbGlkIGNoYW5jZSB0byBzdG9yZSBjcmVkZW50aWFsIHRv
IHRoZSBzdG9yYWdlIGJlY2F1c2UKKyAgICAgICAgdGhlIHJldHVybmVkIHJlc3BvbnNlIGlzIG5v
dCA0MDEuCisKKyAgICAgICAgUGFzc2VzIGZvbGxvd2luZyB0ZXN0czoKKyAgICAgICAgLSBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2h0dHBvbmx5LWNvb2tpZS5wbCBbIEZhaWx1cmUg
XQorICAgICAgICAtIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VjdXJlLWNvb2tp
ZS1pbnNlY3VyZS1jb25uZWN0aW9uLnBsIFsgRmFpbHVyZSBdCisgICAgICAgIC0gaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZWN1cmUtY29va2llLXNlY3VyZS1jb25uZWN0aW9uLnBs
IFsgRmFpbHVyZSBdCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1h
dXRoLWRlZmF1bHQuaHRtbCBbIEZhaWx1cmUgXQorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24uaHRtbCBbIEZhaWx1cmUgXQorICAg
ICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbG9nb3V0Lmh0bWwgWyBGYWlsdXJlIF0K
KyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L251bGwtYXV0aC5waHAgWyBGYWls
dXJlIF0KKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlLWxvZ2luLWFzeW5j
Lmh0bWwgWyBGYWlsdXJlIF0KKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
LWxvZ2luLmh0bWwgWyBGYWlsdXJlIF0KKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3JlZGlyZWN0LWNyZWRlbnRpYWxzLXJlc3BvbnNlVVJMLmh0bWwgWyBGYWlsdXJlIF0KKyAg
ICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlbWVtYmVyLWJhZC1wYXNzd29yZC5o
dG1sIFsgRmFpbHVyZSBdCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkN1cmxIYW5kbGU6OnNldEh0dHBBdXRoVXNlclBhc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6ZW5hYmxlSHR0cEF1dGhlbnRpY2F0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpzZXR1cFRyYW5zZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmdldENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGludWVBZnRlcldpbGxTZW5kUmVxdWVzdCk6CisK
IDIwMTgtMDktMTAgIFl1c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4K
IAogICAgICAgICBbV1RGXSBBZGQgTWFya2FibGU8VCwgVHJhaXRzPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4IDkwYjBmZGE1M2I1
Li4wMWE4NmUzNTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuaApAQCAtMjYzLDggKzI2Myw4IEBAIHByaXZhdGU6CiAKICAgICBib29s
IHNob3VsZFJlZGlyZWN0QXNHRVQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjcm9zc09y
aWdpbik7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGdl
dENyZWRlbnRpYWwoUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCk7Ci0gICAgdm9pZCByZXN0YXJ0UmVx
dWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNz
d29yZCk7CisgICAgc3RkOjpvcHRpb25hbDxDcmVkZW50aWFsPiBnZXRDcmVkZW50aWFsKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGJvb2wpOworICAgIHZvaWQgcmVzdGFydFJlcXVlc3RXaXRoQ3Jl
ZGVudGlhbChjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50aWFsJik7CiAKICAg
ICB2b2lkIGhhbmRsZURhdGFVUkwoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXggNjRiODM4YzlkNWQu
LjNkMzkzZTNlZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTUxNCwxNSArNTE0LDExIEBAIHZvaWQgQ3VybEhh
bmRsZTo6ZW5hYmxlQWxsb3dlZFByb3RvY29scygpCiAgICAgY3VybF9lYXN5X3NldG9wdChtX2hh
bmRsZSwgQ1VSTE9QVF9QUk9UT0NPTFMsIGFsbG93ZWRQcm90b2NvbHMpOwogfQogCi12b2lkIEN1
cmxIYW5kbGU6OmVuYWJsZUh0dHBBdXRoZW50aWNhdGlvbihsb25nIG9wdGlvbikKLXsKLSAgICBj
dXJsX2Vhc3lfc2V0b3B0KG1faGFuZGxlLCBDVVJMT1BUX0hUVFBBVVRILCBvcHRpb24pOwotfQot
Ci12b2lkIEN1cmxIYW5kbGU6OnNldEh0dHBBdXRoVXNlclBhc3MoY29uc3QgU3RyaW5nJiB1c2Vy
LCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQordm9pZCBDdXJsSGFuZGxlOjpzZXRIdHRwQXV0aFVz
ZXJQYXNzKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCwgbG9uZyBh
dXRoVHlwZSkKIHsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KG1faGFuZGxlLCBDVVJMT1BUX1VTRVJO
QU1FLCB1c2VyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGN1cmxfZWFzeV9zZXRvcHQobV9oYW5kbGUs
IENVUkxPUFRfUEFTU1dPUkQsIHBhc3N3b3JkLnV0ZjgoKS5kYXRhKCkpOworICAgIGN1cmxfZWFz
eV9zZXRvcHQobV9oYW5kbGUsIENVUkxPUFRfSFRUUEFVVEgsIGF1dGhUeXBlKTsKIH0KIAogdm9p
ZCBDdXJsSGFuZGxlOjpzZXRDQUNlcnRQYXRoKGNvbnN0IGNoYXIqIHBhdGgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCmluZGV4IDVj
MTI2YWYxMTAxLi5jMzE0ZTUyNzhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKQEAgLTI1MSw4ICsyNTEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbmFibGVBY2NlcHRFbmNvZGluZygpOwogICAgIHZvaWQgZW5hYmxlQWxsb3dl
ZFByb3RvY29scygpOwogCi0gICAgdm9pZCBlbmFibGVIdHRwQXV0aGVudGljYXRpb24obG9uZyk7
Ci0gICAgdm9pZCBzZXRIdHRwQXV0aFVzZXJQYXNzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0SHR0cEF1dGhVc2VyUGFzcyhjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBsb25nIGF1dGhUeXBlID0gQ1VSTEFVVEhfQU5ZKTsKIAogICAgIHZvaWQgc2V0Q0FD
ZXJ0UGF0aChjb25zdCBjaGFyKik7CiAgICAgdm9pZCBzZXRTc2xWZXJpZnlQZWVyKFZlcmlmeVBl
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
UmVxdWVzdC5jcHAKaW5kZXggNzI2OTkyYWEzZDIuLjM3ODRjNmY4ODhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKQEAg
LTU3LDYgKzU3LDMxIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVDbGllbnQoKQogICAg
IG1fbWVzc2FnZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAordm9pZCBDdXJsUmVxdWVzdDo6c2V0QXV0
aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2No
ZW1lKQoreworICAgIHN3aXRjaCAoc2NoZW1lKSB7CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICAgICAgbV9hdXRoVHlwZSA9IENVUkxB
VVRIX0JBU0lDOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFV
VEhfRElHRVNUOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfTlRM
TTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfTkVHT1RJ
QVRFOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIG1fYXV0aFR5cGUg
PSBDVVJMQVVUSF9BTlk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9pZCBDdXJsUmVx
dWVzdDo6c2V0VXNlclBhc3MoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3
b3JkKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xODMsOCArMjA4LDcgQEAg
Q1VSTCogQ3VybFJlcXVlc3Q6OnNldHVwVHJhbnNmZXIoKQogICAgIH0KIAogICAgIGlmICghbV91
c2VyLmlzRW1wdHkoKSB8fCAhbV9wYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9jdXJs
SGFuZGxlLT5lbmFibGVIdHRwQXV0aGVudGljYXRpb24oQ1VSTEFVVEhfQU5ZKTsKLSAgICAgICAg
bV9jdXJsSGFuZGxlLT5zZXRIdHRwQXV0aFVzZXJQYXNzKG1fdXNlciwgbV9wYXNzd29yZCk7Cisg
ICAgICAgIG1fY3VybEhhbmRsZS0+c2V0SHR0cEF1dGhVc2VyUGFzcyhtX3VzZXIsIG1fcGFzc3dv
cmQsIG1fYXV0aFR5cGUpOwogICAgIH0KIAogICAgIG1fY3VybEhhbmRsZS0+c2V0SGVhZGVyQ2Fs
bGJhY2tGdW5jdGlvbihkaWRSZWNlaXZlSGVhZGVyQ2FsbGJhY2ssIHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaAppbmRleCBl
NGNjNGEyMzRmZC4uMDlkYjk0NzUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiQ3VybFNTTFZlcmlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkTWV0cmljcy5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25TcGFjZS5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9NZXNzYWdlUXVldWUuaD4K
ICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTY2LDYgKzY3LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkN1cmxSZXF1ZXN0KCkgPSBkZWZhdWx0OwogCiAgICAgdm9pZCBpbnZhbGlk
YXRlQ2xpZW50KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRoZW50aWNhdGlvblNj
aGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRVc2VyUGFzcyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKTsKIAog
ICAgIHZvaWQgc3RhcnQoKTsKQEAgLTE2MSw2ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlc291
cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgU3RyaW5nIG1fdXNlcjsKICAgICBTdHJpbmcgbV9w
YXNzd29yZDsKKyAgICB1bnNpZ25lZCBsb25nIG1fYXV0aFR5cGUgeyBDVVJMQVVUSF9BTlkgfTsK
ICAgICBib29sIG1fc2hvdWxkU3VzcGVuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZU11
bHRpcGFydCB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggYzQyYWRjMzc4
YTYuLmVjM2U1NmFjMzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtODMsOCArODMsMTAg
QEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogCiAgICAgZC0+bV9jdXJsUmVxdWVzdCA9
IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwogCi0gICAgaWYgKGF1dG8gY3Jl
ZGVudGlhbCA9IGdldENyZWRlbnRpYWwoZC0+bV9maXJzdFJlcXVlc3QsIGZhbHNlKSkKLSAgICAg
ICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+Zmlyc3QsIGNyZWRl
bnRpYWwtPnNlY29uZCk7CisgICAgaWYgKGF1dG8gY3JlZGVudGlhbCA9IGdldENyZWRlbnRpYWwo
ZC0+bV9maXJzdFJlcXVlc3QsIGZhbHNlKSkgeworICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5z
ZXRVc2VyUGFzcyhjcmVkZW50aWFsLT51c2VyKCksIGNyZWRlbnRpYWwtPnBhc3N3b3JkKCkpOwor
ICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7CisgICAgfQogCiAgICAgZC0+
bV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKIApAQCAtMjI4LDcgKzIzMCw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsCiAgICAgICAgICAgICB1cmxUb1N0b3JlID0gY2hhbGxlbmdlLmZhaWx1cmVS
ZXNwb25zZSgpLnVybCgpOwogICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6ZGVmYXVsdENyZWRl
bnRpYWxTdG9yYWdlKCkuc2V0KHBhcnRpdGlvbiwgY3JlZGVudGlhbCwgY2hhbGxlbmdlLnByb3Rl
Y3Rpb25TcGFjZSgpLCB1cmxUb1N0b3JlKTsKIAotICAgICAgICByZXN0YXJ0UmVxdWVzdFdpdGhD
cmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkpOworICAg
ICAgICByZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3Bh
Y2UoKSwgY3JlZGVudGlhbCk7CiAKICAgICAgICAgZC0+bV91c2VyID0gU3RyaW5nKCk7CiAgICAg
ICAgIGQtPm1fcGFzcyA9IFN0cmluZygpOwpAQCAtMjUzLDcgKzI1NSw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsCiAgICAgICAgICAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpkZWZh
dWx0Q3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQocGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7
CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgcmVzdGFydFJlcXVlc3RXaXRo
Q3JlZGVudGlhbChjcmVkZW50aWFsLnVzZXIoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpKTsKKyAg
ICAgICAgICAgICAgICByZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNoYWxsZW5nZS5wcm90
ZWN0aW9uU3BhY2UoKSwgY3JlZGVudGlhbCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC0yODgsNyArMjkwLDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UKICAgICAgICAgfQogICAgIH0KIAotICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRl
bnRpYWwoY3JlZGVudGlhbC51c2VyKCksIGNyZWRlbnRpYWwucGFzc3dvcmQoKSk7CisgICAgcmVz
dGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNy
ZWRlbnRpYWwpOwogCiAgICAgY2xlYXJBdXRoZW50aWNhdGlvbigpOwogfQpAQCAtMzMwLDEzICsz
MzIsMTUgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24o
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi1zdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IFJlc291cmNl
SGFuZGxlOjpnZXRDcmVkZW50aWFsKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCByZWRp
cmVjdCkKK3N0ZDo6b3B0aW9uYWw8Q3JlZGVudGlhbD4gUmVzb3VyY2VIYW5kbGU6OmdldENyZWRl
bnRpYWwoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHJlZGlyZWN0KQogewog
ICAgIC8vIG1fdXNlci9tX3Bhc3MgYXJlIGNyZWRlbnRpYWxzIGdpdmVuIG1hbnVhbGx5LCBmb3Ig
aW5zdGFuY2UsIGJ5IHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIFhNTEh0dHBSZXF1ZXN0Lm9wZW4o
KS4KLSAgICBTdHJpbmcgcGFydGl0aW9uID0gcmVxdWVzdC5jYWNoZVBhcnRpdGlvbigpOworICAg
IENyZWRlbnRpYWwgY3JlZGVudGlhbCB7IGQtPm1fdXNlciwgZC0+bV9wYXNzLCBDcmVkZW50aWFs
UGVyc2lzdGVuY2VOb25lIH07CiAKICAgICBpZiAoc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
KSkgewotICAgICAgICBpZiAoZC0+bV91c2VyLmlzRW1wdHkoKSAmJiBkLT5tX3Bhc3MuaXNFbXB0
eSgpKSB7CisgICAgICAgIFN0cmluZyBwYXJ0aXRpb24gPSByZXF1ZXN0LmNhY2hlUGFydGl0aW9u
KCk7CisKKyAgICAgICAgaWYgKGNyZWRlbnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAv
LyA8cmRhcjovL3Byb2JsZW0vNzE3NDA1MD4gLSBGb3IgVVJMcyB0aGF0IG1hdGNoIHRoZSBwYXRo
cyBvZiB0aG9zZSBwcmV2aW91c2x5IGNoYWxsZW5nZWQgZm9yIEhUVFAgQmFzaWMgYXV0aGVudGlj
YXRpb24sIAogICAgICAgICAgICAgLy8gdHJ5IGFuZCByZXVzZSB0aGUgY3JlZGVudGlhbCBwcmVl
bXB0aXZlbHksIGFzIGFsbG93ZWQgYnkgUkZDIDI2MTcuCiAgICAgICAgICAgICBkLT5tX2luaXRp
YWxDcmVkZW50aWFsID0gQ3JlZGVudGlhbFN0b3JhZ2U6OmRlZmF1bHRDcmVkZW50aWFsU3RvcmFn
ZSgpLmdldChwYXJ0aXRpb24sIHJlcXVlc3QudXJsKCkpOwpAQCAtMzQ1LDI1ICszNDksMTcgQEAg
c3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBSZXNvdXJjZUhhbmRsZTo6
Z2V0Q3JlZGVudGlhbChSZXNvdXJjZVIKICAgICAgICAgICAgIC8vIGJlZm9yZSBzZW5kaW5nIGEg
cmVxdWVzdC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBpbXBsZW1lbnQgbG9nb3V0IGJ5IHNl
bmRpbmcgYW4KICAgICAgICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IHdpdGgga25vd24gaW5jb3Jy
ZWN0IGNyZWRlbnRpYWxzLCBhbmQgYWJvcnRpbmcgaXQgaW1tZWRpYXRlbHkgKHNvIHRoYXQKICAg
ICAgICAgICAgIC8vIGFuIGF1dGhlbnRpY2F0aW9uIGRpYWxvZyBkb2Vzbid0IHBvcCB1cCkuCi0g
ICAgICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6ZGVmYXVsdENyZWRlbnRpYWxTdG9yYWdlKCku
c2V0KHBhcnRpdGlvbiwgQ3JlZGVudGlhbChkLT5tX3VzZXIsIGQtPm1fcGFzcywgQ3JlZGVudGlh
bFBlcnNpc3RlbmNlTm9uZSksIHJlcXVlc3QudXJsKCkpOworICAgICAgICAgICAgQ3JlZGVudGlh
bFN0b3JhZ2U6OmRlZmF1bHRDcmVkZW50aWFsU3RvcmFnZSgpLnNldChwYXJ0aXRpb24sIGNyZWRl
bnRpYWwsIHJlcXVlc3QudXJsKCkpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgU3RyaW5nIHVz
ZXIgPSBkLT5tX3VzZXI7Ci0gICAgU3RyaW5nIHBhc3N3b3JkID0gZC0+bV9wYXNzOwotCi0gICAg
aWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkgewotICAgICAgICB1c2VyID0g
ZC0+bV9pbml0aWFsQ3JlZGVudGlhbC51c2VyKCk7Ci0gICAgICAgIHBhc3N3b3JkID0gZC0+bV9p
bml0aWFsQ3JlZGVudGlhbC5wYXNzd29yZCgpOwotICAgIH0KLQotICAgIGlmICh1c2VyLmlzRW1w
dHkoKSAmJiBwYXNzd29yZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgaWYgKCFkLT5tX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIGQtPm1faW5pdGlhbENyZWRlbnRpYWw7CiAKLSAgICByZXR1cm4gc3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPih1c2VyLCBwYXNzd29yZCk7CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IAotdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjb25z
dCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCit2b2lkIFJlc291cmNlSGFu
ZGxlOjpyZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYg
cHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTM3NCwxNSArMzcwLDE5IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiB1c2Vy
LCBjb25zdCBTdHJpCiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+Y2FuY2VsKCk7CiAKICAgICBkLT5t
X2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShwcmV2aW91c1JlcXVlc3Qp
LCBSZXF1ZXN0U3RhdHVzOjpSZXVzZWRSZXF1ZXN0KTsKLSAgICBkLT5tX2N1cmxSZXF1ZXN0LT5z
ZXRVc2VyUGFzcyh1c2VyLCBwYXNzd29yZCk7CisgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0
aGVudGljYXRpb25TY2hlbWUocHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkp
OworICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwudXNlcigpLCBj
cmVkZW50aWFsLnBhc3N3b3JkKCkpOwogICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIXJl
cXVlc3QuaXNFbXB0eSgpKTsKIAogICAgIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50IGNsaWVudDsK
KyAgICBjbGllbnQuc2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKKwogICAgIGJvb2wgZGVmZXJz
TG9hZGluZyA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gdHJ1ZTsKICAg
ICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKQEAgLTM5Niw2ICszOTYs
MTIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKIAogICAgIGF1dG8gcmVxdWVzdENvcHkgPSBo
YW5kbGUtPmZpcnN0UmVxdWVzdCgpOwogICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdCA9IGhh
bmRsZS0+Y3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0Q29weSkpOworCisgICAgaWYg
KGF1dG8gY3JlZGVudGlhbCA9IGhhbmRsZS0+Z2V0Q3JlZGVudGlhbChoYW5kbGUtPmQtPm1fZmly
c3RSZXF1ZXN0LCBmYWxzZSkpIHsKKyAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5z
ZXRVc2VyUGFzcyhjcmVkZW50aWFsLT51c2VyKCksIGNyZWRlbnRpYWwtPnBhc3N3b3JkKCkpOwor
ICAgICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1l
KFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKKyAgICB9CisK
ICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CiAKICAgICBkbyB7CkBAIC01
MTEsNyArNTE3LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y29udGludWVBZnRlcldpbGxTZW5k
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIGQtPm1fY3VybFJlcXVlc3Qg
PSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKIAogICAgIGlmIChzaG91bGRG
b3J3YXJkQ3JlZGVudGlhbCAmJiBjcmVkZW50aWFsKQotICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0
LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsKKyAg
ICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBj
cmVkZW50aWFsLT5wYXNzd29yZCgpKTsKIAogICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349575</attachid>
            <date>2018-09-12 13:15:59 -0700</date>
            <delta_ts>2018-09-14 16:34:43 -0700</delta_ts>
            <desc>FIX</desc>
            <filename>189318.diff</filename>
            <type>text/plain</type>
            <size>17847</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDhjM2Q2NDViZi4uYmYyNjdlM2MxZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOS0xMSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAg
ICAgICAgW0N1cmxdIFJlc3BvbmQgd2l0aCByZXF1ZXN0ZWQgYXV0aGVudGljYXRpb24gc2NoZW1l
IGZvciBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTgtMDktMTAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5kb3dzXSBMYXlvdXQgVGVzdCB3ZWJhbmltYXRpb25zL2FjY2VsZXJhdGVk
LXRyYW5zaXRpb24taW50ZXJydXB0ZWQtb24tY29tcG9zaXRlZC1lbGVtZW50Lmh0bWwgaXMgZmFp
bGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNzc1MTQ5ZmM5MTAuLmY3M2M2NDBiZTE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkxNSwxMCArOTE1LDcgQEAgaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb250ZW50ZXh0ZW5zaW9ucyBbIEZhaWx1cmUgXQog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb250ZW50ZXh0ZW5zaW9ucy9ibG9jay1j
b29raWVzLnBocCBbIFBhc3MgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2NvbnRlbnRleHRlbnNpb25zL2Jsb2NrLWNvb2tpZXMtd29ya2VyLnBocCBbIFBhc3MgRmFp
bHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtcGFy
YW1ldGVyLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aHR0cG9ubHktY29va2llLnBsIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2luc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9zZWN1cmUtY29va2llLWluc2VjdXJlLWNvbm5lY3Rpb24ucGwgWyBGYWlsdXJlIF0KLWh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VjdXJlLWNvb2tpZS1zZWN1cmUtY29ubmVjdGlv
bi5wbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS91cGdyYWRl
LXNpbXBsZS13cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvd2Vic29ja2V0LWFsbG93ZWQtc2V0dGluZy1jb29raWUtYXMtdGhpcmQtcGFydHku
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3dl
YnNvY2tldC1ibG9ja2VkLWZyb20tc2V0dGluZy1jb29raWUtYXMtdGhpcmQtcGFydHkuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtOTM4LDIzICs5MzUsMTUgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVudGlhbC1hc3luYy5odG1sIFsgRmFpbHUK
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWNyZWRl
bnRpYWwtc3luYy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLXByZWZsaWdodC1ub3Qtc3VjY2Vzc2Z1bC5odG1sIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2F1dGgtcmVqZWN0LXByb3RlY3Rpb24tc3BhY2UuaHRt
bCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLWRlZmF1
bHQuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRo
LW5vcGFzc3dvcmQuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9i
YXNpYy1hdXRoLW5vdXNlci5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbCBbIEZhaWx1
cmUgXQotaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tYXV0aG9yaXphdGlv
bi5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdp
bi1jb29raWUtc3RvcmFnZS5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Nyb3NzLW9yaWdpbi1uby1hdXRob3JpemF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvbG9nb3V0Lmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvbnVsbC1hdXRoLnBocCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZS1sb2dpbi1hc3luYy5odG1sIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3JlLWxvZ2luLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVkaXJlY3QtY3JlZGVudGlhbHMtcmVzcG9uc2VVUkwuaHRtbCBbIEZhaWx1cmUg
XQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcm9zcy1vcmlnaW4tcG9zdC1z
eW5jLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Qt
Y3Jvc3Mtb3JpZ2luLXN5bmMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9yZWRpcmVjdC1jcm9zcy1vcmlnaW4tdHJpcG1pbmUuaHRtbCBbIEZhaWx1cmUgXQogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdGlvbnMtYW5kLXVzZXItaGVhZGVycy5odG1s
IFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlbWVtYmVyLWJhZC1wYXNz
d29yZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc3BvbnNl
LWFjY2Vzcy1vbi1lcnJvci5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3VwbG9hZC1vbmxvYWQtZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC91cGxvYWQtb25sb2FkZW5kLWV2ZW50LWFmdGVyLWxvYWQuaHRtbCBbIEZhaWx1
cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDU5MzgwNGI2ZmRhLi42YWFhOWNjY2I1OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ3IEBACisyMDE4LTA5LTExICBCYXN1a2UgU3V6dWtpICA8QmFzdWtlLlN1enVr
aUBzb255LmNvbT4KKworICAgICAgICBbQ3VybF0gUmVzcG9uZCB3aXRoIHJlcXVlc3RlZCBhdXRo
ZW50aWNhdGlvbiBzY2hlbWUgZm9yIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTMxOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cmwgcG9ydCBkZXBlbmRz
IG9uIGxpYmN1cmwncyBhdXRoZW50aWNhdGlvbiBoYW5kbGluZyBieSBlbmFibGluZyBDVVJMQVVU
SF9BTlkuIFdpdGggdGhpcworICAgICAgICBtb2RlLCB0aGUgcm91bmQtdHJpcCBjb21tdW5pY2F0
aW9uIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlciBpcyBoYW5kbGVkIGJ5IGxpYmN1
cmwKKyAgICAgICAgaW50ZXJuYWxseS4gVGhhdCdzIG9rYXkgZm9yIG1hbnkgY2FzZXMuIEJ1dCB3
aGVuIGluaXRpYWwgcmVxdWVzdCBoYXMgYSBjcmVkZW50aWFscworICAgICAgICAoaS5lLiBYTUxI
dHRwUmVxdWVzdCksIHRoZXJlJ3Mgbm8gdmFsaWQgY2hhbmNlIHRvIHN0b3JlIGNyZWRlbnRpYWwg
dG8gdGhlIHN0b3JhZ2UgYmVjYXVzZQorICAgICAgICB0aGUgcmV0dXJuZWQgcmVzcG9uc2UgaXMg
bm90IDQwMS4KKworICAgICAgICBQYXNzZXMgZm9sbG93aW5nIHRlc3RzOgorICAgICAgICAtIGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaHR0cG9ubHktY29va2llLnBsIFsgRmFpbHVy
ZSBdCisgICAgICAgIC0gaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZWN1cmUtY29v
a2llLWluc2VjdXJlLWNvbm5lY3Rpb24ucGwgWyBGYWlsdXJlIF0KKyAgICAgICAgLSBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlY3VyZS1jb29raWUtc2VjdXJlLWNvbm5lY3Rpb24u
cGwgWyBGYWlsdXJlIF0KKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2lj
LWF1dGgtZGVmYXVsdC5odG1sIFsgRmFpbHVyZSBdCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tYXV0aG9yaXphdGlvbi5odG1sIFsgRmFpbHVyZSBdCisg
ICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQuaHRtbCBbIEZhaWx1cmUg
XQorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbnVsbC1hdXRoLnBocCBbIEZh
aWx1cmUgXQorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4tYXN5
bmMuaHRtbCBbIEZhaWx1cmUgXQorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmUtbG9naW4uaHRtbCBbIEZhaWx1cmUgXQorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVkaXJlY3QtY3JlZGVudGlhbHMtcmVzcG9uc2VVUkwuaHRtbCBbIEZhaWx1cmUgXQor
ICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVtZW1iZXItYmFkLXBhc3N3b3Jk
Lmh0bWwgWyBGYWlsdXJlIF0KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybEhhbmRsZTo6c2V0SHR0cEF1dGhVc2VyUGFzcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsSGFuZGxlOjplbmFibGVIdHRwQXV0aGVudGljYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnNldHVwVHJhbnNmZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Z2V0Q3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZUFmdGVyV2lsbFNlbmRSZXF1ZXN0KToK
KwogMjAxOC0wOS0xMCAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3Jn
PgogCiAgICAgICAgIFtXVEZdIEFkZCBNYXJrYWJsZTxULCBUcmFpdHM+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5kZXggOTBiMGZkYTUz
YjUuLjAxYTg2ZTM1OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0yNjMsOCArMjYzLDggQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgc2hvdWxkUmVkaXJlY3RBc0dFVChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNyb3Nz
T3JpZ2luKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4g
Z2V0Q3JlZGVudGlhbChSZXNvdXJjZVJlcXVlc3QmLCBib29sKTsKLSAgICB2b2lkIHJlc3RhcnRS
ZXF1ZXN0V2l0aENyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBh
c3N3b3JkKTsKKyAgICBzdGQ6Om9wdGlvbmFsPENyZWRlbnRpYWw+IGdldENyZWRlbnRpYWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCk7CisgICAgdm9pZCByZXN0YXJ0UmVxdWVzdFdpdGhD
cmVkZW50aWFsKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYsIGNvbnN0IENyZWRlbnRpYWwmKTsKIAog
ICAgIHZvaWQgaGFuZGxlRGF0YVVSTCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAppbmRleCA2NGI4MzhjOWQ1
ZC4uM2QzOTNlM2VkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcApAQCAtNTE0LDE1ICs1MTQsMTEgQEAgdm9pZCBDdXJs
SGFuZGxlOjplbmFibGVBbGxvd2VkUHJvdG9jb2xzKCkKICAgICBjdXJsX2Vhc3lfc2V0b3B0KG1f
aGFuZGxlLCBDVVJMT1BUX1BST1RPQ09MUywgYWxsb3dlZFByb3RvY29scyk7CiB9CiAKLXZvaWQg
Q3VybEhhbmRsZTo6ZW5hYmxlSHR0cEF1dGhlbnRpY2F0aW9uKGxvbmcgb3B0aW9uKQotewotICAg
IGN1cmxfZWFzeV9zZXRvcHQobV9oYW5kbGUsIENVUkxPUFRfSFRUUEFVVEgsIG9wdGlvbik7Ci19
Ci0KLXZvaWQgQ3VybEhhbmRsZTo6c2V0SHR0cEF1dGhVc2VyUGFzcyhjb25zdCBTdHJpbmcmIHVz
ZXIsIGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpCit2b2lkIEN1cmxIYW5kbGU6OnNldEh0dHBBdXRo
VXNlclBhc3MoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkLCBsb25n
IGF1dGhUeXBlKQogewogICAgIGN1cmxfZWFzeV9zZXRvcHQobV9oYW5kbGUsIENVUkxPUFRfVVNF
Uk5BTUUsIHVzZXIudXRmOCgpLmRhdGEoKSk7CiAgICAgY3VybF9lYXN5X3NldG9wdChtX2hhbmRs
ZSwgQ1VSTE9QVF9QQVNTV09SRCwgcGFzc3dvcmQudXRmOCgpLmRhdGEoKSk7CisgICAgY3VybF9l
YXN5X3NldG9wdChtX2hhbmRsZSwgQ1VSTE9QVF9IVFRQQVVUSCwgYXV0aFR5cGUpOwogfQogCiB2
b2lkIEN1cmxIYW5kbGU6OnNldENBQ2VydFBhdGgoY29uc3QgY2hhciogcGF0aCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKaW5kZXgg
NWMxMjZhZjExMDEuLmMzMTRlNTI3OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuaApAQCAtMjUxLDggKzI1MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVuYWJsZUFjY2VwdEVuY29kaW5nKCk7CiAgICAgdm9pZCBlbmFibGVBbGxv
d2VkUHJvdG9jb2xzKCk7CiAKLSAgICB2b2lkIGVuYWJsZUh0dHBBdXRoZW50aWNhdGlvbihsb25n
KTsKLSAgICB2b2lkIHNldEh0dHBBdXRoVXNlclBhc3MoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CisgICAgdm9pZCBzZXRIdHRwQXV0aFVzZXJQYXNzKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGxvbmcgYXV0aFR5cGUgPSBDVVJMQVVUSF9BTlkpOwogCiAgICAgdm9pZCBzZXRD
QUNlcnRQYXRoKGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHNldFNzbFZlcmlmeVBlZXIoVmVyaWZ5
UGVlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxSZXF1ZXN0LmNwcAppbmRleCA3MjY5OTJhYTNkMi4uMzc4NGM2Zjg4OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApA
QCAtNTcsNiArNTcsMzEgQEAgdm9pZCBDdXJsUmVxdWVzdDo6aW52YWxpZGF0ZUNsaWVudCgpCiAg
ICAgbV9tZXNzYWdlUXVldWUgPSBudWxscHRyOwogfQogCit2b2lkIEN1cmxSZXF1ZXN0OjpzZXRB
dXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBz
Y2hlbWUpCit7CisgICAgc3dpdGNoIChzY2hlbWUpIHsKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgICAgICBtX2F1dGhUeXBlID0gQ1VS
TEFVVEhfQkFTSUM7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6CisgICAgICAgIG1fYXV0aFR5cGUgPSBDVVJM
QVVUSF9ESUdFU1Q7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgICAgIG1fYXV0aFR5cGUgPSBDVVJMQVVUSF9O
VExNOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgICAgIG1fYXV0aFR5cGUgPSBDVVJMQVVUSF9ORUdP
VElBVEU7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgbV9hdXRoVHlw
ZSA9IENVUkxBVVRIX0FOWTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiB2b2lkIEN1cmxS
ZXF1ZXN0OjpzZXRVc2VyUGFzcyhjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmluZyYgcGFz
c3dvcmQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE4Myw4ICsyMDgsNyBA
QCBDVVJMKiBDdXJsUmVxdWVzdDo6c2V0dXBUcmFuc2ZlcigpCiAgICAgfQogCiAgICAgaWYgKCFt
X3VzZXIuaXNFbXB0eSgpIHx8ICFtX3Bhc3N3b3JkLmlzRW1wdHkoKSkgewotICAgICAgICBtX2N1
cmxIYW5kbGUtPmVuYWJsZUh0dHBBdXRoZW50aWNhdGlvbihDVVJMQVVUSF9BTlkpOwotICAgICAg
ICBtX2N1cmxIYW5kbGUtPnNldEh0dHBBdXRoVXNlclBhc3MobV91c2VyLCBtX3Bhc3N3b3JkKTsK
KyAgICAgICAgbV9jdXJsSGFuZGxlLT5zZXRIdHRwQXV0aFVzZXJQYXNzKG1fdXNlciwgbV9wYXNz
d29yZCwgbV9hdXRoVHlwZSk7CiAgICAgfQogCiAgICAgbV9jdXJsSGFuZGxlLT5zZXRIZWFkZXJD
YWxsYmFja0Z1bmN0aW9uKGRpZFJlY2VpdmVIZWFkZXJDYWxsYmFjaywgdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCmluZGV4
IGU0Y2M0YTIzNGZkLi4wOWRiOTQ3NTBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJDdXJsU1NMVmVyaWZpZXIuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0xvYWRNZXRyaWNzLmgiCisjaW5jbHVkZSAiUHJvdGVjdGlvblNwYWNlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNjYsNiArNjcsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+Q3VybFJlcXVlc3QoKSA9IGRlZmF1bHQ7CiAKICAgICB2b2lkIGludmFs
aWRhdGVDbGllbnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9u
U2NoZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFVzZXJQYXNzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwog
CiAgICAgdm9pZCBzdGFydCgpOwpAQCAtMTYxLDYgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAgUmVz
b3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBTdHJpbmcgbV91c2VyOwogICAgIFN0cmluZyBt
X3Bhc3N3b3JkOworICAgIHVuc2lnbmVkIGxvbmcgbV9hdXRoVHlwZSB7IENVUkxBVVRIX0FOWSB9
OwogICAgIGJvb2wgbV9zaG91bGRTdXNwZW5kIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxl
TXVsdGlwYXJ0IHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCBjNDJhZGMz
NzhhNi4uZWMzZTU2YWMzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC04Myw4ICs4Mywx
MCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiAKICAgICBkLT5tX2N1cmxSZXF1ZXN0
ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSk7CiAKLSAgICBpZiAoYXV0byBj
cmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChkLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKQotICAg
ICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3Jl
ZGVudGlhbC0+c2Vjb25kKTsKKyAgICBpZiAoYXV0byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlh
bChkLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CisgICAgICAgIGQtPm1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPnVzZXIoKSwgY3JlZGVudGlhbC0+cGFzc3dvcmQoKSk7
CisgICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKKyAgICB9CiAKICAgICBk
LT5tX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogCkBAIC0yMjgsNyArMjMwLDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGwKICAgICAgICAgICAgIHVybFRvU3RvcmUgPSBjaGFsbGVuZ2UuZmFpbHVy
ZVJlc3BvbnNlKCkudXJsKCk7CiAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpkZWZhdWx0Q3Jl
ZGVudGlhbFN0b3JhZ2UoKS5zZXQocGFydGl0aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlKCksIHVybFRvU3RvcmUpOwogCi0gICAgICAgIHJlc3RhcnRSZXF1ZXN0V2l0
aENyZWRlbnRpYWwoY3JlZGVudGlhbC51c2VyKCksIGNyZWRlbnRpYWwucGFzc3dvcmQoKSk7Cisg
ICAgICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpLCBjcmVkZW50aWFsKTsKIAogICAgICAgICBkLT5tX3VzZXIgPSBTdHJpbmcoKTsKICAg
ICAgICAgZC0+bV9wYXNzID0gU3RyaW5nKCk7CkBAIC0yNTMsNyArMjU1LDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGwKICAgICAgICAgICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OmRl
ZmF1bHRDcmVkZW50aWFsU3RvcmFnZSgpLnNldChwYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxs
ZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSgpLnVybCgp
KTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICByZXN0YXJ0UmVxdWVzdFdp
dGhDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkpOwor
ICAgICAgICAgICAgICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZSgpLCBjcmVkZW50aWFsKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI4OCw3ICsyOTAsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
IGNoYWxsZW5nZQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmVzdGFydFJlcXVlc3RXaXRoQ3Jl
ZGVudGlhbChjcmVkZW50aWFsLnVzZXIoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpKTsKKyAgICBy
ZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwg
Y3JlZGVudGlhbCk7CiAKICAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7CiB9CkBAIC0zMzAsMTMg
KzMzMiwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlv
bihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gUmVzb3Vy
Y2VIYW5kbGU6OmdldENyZWRlbnRpYWwoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHJl
ZGlyZWN0KQorc3RkOjpvcHRpb25hbDxDcmVkZW50aWFsPiBSZXNvdXJjZUhhbmRsZTo6Z2V0Q3Jl
ZGVudGlhbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgcmVkaXJlY3QpCiB7
CiAgICAgLy8gbV91c2VyL21fcGFzcyBhcmUgY3JlZGVudGlhbHMgZ2l2ZW4gbWFudWFsbHksIGZv
ciBpbnN0YW5jZSwgYnkgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gWE1MSHR0cFJlcXVlc3Qub3Bl
bigpLgotICAgIFN0cmluZyBwYXJ0aXRpb24gPSByZXF1ZXN0LmNhY2hlUGFydGl0aW9uKCk7Cisg
ICAgQ3JlZGVudGlhbCBjcmVkZW50aWFsIHsgZC0+bV91c2VyLCBkLT5tX3Bhc3MsIENyZWRlbnRp
YWxQZXJzaXN0ZW5jZU5vbmUgfTsKIAogICAgIGlmIChzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSgpKSB7Ci0gICAgICAgIGlmIChkLT5tX3VzZXIuaXNFbXB0eSgpICYmIGQtPm1fcGFzcy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9IHJlcXVlc3QuY2FjaGVQYXJ0aXRp
b24oKTsKKworICAgICAgICBpZiAoY3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
IC8vIDxyZGFyOi8vcHJvYmxlbS83MTc0MDUwPiAtIEZvciBVUkxzIHRoYXQgbWF0Y2ggdGhlIHBh
dGhzIG9mIHRob3NlIHByZXZpb3VzbHkgY2hhbGxlbmdlZCBmb3IgSFRUUCBCYXNpYyBhdXRoZW50
aWNhdGlvbiwgCiAgICAgICAgICAgICAvLyB0cnkgYW5kIHJldXNlIHRoZSBjcmVkZW50aWFsIHBy
ZWVtcHRpdmVseSwgYXMgYWxsb3dlZCBieSBSRkMgMjYxNy4KICAgICAgICAgICAgIGQtPm1faW5p
dGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6ZGVmYXVsdENyZWRlbnRpYWxTdG9y
YWdlKCkuZ2V0KHBhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7CkBAIC0zNDUsMjUgKzM0OSwxNyBA
QCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IFJlc291cmNlSGFuZGxl
OjpnZXRDcmVkZW50aWFsKFJlc291cmNlUgogICAgICAgICAgICAgLy8gYmVmb3JlIHNlbmRpbmcg
YSByZXF1ZXN0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGltcGxlbWVudCBsb2dvdXQgYnkg
c2VuZGluZyBhbgogICAgICAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3Qgd2l0aCBrbm93biBpbmNv
cnJlY3QgY3JlZGVudGlhbHMsIGFuZCBhYm9ydGluZyBpdCBpbW1lZGlhdGVseSAoc28gdGhhdAog
ICAgICAgICAgICAgLy8gYW4gYXV0aGVudGljYXRpb24gZGlhbG9nIGRvZXNuJ3QgcG9wIHVwKS4K
LSAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpkZWZhdWx0Q3JlZGVudGlhbFN0b3JhZ2Uo
KS5zZXQocGFydGl0aW9uLCBDcmVkZW50aWFsKGQtPm1fdXNlciwgZC0+bV9wYXNzLCBDcmVkZW50
aWFsUGVyc2lzdGVuY2VOb25lKSwgcmVxdWVzdC51cmwoKSk7CisgICAgICAgICAgICBDcmVkZW50
aWFsU3RvcmFnZTo6ZGVmYXVsdENyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KHBhcnRpdGlvbiwgY3Jl
ZGVudGlhbCwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBTdHJpbmcg
dXNlciA9IGQtPm1fdXNlcjsKLSAgICBTdHJpbmcgcGFzc3dvcmQgPSBkLT5tX3Bhc3M7Ci0KLSAg
ICBpZiAoIWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHVzZXIg
PSBkLT5tX2luaXRpYWxDcmVkZW50aWFsLnVzZXIoKTsKLSAgICAgICAgcGFzc3dvcmQgPSBkLT5t
X2luaXRpYWxDcmVkZW50aWFsLnBhc3N3b3JkKCk7Ci0gICAgfQotCi0gICAgaWYgKHVzZXIuaXNF
bXB0eSgpICYmIHBhc3N3b3JkLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKyAgICBpZiAoIWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gZC0+bV9pbml0aWFsQ3JlZGVudGlhbDsKIAotICAgIHJldHVybiBzdGQ6OnBhaXI8U3Ry
aW5nLCBTdHJpbmc+KHVzZXIsIHBhc3N3b3JkKTsKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
fQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpyZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNv
bnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCkKK3ZvaWQgUmVzb3VyY2VI
YW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJvdGVjdGlvblNwYWNl
JiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMzc0LDE1ICszNzAsMTkgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjb25zdCBTdHJpbmcmIHVz
ZXIsIGNvbnN0IFN0cmkKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5jYW5jZWwoKTsKIAogICAgIGQt
Pm1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHByZXZpb3VzUmVxdWVz
dCksIFJlcXVlc3RTdGF0dXM6OlJldXNlZFJlcXVlc3QpOwotICAgIGQtPm1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKHVzZXIsIHBhc3N3b3JkKTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRB
dXRoZW50aWNhdGlvblNjaGVtZShwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUo
KSk7CisgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC51c2VyKCks
IGNyZWRlbnRpYWwucGFzc3dvcmQoKSk7CiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsK
IH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rvcjxj
aGFyPiYgZGF0YSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCgh
cmVxdWVzdC5pc0VtcHR5KCkpOwogCiAgICAgU3luY2hyb25vdXNMb2FkZXJDbGllbnQgY2xpZW50
OworICAgIGNsaWVudC5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpOworCiAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nID0gZmFsc2U7CiAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYgPSB0cnVlOwog
ICAgIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYgPSB0cnVlOwpAQCAtMzk2LDYgKzM5
NiwxMiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleAogCiAgICAgYXV0byByZXF1ZXN0Q29weSA9
IGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCk7CiAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0ID0g
aGFuZGxlLT5jcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3RDb3B5KSk7CisKKyAgICBp
ZiAoYXV0byBjcmVkZW50aWFsID0gaGFuZGxlLT5nZXRDcmVkZW50aWFsKGhhbmRsZS0+ZC0+bV9m
aXJzdFJlcXVlc3QsIGZhbHNlKSkgeworICAgICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPnVzZXIoKSwgY3JlZGVudGlhbC0+cGFzc3dvcmQoKSk7
CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgIH0K
KwogICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKIAogICAgIGRvIHsKQEAg
LTUxMSw3ICs1MTcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZUFmdGVyV2lsbFNl
bmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgZC0+bV9jdXJsUmVxdWVz
dCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwogCiAgICAgaWYgKHNob3Vs
ZEZvcndhcmRDcmVkZW50aWFsICYmIGNyZWRlbnRpYWwpCi0gICAgICAgIGQtPm1fY3VybFJlcXVl
c3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPmZpcnN0LCBjcmVkZW50aWFsLT5zZWNvbmQpOwor
ICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT51c2VyKCks
IGNyZWRlbnRpYWwtPnBhc3N3b3JkKCkpOwogCiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c3RhcnQo
KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349828</attachid>
            <date>2018-09-14 16:34:43 -0700</date>
            <delta_ts>2018-09-17 10:42:45 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>189318.diff</filename>
            <type>text/plain</type>
            <size>24304</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOWZmZmI2NTQ1NC4uMmRkYTBhMDNlMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOS0xNCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAg
ICAgICAgW0N1cmxdIFJlc3BvbmQgd2l0aCByZXF1ZXN0ZWQgYXV0aGVudGljYXRpb24gc2NoZW1l
IGZvciBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTgtMDktMTQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3VwcG9ydCBhcmJpdHJhcnkgdmlkZW8gcmVzb2x1dGlvbiBpbiBnZXRVc2Vy
TWVkaWEgQVBJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA3NzUxNDlmYzkxMC4uZjczYzY0MGJlMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTE1LDEwICs5MTUsNyBAQCBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbnRlbnRleHRlbnNpb25zIFsgRmFpbHVy
ZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2NvbnRlbnRleHRlbnNpb25zL2Js
b2NrLWNvb2tpZXMucGhwIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvY29udGVudGV4dGVuc2lvbnMvYmxvY2stY29va2llcy13b3JrZXIucGhwIFsgUGFz
cyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFt
ZS1wYXJhbWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9odHRwb25seS1jb29raWUucGwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW5zcGVjdG9yIFsgU2tpcCBdCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL3NlY3VyZS1jb29raWUtaW5zZWN1cmUtY29ubmVjdGlvbi5wbCBbIEZhaWx1cmUgXQot
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZWN1cmUtY29va2llLXNlY3VyZS1jb25u
ZWN0aW9uLnBsIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Vw
Z3JhZGUtc2ltcGxlLXdzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS93ZWJzb2NrZXQtYWxsb3dlZC1zZXR0aW5nLWNvb2tpZS1hcy10aGlyZC1w
YXJ0eS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
Ymkvd2Vic29ja2V0LWJsb2NrZWQtZnJvbS1zZXR0aW5nLWNvb2tpZS1hcy10aGlyZC1wYXJ0eS5o
dG1sIFsgRmFpbHVyZSBdCkBAIC05MzgsMjMgKzkzNSwxNSBAQCBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1jcmVkZW50aWFsLWFzeW5jLmh0bWwgWyBG
YWlsdQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQt
Y3JlZGVudGlhbC1zeW5jLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LW5vdC1zdWNjZXNzZnVsLmh0bWwgWyBGYWlsdXJl
IF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYXV0aC1yZWplY3QtcHJvdGVjdGlvbi1zcGFj
ZS5odG1sIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2ljLWF1dGgt
ZGVmYXVsdC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Jhc2lj
LWF1dGgtbm9wYXNzd29yZC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Jhc2ljLWF1dGgtbm91c2VyLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0aC1lbWJlZGRlci5odG1sIFsg
RmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3Jp
emF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mt
b3JpZ2luLWNvb2tpZS1zdG9yYWdlLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLW5vLWF1dGhvcml6YXRpb24uaHRtbCBbIEZhaWx1cmUgXQot
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9sb2dvdXQuaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9udWxsLWF1dGgucGhwIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3JlLWxvZ2luLWFzeW5jLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4uaHRtbCBbIEZhaWx1cmUgXQotaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcmVkZW50aWFscy1yZXNwb25zZVVSTC5odG1sIFsgRmFp
bHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0LWNyb3NzLW9yaWdpbi1w
b3N0LXN5bmMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRp
cmVjdC1jcm9zcy1vcmlnaW4tc3luYy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3JlZGlyZWN0LWNyb3NzLW9yaWdpbi10cmlwbWluZS5odG1sIFsgRmFpbHVyZSBd
CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJz
Lmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVtZW1iZXItYmFk
LXBhc3N3b3JkLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVz
cG9uc2UtYWNjZXNzLW9uLWVycm9yLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvdXBsb2FkLW9ubG9hZC1ldmVudC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItbG9hZC5odG1sIFsg
RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRhN2NmY2Y5OGQuLjdlYjlkYjhkNjg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTgtMDktMTQgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2Uu
U3V6dWtpQHNvbnkuY29tPgorCisgICAgICAgIFtDdXJsXSBSZXNwb25kIHdpdGggcmVxdWVzdGVk
IGF1dGhlbnRpY2F0aW9uIHNjaGVtZSBmb3IgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VybCBwb3J0IGRl
cGVuZHMgb24gbGliY3VybCdzIGF1dGhlbnRpY2F0aW9uIGhhbmRsaW5nIGJ5IGVuYWJsaW5nIENV
UkxBVVRIX0FOWS4gV2l0aCB0aGlzCisgICAgICAgIG1vZGUsIHRoZSByb3VuZC10cmlwIGNvbW11
bmljYXRpb24gYmV0d2VlbiB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyIGlzIGhhbmRsZWQgYnkg
bGliY3VybAorICAgICAgICBpbnRlcm5hbGx5LiBUaGF0J3Mgb2theSBmb3IgbWFueSBjYXNlcy4g
QnV0IHdoZW4gaW5pdGlhbCByZXF1ZXN0IGhhcyBhIGNyZWRlbnRpYWxzCisgICAgICAgIChpLmUu
IFhNTEh0dHBSZXF1ZXN0KSwgdGhlcmUncyBubyB2YWxpZCBjaGFuY2UgdG8gc3RvcmUgY3JlZGVu
dGlhbCB0byB0aGUgc3RvcmFnZSBiZWNhdXNlCisgICAgICAgIHRoZSByZXR1cm5lZCByZXNwb25z
ZSBpcyBub3QgNDAxLgorCisgICAgICAgIFBhc3NlcyBmb2xsb3dpbmcgdGVzdHM6CisgICAgICAg
IC0gaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9odHRwb25seS1jb29raWUucGwKKyAg
ICAgICAgLSBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlY3VyZS1jb29raWUtaW5z
ZWN1cmUtY29ubmVjdGlvbi5wbAorICAgICAgICAtIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvc2VjdXJlLWNvb2tpZS1zZWN1cmUtY29ubmVjdGlvbi5wbAorICAgICAgICAtIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC1kZWZhdWx0Lmh0bWwKKyAgICAgICAgLSBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLmh0bWwK
KyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xvZ291dC5odG1sCisgICAgICAg
IC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9udWxsLWF1dGgucGhwCisgICAgICAgIC0gaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi1hc3luYy5odG1sCisgICAgICAgIC0gaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi5odG1sCisgICAgICAgIC0gaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcmVkZW50aWFscy1yZXNwb25zZVVSTC5odG1sCisg
ICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1lbWJlci1iYWQtcGFzc3dvcmQu
aHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsSGFuZGxlOjpzZXRIdHRwQXV0aFVzZXJQYXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OkN1cmxIYW5kbGU6OmVuYWJsZUh0dHBBdXRoZW50aWNhdGlvbik6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxSZXF1ZXN0OjpzZXRBdXRoZW50aWNhdGlvblNjaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpD
dXJsUmVxdWVzdDo6c2V0dXBUcmFuc2Zlcik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxSZXF1ZXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291
cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVj
ZWl2ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpnZXRD
cmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpyZXN0YXJ0UmVx
dWVzdFdpdGhDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpw
bGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OmNvbnRpbnVlQWZ0ZXJXaWxsU2VuZFJlcXVlc3QpOgorCiAyMDE4LTA5LTE0
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGF0dGVtcHQgdG8gZml4IHRoZSBpT1NNYWMgYnVpbGQgYWZ0ZXIgcjIzNjAxNS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA5
MGIwZmRhNTNiNS4uMDFhODZlMzU5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTI2Myw4ICsyNjMsOCBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBzaG91bGRSZWRpcmVjdEFzR0VUKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJv
b2wgY3Jvc3NPcmlnaW4pOwogCi0gICAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+PiBnZXRDcmVkZW50aWFsKFJlc291cmNlUmVxdWVzdCYsIGJvb2wpOwotICAgIHZvaWQg
cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0
cmluZyYgcGFzc3dvcmQpOworICAgIHN0ZDo6b3B0aW9uYWw8Q3JlZGVudGlhbD4gZ2V0Q3JlZGVu
dGlhbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sKTsKKyAgICB2b2lkIHJlc3RhcnRSZXF1
ZXN0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgY29uc3QgQ3JlZGVudGlh
bCYpOwogCiAgICAgdm9pZCBoYW5kbGVEYXRhVVJMKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCmluZGV4IDY0
YjgzOGM5ZDVkLi4zZDM5M2UzZWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCkBAIC01MTQsMTUgKzUxNCwxMSBAQCB2
b2lkIEN1cmxIYW5kbGU6OmVuYWJsZUFsbG93ZWRQcm90b2NvbHMoKQogICAgIGN1cmxfZWFzeV9z
ZXRvcHQobV9oYW5kbGUsIENVUkxPUFRfUFJPVE9DT0xTLCBhbGxvd2VkUHJvdG9jb2xzKTsKIH0K
IAotdm9pZCBDdXJsSGFuZGxlOjplbmFibGVIdHRwQXV0aGVudGljYXRpb24obG9uZyBvcHRpb24p
Ci17Ci0gICAgY3VybF9lYXN5X3NldG9wdChtX2hhbmRsZSwgQ1VSTE9QVF9IVFRQQVVUSCwgb3B0
aW9uKTsKLX0KLQotdm9pZCBDdXJsSGFuZGxlOjpzZXRIdHRwQXV0aFVzZXJQYXNzKGNvbnN0IFN0
cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCkKK3ZvaWQgQ3VybEhhbmRsZTo6c2V0
SHR0cEF1dGhVc2VyUGFzcyhjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0IFN0cmluZyYgcGFzc3dv
cmQsIGxvbmcgYXV0aFR5cGUpCiB7CiAgICAgY3VybF9lYXN5X3NldG9wdChtX2hhbmRsZSwgQ1VS
TE9QVF9VU0VSTkFNRSwgdXNlci51dGY4KCkuZGF0YSgpKTsKICAgICBjdXJsX2Vhc3lfc2V0b3B0
KG1faGFuZGxlLCBDVVJMT1BUX1BBU1NXT1JELCBwYXNzd29yZC51dGY4KCkuZGF0YSgpKTsKKyAg
ICBjdXJsX2Vhc3lfc2V0b3B0KG1faGFuZGxlLCBDVVJMT1BUX0hUVFBBVVRILCBhdXRoVHlwZSk7
CiB9CiAKIHZvaWQgQ3VybEhhbmRsZTo6c2V0Q0FDZXJ0UGF0aChjb25zdCBjaGFyKiBwYXRoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQu
aAppbmRleCA1YzEyNmFmMTEwMS4uYzMxNGU1Mjc4YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5oCkBAIC0yNTEsOCArMjUxLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlQWNjZXB0RW5jb2RpbmcoKTsKICAgICB2b2lkIGVu
YWJsZUFsbG93ZWRQcm90b2NvbHMoKTsKIAotICAgIHZvaWQgZW5hYmxlSHR0cEF1dGhlbnRpY2F0
aW9uKGxvbmcpOwotICAgIHZvaWQgc2V0SHR0cEF1dGhVc2VyUGFzcyhjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldEh0dHBBdXRoVXNlclBhc3MoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgbG9uZyBhdXRoVHlwZSA9IENVUkxBVVRIX0FOWSk7CiAKICAgICB2
b2lkIHNldENBQ2VydFBhdGgoY29uc3QgY2hhciopOwogICAgIHZvaWQgc2V0U3NsVmVyaWZ5UGVl
cihWZXJpZnlQZWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybFJlcXVlc3QuY3BwCmluZGV4IDVkMDYxY2ExYzM4Li4zN2FhYzQ5M2MzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuY3BwCkBAIC01Nyw2ICs1NywzMSBAQCB2b2lkIEN1cmxSZXF1ZXN0OjppbnZhbGlkYXRlQ2xp
ZW50KCkKICAgICBtX21lc3NhZ2VRdWV1ZSA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgQ3VybFJlcXVl
c3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lIHNjaGVtZSkKK3sKKyAgICBzd2l0Y2ggKHNjaGVtZSkgeworICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgICAgIG1fYXV0aFR5
cGUgPSBDVVJMQVVUSF9CQVNJQzsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICAgICAgbV9hdXRoVHlw
ZSA9IENVUkxBVVRIX0RJR0VTVDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKKyAgICAgICAgbV9hdXRoVHlwZSA9IENV
UkxBVVRIX05UTE07CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAgICAgICAgbV9hdXRoVHlwZSA9IENVUkxB
VVRIX05FR09USUFURTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBt
X2F1dGhUeXBlID0gQ1VSTEFVVEhfQU5ZOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZv
aWQgQ3VybFJlcXVlc3Q6OnNldFVzZXJQYXNzKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3Ry
aW5nJiBwYXNzd29yZCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTgzLDgg
KzIwOCw3IEBAIENVUkwqIEN1cmxSZXF1ZXN0OjpzZXR1cFRyYW5zZmVyKCkKICAgICB9CiAKICAg
ICBpZiAoIW1fdXNlci5pc0VtcHR5KCkgfHwgIW1fcGFzc3dvcmQuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIG1fY3VybEhhbmRsZS0+ZW5hYmxlSHR0cEF1dGhlbnRpY2F0aW9uKENVUkxBVVRIX0FOWSk7
Ci0gICAgICAgIG1fY3VybEhhbmRsZS0+c2V0SHR0cEF1dGhVc2VyUGFzcyhtX3VzZXIsIG1fcGFz
c3dvcmQpOworICAgICAgICBtX2N1cmxIYW5kbGUtPnNldEh0dHBBdXRoVXNlclBhc3MobV91c2Vy
LCBtX3Bhc3N3b3JkLCBtX2F1dGhUeXBlKTsKICAgICB9CiAKICAgICBtX2N1cmxIYW5kbGUtPnNl
dEhlYWRlckNhbGxiYWNrRnVuY3Rpb24oZGlkUmVjZWl2ZUhlYWRlckNhbGxiYWNrLCB0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0
LmgKaW5kZXggZDYxMWIxMTNjMDMuLmJmMzdhOGI4OTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkN1cmxTU0xWZXJpZmllci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIK
ICNpbmNsdWRlICJOZXR3b3JrTG9hZE1ldHJpY3MuaCIKKyNpbmNsdWRlICJQcm90ZWN0aW9uU3Bh
Y2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvTWVzc2Fn
ZVF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC02Niw2ICs2Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DdXJsUmVxdWVzdCgpID0gZGVmYXVsdDsKIAogICAgIHZv
aWQgaW52YWxpZGF0ZUNsaWVudCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV0aGVu
dGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlclBhc3MoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJik7CiAKICAgICB2b2lkIHN0YXJ0KCk7CkBAIC0xNjMsNiArMTY1LDcgQEAgcHJpdmF0ZToK
ICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFN0cmluZyBtX3VzZXI7CiAgICAg
U3RyaW5nIG1fcGFzc3dvcmQ7CisgICAgdW5zaWduZWQgbG9uZyBtX2F1dGhUeXBlIHsgQ1VSTEFV
VEhfQU5ZIH07CiAgICAgYm9vbCBtX3Nob3VsZFN1c3BlbmQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9lbmFibGVNdWx0aXBhcnQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4
IGM0MmFkYzM3OGE2Li5lYzNlNTZhYzM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTgz
LDggKzgzLDEwIEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIAogICAgIGQtPm1fY3Vy
bFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKIAotICAgIGlm
IChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFsKGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxz
ZSkpCi0gICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPmZp
cnN0LCBjcmVkZW50aWFsLT5zZWNvbmQpOworICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRD
cmVkZW50aWFsKGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKKyAgICAgICAgZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKKyAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgIH0K
IAogICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CiAKQEAgLTIyOCw3ICsyMzAsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29u
c3QgQXV0aGVudGljYXRpb25DaGFsbAogICAgICAgICAgICAgdXJsVG9TdG9yZSA9IGNoYWxsZW5n
ZS5mYWlsdXJlUmVzcG9uc2UoKS51cmwoKTsKICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OmRl
ZmF1bHRDcmVkZW50aWFsU3RvcmFnZSgpLnNldChwYXJ0aXRpb24sIGNyZWRlbnRpYWwsIGNoYWxs
ZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgdXJsVG9TdG9yZSk7CiAKLSAgICAgICAgcmVzdGFydFJl
cXVlc3RXaXRoQ3JlZGVudGlhbChjcmVkZW50aWFsLnVzZXIoKSwgY3JlZGVudGlhbC5wYXNzd29y
ZCgpKTsKKyAgICAgICAgcmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlKCksIGNyZWRlbnRpYWwpOwogCiAgICAgICAgIGQtPm1fdXNlciA9IFN0cmlu
ZygpOwogICAgICAgICBkLT5tX3Bhc3MgPSBTdHJpbmcoKTsKQEAgLTI1Myw3ICsyNTUsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29u
c3QgQXV0aGVudGljYXRpb25DaGFsbAogICAgICAgICAgICAgICAgICAgICBDcmVkZW50aWFsU3Rv
cmFnZTo6ZGVmYXVsdENyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KHBhcnRpdGlvbiwgY3JlZGVudGlh
bCwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNl
KCkudXJsKCkpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHJlc3RhcnRS
ZXF1ZXN0V2l0aENyZWRlbnRpYWwoY3JlZGVudGlhbC51c2VyKCksIGNyZWRlbnRpYWwucGFzc3dv
cmQoKSk7CisgICAgICAgICAgICAgICAgcmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNyZWRlbnRpYWwpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjg4LDcgKzI5MCw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYgY2hhbGxlbmdlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXN0YXJ0UmVxdWVz
dFdpdGhDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkp
OworICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpLCBjcmVkZW50aWFsKTsKIAogICAgIGNsZWFyQXV0aGVudGljYXRpb24oKTsKIH0KQEAg
LTMzMCwxMyArMzMyLDE1IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2hhbGxlbmdl
UmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KIAotc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+
PiBSZXNvdXJjZUhhbmRsZTo6Z2V0Q3JlZGVudGlhbChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGJvb2wgcmVkaXJlY3QpCitzdGQ6Om9wdGlvbmFsPENyZWRlbnRpYWw+IFJlc291cmNlSGFuZGxl
OjpnZXRDcmVkZW50aWFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCByZWRp
cmVjdCkKIHsKICAgICAvLyBtX3VzZXIvbV9wYXNzIGFyZSBjcmVkZW50aWFscyBnaXZlbiBtYW51
YWxseSwgZm9yIGluc3RhbmNlLCBieSB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBYTUxIdHRwUmVx
dWVzdC5vcGVuKCkuCi0gICAgU3RyaW5nIHBhcnRpdGlvbiA9IHJlcXVlc3QuY2FjaGVQYXJ0aXRp
b24oKTsKKyAgICBDcmVkZW50aWFsIGNyZWRlbnRpYWwgeyBkLT5tX3VzZXIsIGQtPm1fcGFzcywg
Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSB9OwogCiAgICAgaWYgKHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKCkpIHsKLSAgICAgICAgaWYgKGQtPm1fdXNlci5pc0VtcHR5KCkgJiYgZC0+bV9w
YXNzLmlzRW1wdHkoKSkgeworICAgICAgICBTdHJpbmcgcGFydGl0aW9uID0gcmVxdWVzdC5jYWNo
ZVBhcnRpdGlvbigpOworCisgICAgICAgIGlmIChjcmVkZW50aWFsLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzcxNzQwNTA+IC0gRm9yIFVSTHMgdGhhdCBtYXRj
aCB0aGUgcGF0aHMgb2YgdGhvc2UgcHJldmlvdXNseSBjaGFsbGVuZ2VkIGZvciBIVFRQIEJhc2lj
IGF1dGhlbnRpY2F0aW9uLCAKICAgICAgICAgICAgIC8vIHRyeSBhbmQgcmV1c2UgdGhlIGNyZWRl
bnRpYWwgcHJlZW1wdGl2ZWx5LCBhcyBhbGxvd2VkIGJ5IFJGQyAyNjE3LgogICAgICAgICAgICAg
ZC0+bV9pbml0aWFsQ3JlZGVudGlhbCA9IENyZWRlbnRpYWxTdG9yYWdlOjpkZWZhdWx0Q3JlZGVu
dGlhbFN0b3JhZ2UoKS5nZXQocGFydGl0aW9uLCByZXF1ZXN0LnVybCgpKTsKQEAgLTM0NSwyNSAr
MzQ5LDE3IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gUmVzb3Vy
Y2VIYW5kbGU6OmdldENyZWRlbnRpYWwoUmVzb3VyY2VSCiAgICAgICAgICAgICAvLyBiZWZvcmUg
c2VuZGluZyBhIHJlcXVlc3QuIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IGxv
Z291dCBieSBzZW5kaW5nIGFuCiAgICAgICAgICAgICAvLyBYTUxIdHRwUmVxdWVzdCB3aXRoIGtu
b3duIGluY29ycmVjdCBjcmVkZW50aWFscywgYW5kIGFib3J0aW5nIGl0IGltbWVkaWF0ZWx5IChz
byB0aGF0CiAgICAgICAgICAgICAvLyBhbiBhdXRoZW50aWNhdGlvbiBkaWFsb2cgZG9lc24ndCBw
b3AgdXApLgotICAgICAgICAgICAgQ3JlZGVudGlhbFN0b3JhZ2U6OmRlZmF1bHRDcmVkZW50aWFs
U3RvcmFnZSgpLnNldChwYXJ0aXRpb24sIENyZWRlbnRpYWwoZC0+bV91c2VyLCBkLT5tX3Bhc3Ms
IENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpLCByZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgICAg
IENyZWRlbnRpYWxTdG9yYWdlOjpkZWZhdWx0Q3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQocGFydGl0
aW9uLCBjcmVkZW50aWFsLCByZXF1ZXN0LnVybCgpKTsKICAgICAgICAgfQogICAgIH0KIAotICAg
IFN0cmluZyB1c2VyID0gZC0+bV91c2VyOwotICAgIFN0cmluZyBwYXNzd29yZCA9IGQtPm1fcGFz
czsKLQotICAgIGlmICghZC0+bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgdXNlciA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpOwotICAgICAgICBwYXNzd29y
ZCA9IGQtPm1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKTsKLSAgICB9Ci0KLSAgICBpZiAo
dXNlci5pc0VtcHR5KCkgJiYgcGFzc3dvcmQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIGlmICghZC0+bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBkLT5tX2luaXRpYWxDcmVkZW50aWFsOwogCi0gICAgcmV0dXJuIHN0ZDo6
cGFpcjxTdHJpbmcsIFN0cmluZz4odXNlciwgcGFzc3dvcmQpOworICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiB9CiAKLXZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRl
bnRpYWwoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQordm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjb25zdCBQcm90ZWN0
aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0zNzQsMTUgKzM3MCwxOSBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpyZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFN0
cmluZyYgdXNlciwgY29uc3QgU3RyaQogICAgIGQtPm1fY3VybFJlcXVlc3QtPmNhbmNlbCgpOwog
CiAgICAgZC0+bV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocHJldmlv
dXNSZXF1ZXN0KSwgUmVxdWVzdFN0YXR1czo6UmV1c2VkUmVxdWVzdCk7Ci0gICAgZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3ModXNlciwgcGFzc3dvcmQpOworICAgIGQtPm1fY3VybFJlcXVl
c3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpKTsKKyAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFs
LnVzZXIoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpKTsKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5z
dGFydCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
VmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
QVNTRVJUKCFyZXF1ZXN0LmlzRW1wdHkoKSk7CiAKICAgICBTeW5jaHJvbm91c0xvYWRlckNsaWVu
dCBjbGllbnQ7CisgICAgY2xpZW50LnNldEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgPT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSk7CisKICAgICBi
b29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9
IHRydWU7CiAgICAgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiA9IHRydWU7CkBAIC0z
OTYsNiArMzk2LDEyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4CiAKICAgICBhdXRvIHJlcXVl
c3RDb3B5ID0gaGFuZGxlLT5maXJzdFJlcXVlc3QoKTsKICAgICBoYW5kbGUtPmQtPm1fY3VybFJl
cXVlc3QgPSBoYW5kbGUtPmNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdENvcHkpKTsK
KworICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBoYW5kbGUtPmdldENyZWRlbnRpYWwoaGFuZGxl
LT5kLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKKyAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNh
dGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7
CisgICAgfQorCiAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogCiAgICAg
ZG8gewpAQCAtNTExLDcgKzUxNyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQWZ0
ZXJXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICBkLT5tX2N1
cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSk7CiAKICAgICBp
ZiAoc2hvdWxkRm9yd2FyZENyZWRlbnRpYWwgJiYgY3JlZGVudGlhbCkKLSAgICAgICAgZC0+bV9j
dXJsUmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+Zmlyc3QsIGNyZWRlbnRpYWwtPnNl
Y29uZCk7CisgICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwt
PnVzZXIoKSwgY3JlZGVudGlhbC0+cGFzc3dvcmQoKSk7CiAKICAgICBkLT5tX2N1cmxSZXF1ZXN0
LT5zdGFydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmY2ViOGQ4NzdjZi4uMDYxMTk3MDBiNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDktMTQgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2Uu
U3V6dWtpQHNvbnkuY29tPgorCisgICAgICAgIFtDdXJsXSBSZXNwb25kIHdpdGggcmVxdWVzdGVk
IGF1dGhlbnRpY2F0aW9uIHNjaGVtZSBmb3IgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VybCBwb3J0IGRl
cGVuZHMgb24gbGliY3VybCdzIGF1dGhlbnRpY2F0aW9uIGhhbmRsaW5nIGJ5IGVuYWJsaW5nIENV
UkxBVVRIX0FOWS4gV2l0aCB0aGlzCisgICAgICAgIG1vZGUsIHRoZSByb3VuZC10cmlwIGNvbW11
bmljYXRpb24gYmV0d2VlbiB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyIGlzIGhhbmRsZWQgYnkg
bGliY3VybAorICAgICAgICBpbnRlcm5hbGx5LiBUaGF0J3Mgb2theSBmb3IgbWFueSBjYXNlcy4g
QnV0IHdoZW4gaW5pdGlhbCByZXF1ZXN0IGhhcyBhIGNyZWRlbnRpYWxzCisgICAgICAgIChpLmUu
IFhNTEh0dHBSZXF1ZXN0KSwgdGhlcmUncyBubyB2YWxpZCBjaGFuY2UgdG8gc3RvcmUgY3JlZGVu
dGlhbCB0byB0aGUgc3RvcmFnZSBiZWNhdXNlCisgICAgICAgIHRoZSByZXR1cm5lZCByZXNwb25z
ZSBpcyBub3QgNDAxLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0
YVRhc2tDdXJsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6TmV0
d29ya0RhdGFUYXNrQ3VybCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6
OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Rh
dGFUYXNrQ3VybDo6dHJ5SHR0cEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ3VybDo6dHJ5UHJveHlBdXRoZW50aWNhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6OnJlc3RhcnRXaXRoQ3JlZGVudGlhbCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmg6CisKIDIwMTgtMDkt
MTQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZWZhY3RvcmluZyByZWxhdGVkIHRvIFNhZmUgQnJvd3NpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcApp
bmRleCBhMTRkZDEyNjFiZi4uZDlkZThmZDg4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKQEAgLTYy
LDggKzYyLDEwIEBAIE5ldHdvcmtEYXRhVGFza0N1cmw6Ok5ldHdvcmtEYXRhVGFza0N1cmwoTmV0
d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFzCiAgICAgfQogCiAgICAgbV9jdXJs
UmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwotICAgIGlmICgh
bV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpCisgICAgaWYgKCFtX2luaXRpYWxDcmVkZW50
aWFsLmlzRW1wdHkoKSkgewogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhtX2lu
aXRpYWxDcmVkZW50aWFsLnVzZXIoKSwgbV9pbml0aWFsQ3JlZGVudGlhbC5wYXNzd29yZCgpKTsK
KyAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgIH0KICAgICBtX2N1cmxS
ZXF1ZXN0LT5zdGFydCgpOwogfQogCkBAIC0zMDUsOCArMzA3LDEwIEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oKQogCiAgICAgICAgIGF1dG8g
cmVxdWVzdENvcHkgPSBuZXdSZXF1ZXN0OwogICAgICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRl
Q3VybFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0Q29weSkpOwotICAgICAgICBpZiAoZGlkQ2hhbmdl
Q3JlZGVudGlhbCAmJiAhbV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpCisgICAgICAgIGlm
IChkaWRDaGFuZ2VDcmVkZW50aWFsICYmICFtX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MobV9pbml0aWFsQ3JlZGVu
dGlhbC51c2VyKCksIG1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKSk7CisgICAgICAgICAg
ICBtX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7CisgICAgICAgIH0KICAgICAgICAgbV9jdXJs
UmVxdWVzdC0+c3RhcnQoKTsKIAogICAgICAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6U3VzcGVu
ZGVkKSB7CkBAIC0zMjAsNyArMzI0LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjp0cnlI
dHRwQXV0aGVudGljYXRpb24oQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGUKIHsKICAg
ICBpZiAoIW1fdXNlci5pc051bGwoKSAmJiAhbV9wYXNzd29yZC5pc051bGwoKSkgewogICAgICAg
ICBhdXRvIHBlcnNpc3RlbmNlID0gbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlID8gV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNp
c3RlbmNlRm9yU2Vzc2lvbiA6IFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7Ci0g
ICAgICAgIHJlc3RhcnRXaXRoQ3JlZGVudGlhbChDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29y
ZCwgcGVyc2lzdGVuY2UpKTsKKyAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKSwgQ3JlZGVudGlhbChtX3VzZXIsIG1fcGFzc3dvcmQsIHBlcnNp
c3RlbmNlKSk7CiAgICAgICAgIG1fdXNlciA9IFN0cmluZygpOwogICAgICAgICBtX3Bhc3N3b3Jk
ID0gU3RyaW5nKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTM0Miw3ICszNDYsNyBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFza0N1cmw6OnRyeUh0dHBBdXRoZW50aWNhdGlvbihBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYmIGNoYWxsZQogICAgICAgICAgICAgICAgICAgICAvLyBTdG9yZSB0aGUgY3JlZGVu
dGlhbCBiYWNrLCBwb3NzaWJseSBhZGRpbmcgaXQgYXMgYSBkZWZhdWx0IGZvciB0aGlzIGRpcmVj
dG9yeS4KICAgICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5uZXR3b3JrU3RvcmFnZVNlc3Np
b24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLnNldChtX3BhcnRpdGlvbiwgY3JlZGVudGlhbCwgY2hh
bGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkudXJs
KCkpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXN0YXJ0V2l0aENyZWRl
bnRpYWwoY3JlZGVudGlhbCk7CisgICAgICAgICAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFs
KGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY3JlZGVudGlhbCk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zNzAsNyArMzc0LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjp0cnlIdHRwQXV0aGVudGljYXRpb24oQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJiBjaGFsbGUKICAgICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uLT5u
ZXR3b3JrU3RvcmFnZVNlc3Npb24oKS5jcmVkZW50aWFsU3RvcmFnZSgpLnNldChtX3BhcnRpdGlv
biwgY3JlZGVudGlhbCwgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjaGFsbGVuZ2UuZmFp
bHVyZVJlc3BvbnNlKCkudXJsKCkpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICByZXN0
YXJ0V2l0aENyZWRlbnRpYWwoY3JlZGVudGlhbCk7CisgICAgICAgICAgICByZXN0YXJ0V2l0aENy
ZWRlbnRpYWwoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjcmVkZW50aWFsKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zOTgsNyArNDAyLDcgQEAgdm9pZCBOZXR3
b3JrRGF0YVRhc2tDdXJsOjp0cnlQcm94eUF1dGhlbnRpY2F0aW9uKFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmcKICAgICAgICAgICAgIEN1cmxDb250ZXh0OjpzaW5nbGV0b24oKS5zZXRE
ZWZhdWx0UHJveHlBdXRoTWV0aG9kKCk7CiAKICAgICAgICAgICAgIGF1dG8gcmVxdWVzdENyZWRl
bnRpYWwgPSBtX2N1cmxSZXF1ZXN0ID8gQ3JlZGVudGlhbChtX2N1cmxSZXF1ZXN0LT51c2VyKCks
IG1fY3VybFJlcXVlc3QtPnBhc3N3b3JkKCksIENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUpIDog
Q3JlZGVudGlhbCgpOwotICAgICAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKHJlcXVlc3RD
cmVkZW50aWFsKTsKKyAgICAgICAgICAgIHJlc3RhcnRXaXRoQ3JlZGVudGlhbChjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCksIHJlcXVlc3RDcmVkZW50aWFsKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC00MDYsNyArNDEwLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tD
dXJsOjp0cnlQcm94eUF1dGhlbnRpY2F0aW9uKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmcKICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENy
ZWRlbnRpYWwoY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKK3ZvaWQgTmV0d29ya0RhdGFU
YXNrQ3VybDo6cmVzdGFydFdpdGhDcmVkZW50aWFsKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJv
dGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQogewogICAgIEFTU0VS
VChtX2N1cmxSZXF1ZXN0KTsKIApAQCAtNDE0LDYgKzQxOCw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ3VybDo6cmVzdGFydFdpdGhDcmVkZW50aWFsKGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRp
YWwpCiAgICAgbV9jdXJsUmVxdWVzdC0+Y2FuY2VsKCk7CiAKICAgICBtX2N1cmxSZXF1ZXN0ID0g
Y3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShwcmV2aW91c1JlcXVlc3QpLCBSZXF1ZXN0U3RhdHVz
OjpSZXVzZWRSZXF1ZXN0KTsKKyAgICBtX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNj
aGVtZShwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiAgICAgbV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC51c2VyKCksIGNyZWRlbnRpYWwucGFzc3dv
cmQoKSk7CiAgICAgbV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmgKaW5kZXgg
YWEwYmE2Y2ZkZWQuLjlhZTRkNzU2YTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJDdXJsUmVxdWVzdENsaWVudC5oIgogI2luY2x1ZGUgIk5ldHdvcmtEYXRh
VGFzay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVzcG9uc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzYsNyArNzcsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCB0cnlIdHRwQXV0aGVudGljYXRpb24oV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJik7CiAgICAgdm9pZCB0cnlQcm94eUF1dGhlbnRpY2F0aW9uKFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYpOwotICAgIHZvaWQgcmVzdGFydFdpdGhDcmVk
ZW50aWFsKGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKKyAgICB2b2lkIHJlc3RhcnRXaXRo
Q3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBXZWJDb3Jl
OjpDcmVkZW50aWFsJik7CiAKICAgICB2b2lkIGFwcGVuZENvb2tpZUhlYWRlcihXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2b2lkIGhhbmRsZUNvb2tpZUhlYWRlcnMoY29uc3QgV2Vi
Q29yZTo6Q3VybFJlc3BvbnNlJik7Cg==
</data>
<flag name="review"
          id="367337"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="367338"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349899</attachid>
            <date>2018-09-17 10:42:45 -0700</date>
            <delta_ts>2018-09-17 11:19:42 -0700</delta_ts>
            <desc>PATCH</desc>
            <filename>189318.diff</filename>
            <type>text/plain</type>
            <size>25149</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNjIxNWRkOGZhOS4uYWE2ZGY3YTQ1MGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOC0wOS0xNCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CisKKyAg
ICAgICAgW0N1cmxdIFJlc3BvbmQgd2l0aCByZXF1ZXN0ZWQgYXV0aGVudGljYXRpb24gc2NoZW1l
IGZvciBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzMTgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4
IENocmlzdGVuc2VuLgorCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0
aW9uczoKKwogMjAxOC0wOS0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRW5hYmxlIFZDUCBmb3IgaU9TIGFuZCByZWVuYWJsZSBpdCBmb3IgTWFjT1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGYw
NjY2MDI0ZjQ2Li42OGY2MjQwODJlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC05MjEsMTAgKzkyMSw3IEBAIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY29udGVudGV4dGVuc2lvbnMgWyBGYWlsdXJlIF0KIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY29udGVudGV4dGVuc2lvbnMvYmxvY2stY29va2llcy5w
aHAgWyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jb250
ZW50ZXh0ZW5zaW9ucy9ibG9jay1jb29raWVzLXdvcmtlci5waHAgWyBQYXNzIEZhaWx1cmUgXQog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLXBhcmFtZXRlci5o
dG1sIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2h0dHBvbmx5
LWNvb2tpZS5wbCBbIFBhc3MgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2luc3BlY3RvciBbIFNraXAgXQotaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9z
ZWN1cmUtY29va2llLWluc2VjdXJlLWNvbm5lY3Rpb24ucGwgWyBQYXNzIEZhaWx1cmUgXQotaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZWN1cmUtY29va2llLXNlY3VyZS1jb25uZWN0
aW9uLnBsIFsgUGFzcyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
dXBncmFkZS1zaW1wbGUtd3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3dlYnNvY2tldC1hbGxvd2VkLXNldHRpbmctY29va2llLWFzLXRoaXJk
LXBhcnR5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS93ZWJzb2NrZXQtYmxvY2tlZC1mcm9tLXNldHRpbmctY29va2llLWFzLXRoaXJkLXBhcnR5
Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtOTQ2LDI4ICs5NDMsMjAgQEAgaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVudGlhbC1hc3luYy5o
dG1sIFsgUGFzcwogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVm
bGlnaHQtY3JlZGVudGlhbC1zeW5jLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtbm90LXN1Y2Nlc3NmdWwuaHRt
bCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hdXRoLXJlamVjdC1wcm90
ZWN0aW9uLXNwYWNlLmh0bWwgWyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
YmFzaWMtYXV0aC1kZWZhdWx0Lmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvYmFzaWMtYXV0aC1ub3Bhc3N3b3JkLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC1ub3VzZXIuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9jYWNoZS1vdmVycmlkZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY29va2llcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0
aC1lbWJlZGRlci5odG1sIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Ny
b3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWNvb2tpZS1zdG9yYWdlLmh0bWwgWyBGYWlsdXJlIF0K
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLW5vLWF1dGhvcml6YXRpb24u
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xvZ291dC5o
dG1sIFsgRmFpbHVyZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L251bGwtYXV0aC5waHAg
WyBQYXNzIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1vdmVycmlkZW1pbWV0eXBlLWNvbnRlbnQtdHlwZS1oZWFkZXIuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCi1odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlLWxvZ2luLWFzeW5jLmh0bWwgWyBGYWls
dXJlIF0KLWh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmUtbG9naW4uaHRtbCBbIEZhaWx1cmUg
XQogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yYW5nZS10ZXN0Lmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQotaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcmVkZW50aWFscy1yZXNw
b25zZVVSTC5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGly
ZWN0LWNyb3NzLW9yaWdpbi1wb3N0LXN5bmMuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcm9zcy1vcmlnaW4tc3luYy5odG1sIFsgRmFpbHVyZSBd
CiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0LWNyb3NzLW9yaWdpbi10cmlwbWlu
ZS5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9u
cy1hbmQtdXNlci1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVmZXJlci5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLWh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcmVtZW1iZXItYmFkLXBhc3N3b3JkLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcmVzcG9uc2UtYWNjZXNzLW9uLWVycm9yLmh0bWwgWyBGYWlsdXJlIF0K
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzcG9uc2UtZW1wdHktYXJyYXlidWZmZXIuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxv
YWQtZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBmMDQ3ZWZjM2UyLi5hYzY5
MzVjYTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA5LTE0ICBCYXN1a2Ug
U3V6dWtpICA8QmFzdWtlLlN1enVraUBzb255LmNvbT4KKworICAgICAgICBbQ3VybF0gUmVzcG9u
ZCB3aXRoIHJlcXVlc3RlZCBhdXRoZW50aWNhdGlvbiBzY2hlbWUgZm9yIGF1dGhlbnRpY2F0aW9u
IGNoYWxsZW5nZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4OTMxOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgQ3VybCBwb3J0IGRlcGVuZHMgb24gbGliY3VybCdzIGF1dGhlbnRpY2F0aW9uIGhhbmRs
aW5nIGJ5IGVuYWJsaW5nIENVUkxBVVRIX0FOWS4gV2l0aCB0aGlzCisgICAgICAgIG1vZGUsIHRo
ZSByb3VuZC10cmlwIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUgY2xpZW50IGFuZCB0aGUgc2Vy
dmVyIGlzIGhhbmRsZWQgYnkgbGliY3VybAorICAgICAgICBpbnRlcm5hbGx5LiBUaGF0J3Mgb2th
eSBmb3IgbWFueSBjYXNlcy4gQnV0IHdoZW4gaW5pdGlhbCByZXF1ZXN0IGhhcyBhIGNyZWRlbnRp
YWxzCisgICAgICAgIChpLmUuIFhNTEh0dHBSZXF1ZXN0KSwgdGhlcmUncyBubyB2YWxpZCBjaGFu
Y2UgdG8gc3RvcmUgY3JlZGVudGlhbCB0byB0aGUgc3RvcmFnZSBiZWNhdXNlCisgICAgICAgIHRo
ZSByZXR1cm5lZCByZXNwb25zZSBpcyBub3QgNDAxLgorCisgICAgICAgIFBhc3NlcyBmb2xsb3dp
bmcgdGVzdHM6CisgICAgICAgIC0gaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9odHRw
b25seS1jb29raWUucGwKKyAgICAgICAgLSBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3NlY3VyZS1jb29raWUtaW5zZWN1cmUtY29ubmVjdGlvbi5wbAorICAgICAgICAtIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VjdXJlLWNvb2tpZS1zZWN1cmUtY29ubmVjdGlvbi5w
bAorICAgICAgICAtIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC1kZWZhdWx0
Lmh0bWwKKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1h
dXRob3JpemF0aW9uLmh0bWwKKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2xv
Z291dC5odG1sCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9udWxsLWF1dGgu
cGhwCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi1hc3luYy5o
dG1sCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZS1sb2dpbi5odG1sCisg
ICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdC1jcmVkZW50aWFscy1y
ZXNwb25zZVVSTC5odG1sCisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZW1l
bWJlci1iYWQtcGFzc3dvcmQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJsSGFuZGxlOjpzZXRIdHRwQXV0aFVzZXJQYXNz
KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxIYW5kbGU6OmVuYWJsZUh0dHBBdXRoZW50aWNhdGlv
bik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpzZXRBdXRoZW50aWNhdGlvblNjaGVtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6c2V0dXBUcmFuc2Zlcik6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpnZXRDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpyZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQWZ0ZXJXaWxsU2VuZFJlcXVl
c3QpOgorCiAyMDE4LTA5LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFbmFibGUgVkNQIGZvciBpT1MgYW5kIHJlZW5hYmxlIGl0IGZvciBNYWNPUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCmluZGV4
IDkwYjBmZGE1M2I1Li4wMWE4NmUzNTliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMjYzLDggKzI2Myw4IEBAIHByaXZhdGU6
CiAKICAgICBib29sIHNob3VsZFJlZGlyZWN0QXNHRVQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjcm9zc09yaWdpbik7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IGdldENyZWRlbnRpYWwoUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCk7Ci0gICAgdm9p
ZCByZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3Qg
U3RyaW5nJiBwYXNzd29yZCk7CisgICAgc3RkOjpvcHRpb25hbDxDcmVkZW50aWFsPiBnZXRDcmVk
ZW50aWFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wpOworICAgIHZvaWQgcmVzdGFydFJl
cXVlc3RXaXRoQ3JlZGVudGlhbChjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CiAKICAgICB2b2lkIGhhbmRsZURhdGFVUkwoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKaW5kZXgg
ZDM2NDc4ZWJmY2UuLjljODc4MDdhMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4dC5jcHAKQEAgLTUxNCwxNSArNTE0LDExIEBA
IHZvaWQgQ3VybEhhbmRsZTo6ZW5hYmxlQWxsb3dlZFByb3RvY29scygpCiAgICAgY3VybF9lYXN5
X3NldG9wdChtX2hhbmRsZSwgQ1VSTE9QVF9QUk9UT0NPTFMsIGFsbG93ZWRQcm90b2NvbHMpOwog
fQogCi12b2lkIEN1cmxIYW5kbGU6OmVuYWJsZUh0dHBBdXRoZW50aWNhdGlvbihsb25nIG9wdGlv
bikKLXsKLSAgICBjdXJsX2Vhc3lfc2V0b3B0KG1faGFuZGxlLCBDVVJMT1BUX0hUVFBBVVRILCBv
cHRpb24pOwotfQotCi12b2lkIEN1cmxIYW5kbGU6OnNldEh0dHBBdXRoVXNlclBhc3MoY29uc3Qg
U3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpbmcmIHBhc3N3b3JkKQordm9pZCBDdXJsSGFuZGxlOjpz
ZXRIdHRwQXV0aFVzZXJQYXNzKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNz
d29yZCwgbG9uZyBhdXRoVHlwZSkKIHsKICAgICBjdXJsX2Vhc3lfc2V0b3B0KG1faGFuZGxlLCBD
VVJMT1BUX1VTRVJOQU1FLCB1c2VyLnV0ZjgoKS5kYXRhKCkpOwogICAgIGN1cmxfZWFzeV9zZXRv
cHQobV9oYW5kbGUsIENVUkxPUFRfUEFTU1dPUkQsIHBhc3N3b3JkLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIGN1cmxfZWFzeV9zZXRvcHQobV9oYW5kbGUsIENVUkxPUFRfSFRUUEFVVEgsIGF1dGhUeXBl
KTsKIH0KIAogdm9pZCBDdXJsSGFuZGxlOjpzZXRDQUNlcnRQYXRoKGNvbnN0IGNoYXIqIHBhdGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ29udGV4
dC5oCmluZGV4IDhhOTQ1MjBlNjdmLi43ZDk3MTFjYWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxDb250ZXh0LmgKQEAgLTI1MSw4ICsyNTEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmFibGVBY2NlcHRFbmNvZGluZygpOwogICAgIHZvaWQg
ZW5hYmxlQWxsb3dlZFByb3RvY29scygpOwogCi0gICAgdm9pZCBlbmFibGVIdHRwQXV0aGVudGlj
YXRpb24obG9uZyk7Ci0gICAgdm9pZCBzZXRIdHRwQXV0aFVzZXJQYXNzKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0SHR0cEF1dGhVc2VyUGFzcyhjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBsb25nIGF1dGhUeXBlID0gQ1VSTEFVVEhfQU5ZKTsKIAogICAg
IHZvaWQgc2V0Q0FDZXJ0UGF0aChjb25zdCBjaGFyKik7CiAgICAgdm9pZCBzZXRTc2xWZXJpZnlQ
ZWVyKFZlcmlmeVBlZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKaW5kZXggMmQ4YWZmMmM5YjcuLjdmMTEyMzRmMTk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVx
dWVzdC5jcHAKQEAgLTU3LDYgKzU3LDMxIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVD
bGllbnQoKQogICAgIG1fbWVzc2FnZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAordm9pZCBDdXJsUmVx
dWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWUgc2NoZW1lKQoreworICAgIHN3aXRjaCAoc2NoZW1lKSB7CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICAgICAgbV9hdXRo
VHlwZSA9IENVUkxBVVRIX0JBU0lDOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgICAgICBtX2F1dGhU
eXBlID0gQ1VSTEFVVEhfRElHRVNUOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgICAgICBtX2F1dGhUeXBlID0g
Q1VSTEFVVEhfTlRMTTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgICAgICBtX2F1dGhUeXBlID0gQ1VS
TEFVVEhfTkVHT1RJQVRFOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAg
IG1fYXV0aFR5cGUgPSBDVVJMQVVUSF9BTlk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwog
dm9pZCBDdXJsUmVxdWVzdDo6c2V0VXNlclBhc3MoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBT
dHJpbmcmIHBhc3N3b3JkKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xODYs
OCArMjExLDcgQEAgQ1VSTCogQ3VybFJlcXVlc3Q6OnNldHVwVHJhbnNmZXIoKQogICAgIH0KIAog
ICAgIGlmICghbV91c2VyLmlzRW1wdHkoKSB8fCAhbV9wYXNzd29yZC5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgbV9jdXJsSGFuZGxlLT5lbmFibGVIdHRwQXV0aGVudGljYXRpb24oQ1VSTEFVVEhfQU5Z
KTsKLSAgICAgICAgbV9jdXJsSGFuZGxlLT5zZXRIdHRwQXV0aFVzZXJQYXNzKG1fdXNlciwgbV9w
YXNzd29yZCk7CisgICAgICAgIG1fY3VybEhhbmRsZS0+c2V0SHR0cEF1dGhVc2VyUGFzcyhtX3Vz
ZXIsIG1fcGFzc3dvcmQsIG1fYXV0aFR5cGUpOwogICAgIH0KIAogICAgIG1fY3VybEhhbmRsZS0+
c2V0SGVhZGVyQ2FsbGJhY2tGdW5jdGlvbihkaWRSZWNlaXZlSGVhZGVyQ2FsbGJhY2ssIHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxS
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVl
c3QuaAppbmRleCA5NThjNzc3Yjc3NS4uODhlZTJlZWZkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiQ3VybFNTTFZlcmlmaWVyLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5o
IgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkTWV0cmljcy5oIgorI2luY2x1ZGUgIlByb3RlY3Rpb25T
cGFjZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9NZXNz
YWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgpAQCAtNjcsNiArNjgs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q3VybFJlcXVlc3QoKSA9IGRlZmF1bHQ7CiAKICAg
ICB2b2lkIGludmFsaWRhdGVDbGllbnQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1
dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFVzZXJQYXNzKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgc2V0U3RhcnRUaW1lKGNvbnN0IE1vbm90b25pY1RpbWUmIHN0
YXJ0VGltZSkgeyBtX3JlcXVlc3RTdGFydFRpbWUgPSBzdGFydFRpbWU7IH0KIApAQCAtMTY1LDYg
KzE2Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBT
dHJpbmcgbV91c2VyOwogICAgIFN0cmluZyBtX3Bhc3N3b3JkOworICAgIHVuc2lnbmVkIGxvbmcg
bV9hdXRoVHlwZSB7IENVUkxBVVRIX0FOWSB9OwogICAgIGJvb2wgbV9zaG91bGRTdXNwZW5kIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlTXVsdGlwYXJ0IHsgZmFsc2UgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxl
Q3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VI
YW5kbGVDdXJsLmNwcAppbmRleCA5OWZlMWMxNDQ4YS4uYTRiY2ViODI3YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZUN1cmwuY3BwCkBAIC04NSw4ICs4NSwxMCBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiAKICAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShy
ZXF1ZXN0KSk7CiAKLSAgICBpZiAoYXV0byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChkLT5t
X2ZpcnN0UmVxdWVzdCwgZmFsc2UpKQotICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2Vy
UGFzcyhjcmVkZW50aWFsLT5maXJzdCwgY3JlZGVudGlhbC0+c2Vjb25kKTsKKyAgICBpZiAoYXV0
byBjcmVkZW50aWFsID0gZ2V0Q3JlZGVudGlhbChkLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7
CisgICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPnVzZXIo
KSwgY3JlZGVudGlhbC0+cGFzc3dvcmQoKSk7CisgICAgICAgIGQtPm1fY3VybFJlcXVlc3QtPnNl
dEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
SFRUUEJhc2ljKTsKKyAgICB9CiAKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRTdGFydFRpbWUo
ZC0+bV9zdGFydFRpbWUpOwogICAgIGQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CkBAIC0yMzEs
NyArMjMzLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGwKICAgICAgICAgICAgIHVybFRvU3Rv
cmUgPSBjaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlKCkudXJsKCk7CiAgICAgICAgIENyZWRlbnRp
YWxTdG9yYWdlOjpkZWZhdWx0Q3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQocGFydGl0aW9uLCBjcmVk
ZW50aWFsLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIHVybFRvU3RvcmUpOwogCi0gICAg
ICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwoY3JlZGVudGlhbC51c2VyKCksIGNyZWRl
bnRpYWwucGFzc3dvcmQoKSk7CisgICAgICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwo
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjcmVkZW50aWFsKTsKIAogICAgICAgICBkLT5t
X3VzZXIgPSBTdHJpbmcoKTsKICAgICAgICAgZC0+bV9wYXNzID0gU3RyaW5nKCk7CkBAIC0yNTYs
NyArMjU4LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGwKICAgICAgICAgICAgICAgICAgICAg
Q3JlZGVudGlhbFN0b3JhZ2U6OmRlZmF1bHRDcmVkZW50aWFsU3RvcmFnZSgpLnNldChwYXJ0aXRp
b24sIGNyZWRlbnRpYWwsIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKSwgY2hhbGxlbmdlLmZh
aWx1cmVSZXNwb25zZSgpLnVybCgpKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
ICAgICByZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLCBjcmVk
ZW50aWFsLnBhc3N3b3JkKCkpOworICAgICAgICAgICAgICAgIHJlc3RhcnRSZXF1ZXN0V2l0aENy
ZWRlbnRpYWwoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjcmVkZW50aWFsKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI5MSw3ICsy
OTMsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZQogICAgICAgICB9CiAgICAgfQogCi0gICAg
cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjcmVkZW50aWFsLnVzZXIoKSwgY3JlZGVudGlh
bC5wYXNzd29yZCgpKTsKKyAgICByZXN0YXJ0UmVxdWVzdFdpdGhDcmVkZW50aWFsKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKSwgY3JlZGVudGlhbCk7CiAKICAgICBjbGVhckF1dGhlbnRpY2F0
aW9uKCk7CiB9CkBAIC0zMzMsMTMgKzMzNSwxNSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4gUmVzb3VyY2VIYW5kbGU6OmdldENyZWRlbnRpYWwoUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib29sIHJlZGlyZWN0KQorc3RkOjpvcHRpb25hbDxDcmVkZW50aWFsPiBS
ZXNvdXJjZUhhbmRsZTo6Z2V0Q3JlZGVudGlhbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgcmVkaXJlY3QpCiB7CiAgICAgLy8gbV91c2VyL21fcGFzcyBhcmUgY3JlZGVudGlh
bHMgZ2l2ZW4gbWFudWFsbHksIGZvciBpbnN0YW5jZSwgYnkgdGhlIGFyZ3VtZW50cyBwYXNzZWQg
dG8gWE1MSHR0cFJlcXVlc3Qub3BlbigpLgotICAgIFN0cmluZyBwYXJ0aXRpb24gPSByZXF1ZXN0
LmNhY2hlUGFydGl0aW9uKCk7CisgICAgQ3JlZGVudGlhbCBjcmVkZW50aWFsIHsgZC0+bV91c2Vy
LCBkLT5tX3Bhc3MsIENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmUgfTsKIAogICAgIGlmIChzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpKSB7Ci0gICAgICAgIGlmIChkLT5tX3VzZXIuaXNFbXB0
eSgpICYmIGQtPm1fcGFzcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgU3RyaW5nIHBhcnRpdGlvbiA9
IHJlcXVlc3QuY2FjaGVQYXJ0aXRpb24oKTsKKworICAgICAgICBpZiAoY3JlZGVudGlhbC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MTc0MDUwPiAtIEZvciBV
UkxzIHRoYXQgbWF0Y2ggdGhlIHBhdGhzIG9mIHRob3NlIHByZXZpb3VzbHkgY2hhbGxlbmdlZCBm
b3IgSFRUUCBCYXNpYyBhdXRoZW50aWNhdGlvbiwgCiAgICAgICAgICAgICAvLyB0cnkgYW5kIHJl
dXNlIHRoZSBjcmVkZW50aWFsIHByZWVtcHRpdmVseSwgYXMgYWxsb3dlZCBieSBSRkMgMjYxNy4K
ICAgICAgICAgICAgIGQtPm1faW5pdGlhbENyZWRlbnRpYWwgPSBDcmVkZW50aWFsU3RvcmFnZTo6
ZGVmYXVsdENyZWRlbnRpYWxTdG9yYWdlKCkuZ2V0KHBhcnRpdGlvbiwgcmVxdWVzdC51cmwoKSk7
CkBAIC0zNDgsMjUgKzM1MiwxNyBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+IFJlc291cmNlSGFuZGxlOjpnZXRDcmVkZW50aWFsKFJlc291cmNlUgogICAgICAgICAg
ICAgLy8gYmVmb3JlIHNlbmRpbmcgYSByZXF1ZXN0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRv
IGltcGxlbWVudCBsb2dvdXQgYnkgc2VuZGluZyBhbgogICAgICAgICAgICAgLy8gWE1MSHR0cFJl
cXVlc3Qgd2l0aCBrbm93biBpbmNvcnJlY3QgY3JlZGVudGlhbHMsIGFuZCBhYm9ydGluZyBpdCBp
bW1lZGlhdGVseSAoc28gdGhhdAogICAgICAgICAgICAgLy8gYW4gYXV0aGVudGljYXRpb24gZGlh
bG9nIGRvZXNuJ3QgcG9wIHVwKS4KLSAgICAgICAgICAgIENyZWRlbnRpYWxTdG9yYWdlOjpkZWZh
dWx0Q3JlZGVudGlhbFN0b3JhZ2UoKS5zZXQocGFydGl0aW9uLCBDcmVkZW50aWFsKGQtPm1fdXNl
ciwgZC0+bV9wYXNzLCBDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKSwgcmVxdWVzdC51cmwoKSk7
CisgICAgICAgICAgICBDcmVkZW50aWFsU3RvcmFnZTo6ZGVmYXVsdENyZWRlbnRpYWxTdG9yYWdl
KCkuc2V0KHBhcnRpdGlvbiwgY3JlZGVudGlhbCwgcmVxdWVzdC51cmwoKSk7CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBTdHJpbmcgdXNlciA9IGQtPm1fdXNlcjsKLSAgICBTdHJpbmcgcGFzc3dv
cmQgPSBkLT5tX3Bhc3M7Ci0KLSAgICBpZiAoIWQtPm1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIHVzZXIgPSBkLT5tX2luaXRpYWxDcmVkZW50aWFsLnVzZXIoKTsKLSAg
ICAgICAgcGFzc3dvcmQgPSBkLT5tX2luaXRpYWxDcmVkZW50aWFsLnBhc3N3b3JkKCk7Ci0gICAg
fQotCi0gICAgaWYgKHVzZXIuaXNFbXB0eSgpICYmIHBhc3N3b3JkLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWQtPm1faW5pdGlhbENyZWRlbnRpYWwu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZC0+bV9pbml0aWFsQ3JlZGVudGlhbDsKIAotICAg
IHJldHVybiBzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+KHVzZXIsIHBhc3N3b3JkKTsKKyAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlOjpyZXN0YXJ0UmVx
dWVzdFdpdGhDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgdXNlciwgY29uc3QgU3RyaW5nJiBwYXNz
d29yZCkKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRpYWwo
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwm
IGNyZWRlbnRpYWwpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMzc3LDcg
KzM3Myw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlc3RhcnRSZXF1ZXN0V2l0aENyZWRlbnRp
YWwoY29uc3QgU3RyaW5nJiB1c2VyLCBjb25zdCBTdHJpCiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+
Y2FuY2VsKCk7CiAKICAgICBkLT5tX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RG
TW92ZShwcmV2aW91c1JlcXVlc3QpLCBSZXF1ZXN0U3RhdHVzOjpSZXVzZWRSZXF1ZXN0KTsKLSAg
ICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyh1c2VyLCBwYXNzd29yZCk7CisgICAgZC0+
bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUocHJvdGVjdGlvblNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIGQtPm1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNz
KGNyZWRlbnRpYWwudXNlcigpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkpOwogICAgIGQtPm1fY3Vy
bFJlcXVlc3QtPnNldFN0YXJ0VGltZShkLT5tX3N0YXJ0VGltZSk7CiAgICAgZC0+bV9jdXJsUmVx
dWVzdC0+c3RhcnQoKTsKIH0KQEAgLTM4NSw4ICszODIsMTEgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cmVzdGFydFJlcXVlc3RXaXRoQ3JlZGVudGlhbChjb25zdCBTdHJpbmcmIHVzZXIsIGNvbnN0
IFN0cmkKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtTG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
UmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8
Y2hhcj4mIGRhdGEpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQo
IXJlcXVlc3QuaXNFbXB0eSgpKTsKIAogICAgIFN5bmNocm9ub3VzTG9hZGVyQ2xpZW50IGNsaWVu
dDsKKyAgICBjbGllbnQuc2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSA9PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKTsKKwogICAgIGJvb2wgZGVm
ZXJzTG9hZGluZyA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gdHJ1ZTsK
ICAgICBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmID0gdHJ1ZTsKQEAgLTQwMSw2ICs0
MDEsMTIgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgKIAogICAgIGF1dG8gcmVxdWVzdENvcHkg
PSBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpOwogICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdCA9
IGhhbmRsZS0+Y3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0Q29weSkpOworCisgICAg
aWYgKGF1dG8gY3JlZGVudGlhbCA9IGhhbmRsZS0+Z2V0Q3JlZGVudGlhbChoYW5kbGUtPmQtPm1f
Zmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKKyAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0
LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT51c2VyKCksIGNyZWRlbnRpYWwtPnBhc3N3b3JkKCkp
OworICAgICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2No
ZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKKyAgICB9
CisKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnNldFN0YXJ0VGltZShoYW5kbGUtPmQt
Pm1fc3RhcnRUaW1lKTsKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CiAK
QEAgLTUxOCw3ICs1MjQsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjb250aW51ZUFmdGVyV2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgZC0+bV9jdXJsUmVx
dWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOwogCiAgICAgaWYgKHNo
b3VsZEZvcndhcmRDcmVkZW50aWFsICYmIGNyZWRlbnRpYWwpCi0gICAgICAgIGQtPm1fY3VybFJl
cXVlc3QtPnNldFVzZXJQYXNzKGNyZWRlbnRpYWwtPmZpcnN0LCBjcmVkZW50aWFsLT5zZWNvbmQp
OworICAgICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLT51c2Vy
KCksIGNyZWRlbnRpYWwtPnBhc3N3b3JkKCkpOwogCiAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0
U3RhcnRUaW1lKGQtPm1fc3RhcnRUaW1lKTsKICAgICBkLT5tX2N1cmxSZXF1ZXN0LT5zdGFydCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA3NjZhZjZiNmE1ZS4uNzg0YTNkODI0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTgtMDktMTQgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnku
Y29tPgorCisgICAgICAgIFtDdXJsXSBSZXNwb25kIHdpdGggcmVxdWVzdGVkIGF1dGhlbnRpY2F0
aW9uIHNjaGVtZSBmb3IgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzE4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBDdXJsIHBvcnQgZGVwZW5kcyBvbiBs
aWJjdXJsJ3MgYXV0aGVudGljYXRpb24gaGFuZGxpbmcgYnkgZW5hYmxpbmcgQ1VSTEFVVEhfQU5Z
LiBXaXRoIHRoaXMKKyAgICAgICAgbW9kZSwgdGhlIHJvdW5kLXRyaXAgY29tbXVuaWNhdGlvbiBi
ZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgaXMgaGFuZGxlZCBieSBsaWJjdXJsCisg
ICAgICAgIGludGVybmFsbHkuIFRoYXQncyBva2F5IGZvciBtYW55IGNhc2VzLiBCdXQgd2hlbiBp
bml0aWFsIHJlcXVlc3QgaGFzIGEgY3JlZGVudGlhbHMKKyAgICAgICAgKGkuZS4gWE1MSHR0cFJl
cXVlc3QpLCB0aGVyZSdzIG5vIHZhbGlkIGNoYW5jZSB0byBzdG9yZSBjcmVkZW50aWFsIHRvIHRo
ZSBzdG9yYWdlIGJlY2F1c2UKKyAgICAgICAgdGhlIHJldHVybmVkIHJlc3BvbnNlIGlzIG5vdCA0
MDEuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjpOZXR3b3JrRGF0YVRh
c2tDdXJsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJs
Ojp0cnlIdHRwQXV0aGVudGljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRh
c2tDdXJsOjp0cnlQcm94eUF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0RhdGFUYXNrQ3VybDo6cmVzdGFydFdpdGhDcmVkZW50aWFsKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuaDoKKwogMjAxOC0wOS0xNyAgV29vZHJv
dyBXYW5nICA8d29vZHJvd193YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhciBwZW5kaW5n
IHJlc291cmNlIGxvYWQgc3RhdGlzdGljcycgd3JpdGVzIGFmdGVyIHRlc3RzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3Vy
bC5jcHAKaW5kZXggMTgzYjIxOWI2YmUuLjRkNTA0Njc0NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3Bw
CkBAIC02NCw4ICs2NCwxMCBAQCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpOZXR3b3JrRGF0YVRhc2tD
dXJsKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhcwogICAgIH0KIAogICAg
IG1fY3VybFJlcXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKLSAg
ICBpZiAoIW1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpKQorICAgIGlmICghbV9pbml0aWFs
Q3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0VXNlclBh
c3MobV9pbml0aWFsQ3JlZGVudGlhbC51c2VyKCksIG1faW5pdGlhbENyZWRlbnRpYWwucGFzc3dv
cmQoKSk7CisgICAgICAgIG1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKKyAgICB9CiAgICAg
bV9jdXJsUmVxdWVzdC0+c2V0U3RhcnRUaW1lKG1fc3RhcnRUaW1lKTsKICAgICBtX2N1cmxSZXF1
ZXN0LT5zdGFydCgpOwogfQpAQCAtMzExLDggKzMxMywxMCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a0N1cmw6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKCkKIAogICAgICAgICBhdXRvIHJlcXVl
c3RDb3B5ID0gbmV3UmVxdWVzdDsKICAgICAgICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxS
ZXF1ZXN0KFdURk1vdmUocmVxdWVzdENvcHkpKTsKLSAgICAgICAgaWYgKGRpZENoYW5nZUNyZWRl
bnRpYWwgJiYgIW1faW5pdGlhbENyZWRlbnRpYWwuaXNFbXB0eSgpKQorICAgICAgICBpZiAoZGlk
Q2hhbmdlQ3JlZGVudGlhbCAmJiAhbV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgIG1fY3VybFJlcXVlc3QtPnNldFVzZXJQYXNzKG1faW5pdGlhbENyZWRlbnRpYWwu
dXNlcigpLCBtX2luaXRpYWxDcmVkZW50aWFsLnBhc3N3b3JkKCkpOworICAgICAgICAgICAgbV9j
dXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICB9CiAgICAgICAgIG1fY3VybFJlcXVl
c3QtPnNldFN0YXJ0VGltZShtX3N0YXJ0VGltZSk7CiAgICAgICAgIG1fY3VybFJlcXVlc3QtPnN0
YXJ0KCk7CiAKQEAgLTMyNyw3ICszMzEsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OnRy
eUh0dHBBdXRoZW50aWNhdGlvbihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZQogewog
ICAgIGlmICghbV91c2VyLmlzTnVsbCgpICYmICFtX3Bhc3N3b3JkLmlzTnVsbCgpKSB7CiAgICAg
ICAgIGF1dG8gcGVyc2lzdGVuY2UgPSBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgPyBXZWJDb3JlOjpDcmVkZW50aWFsUGVy
c2lzdGVuY2VGb3JTZXNzaW9uIDogV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZTsK
LSAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKENyZWRlbnRpYWwobV91c2VyLCBtX3Bhc3N3
b3JkLCBwZXJzaXN0ZW5jZSkpOworICAgICAgICByZXN0YXJ0V2l0aENyZWRlbnRpYWwoY2hhbGxl
bmdlLnByb3RlY3Rpb25TcGFjZSgpLCBDcmVkZW50aWFsKG1fdXNlciwgbV9wYXNzd29yZCwgcGVy
c2lzdGVuY2UpKTsKICAgICAgICAgbV91c2VyID0gU3RyaW5nKCk7CiAgICAgICAgIG1fcGFzc3dv
cmQgPSBTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzQ5LDcgKzM1Myw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrQ3VybDo6dHJ5SHR0cEF1dGhlbnRpY2F0aW9uKEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiYgY2hhbGxlCiAgICAgICAgICAgICAgICAgICAgIC8vIFN0b3JlIHRoZSBjcmVk
ZW50aWFsIGJhY2ssIHBvc3NpYmx5IGFkZGluZyBpdCBhcyBhIGRlZmF1bHQgZm9yIHRoaXMgZGly
ZWN0b3J5LgogICAgICAgICAgICAgICAgICAgICBtX3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0aW9uLCBjcmVkZW50aWFsLCBj
aGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5mYWlsdXJlUmVzcG9uc2UoKS51
cmwoKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJlc3RhcnRXaXRoQ3Jl
ZGVudGlhbChjcmVkZW50aWFsKTsKKyAgICAgICAgICAgICAgICByZXN0YXJ0V2l0aENyZWRlbnRp
YWwoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLCBjcmVkZW50aWFsKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTM3Nyw3ICszODEsNyBA
QCB2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OnRyeUh0dHBBdXRoZW50aWNhdGlvbihBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZQogICAgICAgICAgICAgICAgICAgICBtX3Nlc3Npb24t
Pm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNyZWRlbnRpYWxTdG9yYWdlKCkuc2V0KG1fcGFydGl0
aW9uLCBjcmVkZW50aWFsLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNoYWxsZW5nZS5m
YWlsdXJlUmVzcG9uc2UoKS51cmwoKSk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJl
c3RhcnRXaXRoQ3JlZGVudGlhbChjcmVkZW50aWFsKTsKKyAgICAgICAgICAgIHJlc3RhcnRXaXRo
Q3JlZGVudGlhbChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCksIGNyZWRlbnRpYWwpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTQwNSw3ICs0MDksNyBAQCB2b2lkIE5l
dHdvcmtEYXRhVGFza0N1cmw6OnRyeVByb3h5QXV0aGVudGljYXRpb24oV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZwogICAgICAgICAgICAgQ3VybENvbnRleHQ6OnNpbmdsZXRvbigpLnNl
dERlZmF1bHRQcm94eUF1dGhNZXRob2QoKTsKIAogICAgICAgICAgICAgYXV0byByZXF1ZXN0Q3Jl
ZGVudGlhbCA9IG1fY3VybFJlcXVlc3QgPyBDcmVkZW50aWFsKG1fY3VybFJlcXVlc3QtPnVzZXIo
KSwgbV9jdXJsUmVxdWVzdC0+cGFzc3dvcmQoKSwgQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSkg
OiBDcmVkZW50aWFsKCk7Ci0gICAgICAgICAgICByZXN0YXJ0V2l0aENyZWRlbnRpYWwocmVxdWVz
dENyZWRlbnRpYWwpOworICAgICAgICAgICAgcmVzdGFydFdpdGhDcmVkZW50aWFsKGNoYWxsZW5n
ZS5wcm90ZWN0aW9uU3BhY2UoKSwgcmVxdWVzdENyZWRlbnRpYWwpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKQEAgLTQxMyw3ICs0MTcsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a0N1cmw6OnRyeVByb3h5QXV0aGVudGljYXRpb24oV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZwogICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OnJlc3RhcnRXaXRo
Q3JlZGVudGlhbChjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQordm9pZCBOZXR3b3JrRGF0
YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UsIGNvbnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCiB7CiAgICAgQVNT
RVJUKG1fY3VybFJlcXVlc3QpOwogCkBAIC00MjEsNiArNDI1LDcgQEAgdm9pZCBOZXR3b3JrRGF0
YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVu
dGlhbCkKICAgICBtX2N1cmxSZXF1ZXN0LT5jYW5jZWwoKTsKIAogICAgIG1fY3VybFJlcXVlc3Qg
PSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHByZXZpb3VzUmVxdWVzdCksIFJlcXVlc3RTdGF0
dXM6OlJldXNlZFJlcXVlc3QpOworICAgIG1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9u
U2NoZW1lKHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKTsKICAgICBtX2N1
cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhjcmVkZW50aWFsLnVzZXIoKSwgY3JlZGVudGlhbC5wYXNz
d29yZCgpKTsKICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRTdGFydFRpbWUobV9zdGFydFRpbWUpOwog
ICAgIG1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuaAppbmRleCAyNWMxYTgzZDdj
Zi4uY2I5NzM2MGMzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIkN1cmxSZXF1ZXN0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Byb3RlY3Rpb25TcGFjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03Niw3ICs3Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHRyeUh0dHBBdXRoZW50aWNhdGlvbihXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYmKTsKICAgICB2b2lkIHRyeVByb3h5QXV0aGVudGljYXRpb24oV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJik7Ci0gICAgdm9pZCByZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29u
c3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOworICAgIHZvaWQgcmVzdGFydFdpdGhDcmVkZW50aWFs
KGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRp
YWwmKTsKIAogICAgIHZvaWQgYXBwZW5kQ29va2llSGVhZGVyKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwogICAgIHZvaWQgaGFuZGxlQ29va2llSGVhZGVycyhjb25zdCBXZWJDb3JlOjpDdXJs
UmVzcG9uc2UmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>