<?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>176128</bug_id>
          
          <creation_ts>2017-08-30 15:17:26 -0700</creation_ts>
          <short_desc>WKNavigationDelegatePrivate client redirect SPI needs to be able to detect redirects scheduled before the document finishes loading</short_desc>
          <delta_ts>2017-08-31 14:26:30 -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>WebKit2</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343734</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-08-30 15:17:26 -0700</bug_when>
    <thetext>rdar://problem/34068476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343736</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-30 15:18:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/34173692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343765</commentid>
    <comment_count>2</comment_count>
      <attachid>319416</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-08-30 15:56:19 -0700</bug_when>
    <thetext>Created attachment 319416
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343972</commentid>
    <comment_count>3</comment_count>
      <attachid>319416</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 10:10:11 -0700</bug_when>
    <thetext>Comment on attachment 319416
Patch v1

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

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:325
&gt;      webPage-&gt;injectedBundleLoaderClient().willPerformClientRedirectForFrame(*webPage, *m_frame, url, interval, fireDate);
&gt; +
&gt; +    // Notify the UIProcess.
&gt; +    webPage-&gt;send(Messages::WebPageProxy::DidScheduleClientRedirectForFrame(m_frame-&gt;frameID(), url.string(), interval));

Why the different names?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343976</commentid>
    <comment_count>4</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-08-31 10:16:59 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #3)
&gt; Comment on attachment 319416 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319416&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:325
&gt; &gt;      webPage-&gt;injectedBundleLoaderClient().willPerformClientRedirectForFrame(*webPage, *m_frame, url, interval, fireDate);
&gt; &gt; +
&gt; &gt; +    // Notify the UIProcess.
&gt; &gt; +    webPage-&gt;send(Messages::WebPageProxy::DidScheduleClientRedirectForFrame(m_frame-&gt;frameID(), url.string(), interval));
&gt; 
&gt; Why the different names?

I think I meant to rename to &apos;willPerform&apos; to be consistent but didn&apos;t get around to it. I&apos;ll rename it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343982</commentid>
    <comment_count>5</comment_count>
      <attachid>319474</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-08-31 10:31:53 -0700</bug_when>
    <thetext>Created attachment 319474
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344020</commentid>
    <comment_count>6</comment_count>
      <attachid>319474</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 11:21:34 -0700</bug_when>
    <thetext>Comment on attachment 319474
Patch v2

Rejecting attachment 319474 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;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 319474, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
.webkit.org/git/WebKit
   cc798d2..7719687  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 221425 = cc798d25c577d89d7f1da0d0228725ae19ff2952
r221426 = 7719687905e06b12cc8e23043552456d657754d8
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/4417728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344052</commentid>
    <comment_count>7</comment_count>
      <attachid>319495</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2017-08-31 12:03:38 -0700</bug_when>
    <thetext>Created attachment 319495
v3

Basically the same as v2, but rebased, updated the dates in the changelog, and used git-format-patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344133</commentid>
    <comment_count>8</comment_count>
      <attachid>319495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 14:26:28 -0700</bug_when>
    <thetext>Comment on attachment 319495
v3

Clearing flags on attachment: 319495

Committed r221444: &lt;http://trac.webkit.org/changeset/221444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344134</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 14:26:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319416</attachid>
            <date>2017-08-30 15:56:19 -0700</date>
            <delta_ts>2017-08-31 10:31:53 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>v1.patch</filename>
            <type>text/plain</type>
            <size>31605</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDEwNjBjNDA1NDZjYTE4NTQwMjcxNzJjODNkYTNjNTk2NTMzNDljNGYKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgQXVnIDMw
IDE0OjU3OjQwIDIwMTcgLTA3MDAKCiAgICBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUgY2xp
ZW50IHJlZGlyZWN0IFNQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGRldGVjdCByZWRpcmVjdHMgc2No
ZWR1bGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgZmluaXNoZXMgbG9hZGluZwogICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAogICAgcmRhcjovL3Byb2JsZW0v
MzQwNjg0NzYKICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIFNv
dXJjZS9XZWJDb3JlOgogICAgCiAgICBSZW1vdmVkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHNpbmNlIG5vIGNsaWVudCBjYXJlcyBhYm91dCB0
aGlzIGV2ZW50IGFueW1vcmUuCiAgICBBbHNvIHJlbW92ZWQgRnJhbWVMb2FkZXI6OnBlcmZvcm1D
bGllbnRSZWRpcmVjdCgpIHNpbmNlIGl0IHdvdWxkbid0IGRvIGFueXRoaW5nIGJ1dCBjYWxsIGNo
YW5nZUxvY2F0aW9uKCkuCiAgICAKICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGNoYW5nZSBpbiBmdW5j
dGlvbmFsaXR5LgogICAgCiAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgogICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKICAgICog
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgogICAgCiAgICBTb3VyY2UvV2ViS2l0Ogog
ICAgCiAgICBfd2ViVmlldzpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Q6IGlzbid0IHVzZWZ1bCBm
b3IgZGVsZWdhdGVzIHRoYXQgd2FudCB0byBrbm93IGFib3V0IGNsaWVudCByZWRpcmVjdHMKICAg
IHN0YXJ0ZWQgYmVmb3JlIHRoZSBkb2N1bWVudCBpcyBmaW5pc2hlZCBsb2FkaW5nLiBUaGlzIGlz
IGJlY2F1c2UgdGhlIG1ldGhvZCB3b3VsZCBiZSBjYWxsZWQgYWZ0ZXIgdGhlCiAgICBuYXZpZ2F0
aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVzIGFuZCB0aGUgbmF2aWdhdGlvbiBmb3IgdGhlIHJl
ZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhpcyBoYXBwZW5zIGluCiAgICBhIGxhdGVyIGl0ZXJh
dGlvbiBvZiB0aGUgcnVuIGxvb3AsIHRoZSBkb2N1bWVudCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBs
b2FkaW5nLiBBZGRyZXNzIHRoaXMgYnkgcmVwbGFjaW5nCiAgICB0aGUgbWV0aG9kIHdpdGggdHdv
IHRoYXQgZ2l2ZSB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0
IHdoZW4gY2xpZW50IHJlZGlyZWN0cyBhcmUKICAgIHNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCiAg
ICAKICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CiAgICAoQVBJOjpO
YXZpZ2F0aW9uQ2xpZW50OjpkaWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0KToKICAgIChBUEk6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KToKICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoKICAgICogVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5oOgogICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tOgogICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVs
ZWdhdGUpOgogICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojpk
aWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0KToKICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgogICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU2NoZWR1
bGVDbGllbnRSZWRpcmVjdEZvckZyYW1lKToKICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CiAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CiAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVj
dCk6CiAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KToKICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgogICAgCiAgICBUb29sczoKICAgIAogICAgUmVtb3ZlZCBBUEkgdGVz
dCBmb3IgdGhlIGRlbGV0ZWQgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIG1ldGhvZCwKICAg
IGFuZCBhZGRlZCB0d28gbmV3IHRlc3RzIGZvciB0aGUgdHdvIG5ldyBtZXRob2RzLgogICAgCiAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToKICAgICgt
W0NsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OmRpZFNjaGVkdWxlQ2xp
ZW50UmVkaXJlY3RUb1VSTDpkZWxheTpdKToKICAgICgtW0NsaWVudFJlZGlyZWN0TmF2aWdhdGlv
bkRlbGVnYXRlIF93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6XSk6CiAgICAoLVtDbGll
bnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246
XSk6CiAgICAoVEVTVCk6CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmMDFjZjFlZTZkLi5kMTRjYjgwNWRhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA4LTMwICBEYXZpZCBRdWVzYWRhICA8
ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQ
cml2YXRlIGNsaWVudCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlY3QgcmVk
aXJlY3RzIHNjaGVkdWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KCkgc2luY2Ugbm8gY2xpZW50IGNhcmVzIGFib3V0IHRo
aXMgZXZlbnQgYW55bW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmVkIEZyYW1lTG9hZGVyOjpwZXJm
b3JtQ2xpZW50UmVkaXJlY3QoKSBzaW5jZSBpdCB3b3VsZG4ndCBkbyBhbnl0aGluZyBidXQgY2Fs
bCBjaGFuZ2VMb2NhdGlvbigpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGNoYW5nZSBp
biBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisK
IDIwMTctMDgtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDYWNoZSBBUEldIFN1cHBvcnQgY2FjaGUgbmFtZXMgcGVyc2lzdGVuY3kKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDVmNjM3MmM2ZGMwLi5iNjNmYTZjYzgzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMDUwLDEyICsyMDUwLDYgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwmIHVybCwgZG91Ymxl
IHNlY29uZHMsIGRvdWJsZSBmaXJlRGEKICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSAobG9j
a0JhY2tGb3J3YXJkTGlzdCA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMgfHwgaGlzdG9yeSgp
LmN1cnJlbnRJdGVtU2hvdWxkQmVSZXBsYWNlZCgpKSAmJiBtX2RvY3VtZW50TG9hZGVyICYmICFt
X2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb247CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6
OnBlcmZvcm1DbGllbnRSZWRpcmVjdChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVz
dCkKLXsKLSAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKLSAg
ICBtX2NsaWVudC5kaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpOwotfQotCiBib29s
IEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQoY29uc3QgVVJMJiBjdXJyZW50VVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0
aGUgcnVsZTogIkRvbid0IHJlbG9hZCBpZiBuYXZpZ2F0aW5nIGJ5IGZyYWdtZW50IHdpdGhpbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhY2U2NmI0MzA0OS4uYjI0YzllNTg2
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0yNjUsNyArMjY1LDYgQEAg
cHVibGljOgogICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJlQ29tcGxldGUoKSBjb25zdDsgLy8gaW5j
bHVkaW5nIHRoaXMKICAgICB2b2lkIGNsaWVudFJlZGlyZWN0ZWQoY29uc3QgVVJMJiwgZG91Ymxl
IGRlbGF5LCBkb3VibGUgZmlyZURhdGUsIExvY2tCYWNrRm9yd2FyZExpc3QpOwogICAgIHZvaWQg
Y2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wgY2FuY2VsV2l0aExvYWRJblBy
b2dyZXNzKTsKLSAgICB2b2lkIHBlcmZvcm1DbGllbnRSZWRpcmVjdChGcmFtZUxvYWRSZXF1ZXN0
JiYpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHVibGljIGJlY2F1c2UgdGhpcyBhc3luY2hy
b25vdXMgY2FsbGJhY2sgZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGllbnQKICAgICAvLyB1c2VzIHRo
ZSBwb2xpY3kgbWFjaGluZXJ5IChhbmQgdGhlcmVmb3JlIGlzIGNhbGxlZCB2aWEgdGhlIFBvbGlj
eUNoZWNrZXIpLiAgT25jZSB3ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCBjZmE0NGU0YjJmMy4uMzgwMzEyYWRmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNTQsNyArMTU0LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lvbmFsVVJMKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwm
LCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZE5hdmlnYXRlV2l0aGluUGFnZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA4NmU3M2IyYTMxNi4uYTA4OGQ1
MTY0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5j
cHAKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCBy
ZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVzaCA/IFJlbG9hZElnbm9y
aW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3Vy
aXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9j
a0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKIAotICAgICAgICBmcmFtZS5s
b2FkZXIoKS5wZXJmb3JtQ2xpZW50UmVkaXJlY3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7
CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCkpOwogICAgIH0KIH07CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwg
VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
TG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIHJl
c291cmNlUmVxdWVzdCwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlz
dCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGlu
aXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKIAotICAgICAgICBmcmFtZS5sb2FkZXIoKS5wZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CisgICAgICAgIGZyYW1l
LmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGU0Y2FiOGVjY2YuLmY5ZDk1Yjg2MmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM3IEBACisyMDE3LTA4LTMwICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2Fk
YUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIGNsaWVu
dCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlY3QgcmVkaXJlY3RzIHNjaGVk
dWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIF93ZWJWaWV3OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDogaXNuJ3QgdXNlZnVs
IGZvciBkZWxlZ2F0ZXMgdGhhdCB3YW50IHRvIGtub3cgYWJvdXQgY2xpZW50IHJlZGlyZWN0cwor
ICAgICAgICBzdGFydGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgaXMgZmluaXNoZWQgbG9hZGluZy4g
VGhpcyBpcyBiZWNhdXNlIHRoZSBtZXRob2Qgd291bGQgYmUgY2FsbGVkIGFmdGVyIHRoZQorICAg
ICAgICBuYXZpZ2F0aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVzIGFuZCB0aGUgbmF2aWdhdGlv
biBmb3IgdGhlIHJlZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhpcyBoYXBwZW5zIGluCisgICAg
ICAgIGEgbGF0ZXIgaXRlcmF0aW9uIG9mIHRoZSBydW4gbG9vcCwgdGhlIGRvY3VtZW50IGhhcyBh
bHJlYWR5IGZpbmlzaGVkIGxvYWRpbmcuIEFkZHJlc3MgdGhpcyBieSByZXBsYWNpbmcKKyAgICAg
ICAgdGhlIG1ldGhvZCB3aXRoIHR3byB0aGF0IGdpdmUgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUg
bW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3aGVuIGNsaWVudCByZWRpcmVjdHMgYXJlCisgICAgICAg
IHNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2No
ZWR1bGVDbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRp
ZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25E
ZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNs
aWVudDo6ZGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZFNjaGVkdWxlQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgorCiAyMDE3LTA4LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ2FjaGUgQVBJXSBTdXBwb3J0IGNhY2hlIG5hbWVzIHBlcnNp
c3RlbmN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25D
bGllbnQuaAppbmRleCBiY2ZiNDExZDZmYS4uZmYxYzFiNTU1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtNjksNyArNjks
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbE5hdmln
YXRpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2
aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgZG91YmxlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIE5hdmlnYXRpb24qLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgT2JqZWN0KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgTmF2
aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBPYmplY3QqKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCA3MTdiNTVhNGQ2Yy4uMDg4MTJlOTYzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTQ0LDcgKzQ0LDggQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIAogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBuYXZpZ2F0aW9uOihXS05hdmlnYXRpb24g
KiluYXZpZ2F0aW9uIGRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lOihXS0ZyYW1lSW5m
byAqKXN1YmZyYW1lIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOwogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmln
YXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZFNjaGVkdWxlQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilV
UkwgZGVsYXk6KE5TVGltZUludGVydmFsKWRlbGF5OworLSAodm9pZClfd2ViVmlld0RpZENhbmNl
bENsaWVudFJlZGlyZWN0OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogCiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IG5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQ6KFdL
TmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IG5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbjooX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5o
CmluZGV4IDE5OTllODJiMWM2Li44MjVhZTk4NjA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTkxLDcgKzkxLDggQEAgcHJpdmF0
ZToKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJp
ZGU7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxO
YXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdh
dGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCBkaWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29u
c3QgV1RGOjpTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEluU3ViZnJhbWVXaXRoRXJyb3IoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQSTo6TmF2aWdhdGlv
biosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRl
OwogICAgICAgICB2b2lkIGRpZENvbW1pdE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpO
YXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKQEAgLTE3Myw3ICsxNzQsOCBAQCBw
cml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbE5hdmlnYXRpb24gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsUHJv
dmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3TmF2
aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yIDogMTsKLSAg
ICAgICAgYm9vbCB3ZWJWaWV3RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbiA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZFNjaGVkdWxlQ2xpZW50UmVkaXJlY3QgOiAxOwor
ICAgICAgICBib29sIHdlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZENvbW1pdE5hdmlnYXRpb24gOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3RGlkRmluaXNoTmF2aWdhdGlvbiA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggZjM2M2YzNWYzMmMuLmEzNDVhODZiMzgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
Lm1tCkBAIC0xNTAsNyArMTUwLDggQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRp
b25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3Ig
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRpZEZhaWxO
YXZpZ2F0aW9uOndpdGhFcnJvcjopXTsKIAogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3TmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVy
cm9yID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bmF2
aWdhdGlvbjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkSW5TdWJmcmFtZTp3aXRoRXJyb3I6KV07Ci0g
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JOYXZpZ2F0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbjopXTsKKyAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFNjaGVkdWxlQ2xpZW50UmVk
aXJlY3QgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpk
aWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6KV07CisgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3Q6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdOYXZpZ2F0
aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6bmF2aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDopXTsKICAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld05hdmlnYXRpb25EaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6bmF2aWdhdGlvbjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOildOwogICAgIG1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFu
Z2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZW5k
ZXJpbmdQcm9ncmVzc0RpZENoYW5nZTopXTsKQEAgLTQ4OSwyMSArNDkwLDMwIEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbE5hCiAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdh
dGlvblN0YXRlLm1fd2ViVmlldyBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bE5hdmlnYXRpb246d2tOYXZpZ2F0aW9uXTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmlnYXRpb24oV2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCit2b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVybFN0cmluZywg
ZG91YmxlIGRlbGF5KQogewotICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0
aW9uKQorICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdEaWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0KQogICAgICAgICByZXR1cm47CiAK
ICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFzc2VydCB0aGF0IG5hdmlnYXRp
b24gaXMgbm90IG51bGwgaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IG51bGwgZm9yIHNvbWUgbmF2
aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KLSAgICBXS05hdmlnYXRpb24gKndrTmF2
aWdhdGlvbiA9IG5pbDsKLSAgICBpZiAobmF2aWdhdGlvbikKLSAgICAgICAgd2tOYXZpZ2F0aW9u
ID0gd3JhcHBlcigqbmF2aWdhdGlvbik7CisgICAgV2ViQ29yZTo6VVJMIHVybChXZWJDb3JlOjpV
UkwoKSwgdXJsU3RyaW5nKTsKKworICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlKSBfd2ViVmlldzptX25hdmlnYXRpb25T
dGF0ZS5tX3dlYlZpZXcgZGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdFRvVVJMOnVybCBkZWxheTpk
ZWxheV07Cit9CisKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBp
ZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmF2
aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKIAot
ICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRl
IF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CisgICAgW3N0YXRpY19jYXN0PGlkIDxX
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUpIF93ZWJWaWV3
RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3XTsKIH0K
IAogc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVt
cHRlcihXS1dlYlZpZXcgKndlYlZpZXcsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIE5T
RXJyb3IgKm9yaWdpbmFsRXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBkMzVlNzgwZTQ2ZC4uN2ZkZjI3ZGRhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzIwOCwyMSArMzIwOCwyOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZgogICAgICAgICBtX2xvYWRlckNsaWVudC0+ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoKnRoaXMsICpmcmFtZSwgbmF2aWdhdGlv
bi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNjaGVkdWxlQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5KQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3Nh
Z2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3Vy
cmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4K
LSAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmIChmcmFtZS0+
aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCi0gICAgICAgIG5hdmlnYXRpb24gPSAmbmF2
aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOworICAgIGlmIChtX25hdmln
YXRpb25DbGllbnQpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAg
ICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTY2hlZHVsZUNsaWVudFJlZGlyZWN0KCp0aGlz
LCB1cmwsIGRlbGF5KTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit7CisgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKKworICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNL
KGZyYW1lKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpIHsKICAgICAgICAgaWYgKGZy
YW1lLT5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgp
KTsKKyAgICAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3QoKnRoaXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA4NTQxZmM4NzllMi4uMjUxYTY1YzM0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMjQ3LDcgKzEyNDcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklEKTsKKyAgICB2b2lkIGRpZFNjaGVkdWxlQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5KTsKKyAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiB1cmwp
OwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50
UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3Qg
VXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCAwMTFiNDJlOGNiNy4uYTZhNWI2NzY2MTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTExOCw3ICsx
MTgsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgRnJhbWUgbG9hZCBtZXNz
YWdlcwogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgdXJsLCBTdHJpbmcgdW5yZWFjaGFibGVV
UkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAg
IERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCisgICAgRGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSkKKyAgICBE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgRGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFN0cmluZyB1cmwpCiAgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlz
aW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRl
bnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDkxZWNhOTY3OWJkLi5kNGY3YWY0ZThkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0yODksMTggKzI4OSw2IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKICAg
ICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgZG9j
dW1lbnRMb2FkZXIubmF2aWdhdGlvbklEKCksIHVybCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KCkKLXsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgp
OwotICAgIGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBuYXZpZ2F0
aW9uSUQgPSBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlciY+KCptX2ZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkubmF2aWdhdGlvbklEKCk7Ci0KLSAgICAv
LyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZShtX2ZyYW1l
LT5mcmFtZUlEKCksIG5hdmlnYXRpb25JRCkpOwotfQotCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lvbmFsVVJMKCkKIHsKICAgICBXZWJQYWdlKiB3
ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAtMzE5LDYgKzMwNyw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQogCiAgICAg
Ly8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxl
TG9hZGVyQ2xpZW50KCkuZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSgqd2ViUGFnZSwg
Km1fZnJhbWUpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCisgICAgd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKG1fZnJhbWUtPmZyYW1lSUQoKSkpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiB1cmwsIGRvdWJs
ZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKQpAQCAtMzI5LDYgKzMyMCw5IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25z
dCBVUkwmIHVybCwgZG91CiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAg
d2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS53aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUoKndlYlBhZ2UsICptX2ZyYW1lLCB1cmwsIGludGVydmFsLCBmaXJlRGF0
ZSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KKyAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFNjaGVkdWxlQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSht
X2ZyYW1lLT5mcmFtZUlEKCksIHVybC5zdHJpbmcoKSwgaW50ZXJ2YWwpKTsKIH0KIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxYTlkY2UwYTA0NS4uNGU0MGU5ZTll
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04OCw3ICs4OCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlzcGF0Y2hPbmxvYWRFdmVudHMoKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKCkgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVS
TCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MWM5MTgxMWNkZi4uNTg1
Mjk3MGU5NzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wOC0zMCAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1
ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBj
bGllbnQgcmVkaXJlY3QgU1BJIG5lZWRzIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHJlZGlyZWN0cyBz
Y2hlZHVsZWQgYmVmb3JlIHRoZSBkb2N1bWVudCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMjgKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vMzQwNjg0NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVkIEFQSSB0ZXN0IGZvciB0aGUgZGVsZXRlZCBXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGUgbWV0aG9kLAorICAgICAgICBhbmQgYWRkZWQgdHdvIG5ldyB0ZXN0
cyBmb3IgdGhlIHR3byBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bQ2xpZW50UmVkaXJlY3RO
YXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6ZGlkU2NoZWR1bGVDbGllbnRSZWRpcmVjdFRvVVJM
OmRlbGF5Ol0pOgorICAgICAgICAoLVtDbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSBf
d2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0Ol0pOgorICAgICAgICAoLVtDbGllbnRSZWRp
cmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6Cisg
ICAgICAgIChURVNUKToKKwogMjAxNy0wOC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBBcnJheUxhbmcgdG8gV2ViR1BVIFNoYWRpbmcgTGFuZ3Vh
Z2UsIG9yIFdTTCBmb3Igc2hvcnQsIHByb25vdW5jZWQgIndoaXN0bGUiCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KaW5kZXggOTFk
ZTYxZGZhNWEuLjMwN2RhYWQ3ZDY2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCkBAIC0zNyw2ICszNyw4IEBACiBzdGF0aWMg
Ym9vbCBpc0RvbmU7CiBzdGF0aWMgUmV0YWluUHRyPFdLTmF2aWdhdGlvbj4gY3VycmVudE5hdmln
YXRpb247CiBzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiByZWRpcmVjdFVSTDsKK3N0YXRpYyBOU1Rp
bWVJbnRlcnZhbCByZWRpcmVjdERlbGF5Oworc3RhdGljIGJvb2wgZGlkQ2FuY2VsUmVkaXJlY3Q7
CiAKIEBpbnRlcmZhY2UgTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlPgogQGVuZApAQCAtMTg4LDQwICsxOTAsMTA2IEBAIFRFU1QoV0tOYXZpZ2F0aW9u
LCBEZWNpZGVQb2xpY3lGb3JQYWdlQ2FjaGVOYXZpZ2F0aW9uKQogICAgIEFTU0VSVF9UUlVFKFtk
ZWxlZ2F0ZSBkZWNpZGVkUG9saWN5Rm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uXSk7CiB9CiAKLUBp
bnRlcmZhY2UgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNP
YmplY3Q8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgorQGludGVyZmFjZSBDbGllbnRSZWRp
cmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZT4KIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdE5h
dmlnYXRpb25EZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZp
Z2F0aW9uCitAaW1wbGVtZW50YXRpb24gQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU2NoZWR1bGVDbGllbnRS
ZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkZWxheTooTlNUaW1lSW50ZXJ2YWwpZGVsYXkKK3sK
KyAgICByZWRpcmVjdFVSTCA9IFVSTDsKKyAgICByZWRpcmVjdERlbGF5ID0gZGVsYXk7Cit9Cist
ICh2b2lkKV93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6KFdLV2ViVmlldyAqKXdlYlZp
ZXcKK3sKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IHRydWU7Cit9CistICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbgogewogICAgIGlzRG9uZSA9IHRydWU7Ci0gICAgcmVkaXJlY3RVUkwgPSB3ZWJW
aWV3LlVSTDsKIH0KIEBlbmQKIAotVEVTVChXS05hdmlnYXRpb24sIERpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCkKK1RFU1QoV0tOYXZpZ2F0aW9uLCBXZWJWaWV3RGlkU2NoZWR1bGVDbGllbnRSZWRp
cmVjdCkKIHsKLSAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIFJldGFpblB0cjxEaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHRO
UyhbW0RpZFBlcmZvcm1DbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ2xpZW50UmVkaXJlY3ROYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCi0gICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4
dC9odG1sLCUzQ21ldGElMjBodHRwLWVxdWl2PSUyMnJlZnJlc2glMjIlMjBjb250ZW50PSUyMjA7
VVJMPWRhdGE6dGV4dC9odG1sLFBhZ2UxJTIyJTNFIl1dOworICAgIGF1dG8gcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRl
eHQvaHRtbCwlM0NtZXRhJTIwaHR0cC1lcXVpdj0lMjJyZWZyZXNoJTIyJTIwY29udGVudD0lMjIx
MjM7VVJMPWRhdGE6dGV4dC9odG1sLFBhZ2UxJTIyJTNFIl1dOwogCiAgICAgaXNEb25lID0gZmFs
c2U7CiAgICAgcmVkaXJlY3RVUkwgPSBuaWw7CisgICAgcmVkaXJlY3REZWxheSA9IDA7CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOwogCisgICAgQVNTRVJUX0RPVUJMRV9FUShyZWRpcmVjdERlbGF5LCAxMjMp
OwogICAgIEFTU0VSVF9TVFJFUShyZWRpcmVjdFVSTC5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4
U3RyaW5nLCAiZGF0YTp0ZXh0L2h0bWwsUGFnZTEiKTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0
bWwsJTNDc2NyaXB0JTNFd2luZG93LmxvY2F0aW9uPSUyMmRhdGE6dGV4dC9odG1sLFBhZ2UyJTIy
OyUzQy9zY3JpcHQlM0UiXV07CiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgcmVkaXJlY3RVUkwg
PSBuaWw7CisgICAgcmVkaXJlY3REZWxheSA9IE5TVGltZUludGVydmFsU2luY2UxOTcwOyAvLyBV
c2UgYW55IG5vbi16ZXJvIHZhbHVlLCB3ZSB3aWxsIHRlc3QgdGhhdCB0aGUgZGVsZWdhdGUgcmVj
ZWl2ZXMgYSBkZWxheSBvZiAwLgogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIAorICAgIEFTU0VSVF9ET1VC
TEVfRVEocmVkaXJlY3REZWxheSwgMCk7CiAgICAgQVNTRVJUX1NUUkVRKHJlZGlyZWN0VVJMLmdl
dCgpLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsICJkYXRhOnRleHQvaHRtbCxQYWdlMiIpOwog
fQogCitURVNUKFdLTmF2aWdhdGlvbiwgV2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0KQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwor
CisgICAgLy8gVGVzdCAxOiBEdXJpbmcgYSBuYXZpZ2F0aW9uIHRoYXQgaXMgbm90IGEgY2xpZW50
IHJlZGlyZWN0LCAtX3dlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDogc2hvdWxkIG5vdCBi
ZSBjYWxsZWQuCisKKyAgICBhdXRvIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsUGFnZTEiXV07CisKKyAg
ICBpc0RvbmUgPSBmYWxzZTsKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKworICAgIEFTU0VSVF9GQUxTRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAg
ICAvLyBUZXN0IDI6IFdoZW4gYSBjbGllbnQgcmVkaXJlY3QgZG9lcyBoYXBwZW4sIC1fd2ViVmll
d0RpZENhbmNlbENsaWVudFJlZGlyZWN0OiBzaG91bGQgc3RpbGwgYmUgY2FsbGVkLiBJdCBlc3Nl
bnRpYWxseQorICAgIC8vIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgd2ViIHZpZXcgdHJhbnNpdGlv
bnMgZnJvbSAiZXhwZWN0aW5nIGEgcmVkaXJlY3QiIHRvICJub3QgZXhwZWN0aW5nIGEgcmVkaXJl
Y3QiLgorCisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCwlM0NzY3JpcHQlM0V3aW5kb3cubG9jYXRp
b249JTIyZGF0YTp0ZXh0L2h0bWwsUGFnZTIlMjI7JTNDL3NjcmlwdCUzRSJdXTsKKyAgICBpc0Rv
bmUgPSBmYWxzZTsKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsKKworICAgIEFTU0VSVF9GQUxTRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAgICBpc0Rv
bmUgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAg
ICBBU1NFUlRfVFJVRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAgICAvLyBUZXN0IDM6IFdoZW4g
YW5vdGhlciBuYXZpZ2F0aW9uIGJlZ2lucyB3aGlsZSBhIGNsaWVudCByZWRpcmVjdCBpcyBzY2hl
ZHVsZWQsIC1fd2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0OgorICAgIC8vIHNob3VsZCBi
ZSBjYWxsZWQuCisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9odG1sLCUzQ21ldGElMjBodHRwLWVxdWl2
PSUyMnJlZnJlc2glMjIlMjBjb250ZW50PSUyMjEwMDAwO1VSTD1kYXRhOnRleHQvaHRtbCxQYWdl
MyUyMiUzRSJdXTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIGRpZENhbmNlbFJlZGlyZWN0
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgQVNTRVJUX0ZBTFNFKGRpZENhbmNl
bFJlZGlyZWN0KTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsUGFnZTQiXV07CisgICAgaXNE
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgQVNTRVJUX1RSVUUoZGlkQ2Fu
Y2VsUmVkaXJlY3QpOworfQorCiAjZW5kaWYK
</data>
<flag name="review"
          id="339705"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319474</attachid>
            <date>2017-08-31 10:31:53 -0700</date>
            <delta_ts>2017-08-31 12:03:38 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>v2.patch</filename>
            <type>text/plain</type>
            <size>31605</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IGYyYjhiYzE2Mjk5MTk1N2RiZGY5YTEwZmVjZDk5NzM1OTMzOTgyZTEKQXV0aG9yOiBE
YXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNvbT4KRGF0ZTogICBXZWQgQXVnIDMw
IDE0OjU3OjQwIDIwMTcgLTA3MDAKCiAgICBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUgY2xp
ZW50IHJlZGlyZWN0IFNQSSBuZWVkcyB0byBiZSBhYmxlIHRvIGRldGVjdCByZWRpcmVjdHMgc2No
ZWR1bGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgZmluaXNoZXMgbG9hZGluZwogICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAogICAgcmRhcjovL3Byb2JsZW0v
MzQwNjg0NzYKICAgIAogICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgIFNv
dXJjZS9XZWJDb3JlOgogICAgCiAgICBSZW1vdmVkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHNpbmNlIG5vIGNsaWVudCBjYXJlcyBhYm91dCB0
aGlzIGV2ZW50IGFueW1vcmUuCiAgICBBbHNvIHJlbW92ZWQgRnJhbWVMb2FkZXI6OnBlcmZvcm1D
bGllbnRSZWRpcmVjdCgpIHNpbmNlIGl0IHdvdWxkbid0IGRvIGFueXRoaW5nIGJ1dCBjYWxsIGNo
YW5nZUxvY2F0aW9uKCkuCiAgICAKICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGNoYW5nZSBpbiBmdW5j
dGlvbmFsaXR5LgogICAgCiAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5oOgogICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKICAgICog
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwOgogICAgCiAgICBTb3VyY2UvV2ViS2l0Ogog
ICAgCiAgICBfd2ViVmlldzpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Q6IGlzbid0IHVzZWZ1bCBm
b3IgZGVsZWdhdGVzIHRoYXQgd2FudCB0byBrbm93IGFib3V0IGNsaWVudCByZWRpcmVjdHMKICAg
IHN0YXJ0ZWQgYmVmb3JlIHRoZSBkb2N1bWVudCBpcyBmaW5pc2hlZCBsb2FkaW5nLiBUaGlzIGlz
IGJlY2F1c2UgdGhlIG1ldGhvZCB3b3VsZCBiZSBjYWxsZWQgYWZ0ZXIgdGhlCiAgICBuYXZpZ2F0
aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVzIGFuZCB0aGUgbmF2aWdhdGlvbiBmb3IgdGhlIHJl
ZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhpcyBoYXBwZW5zIGluCiAgICBhIGxhdGVyIGl0ZXJh
dGlvbiBvZiB0aGUgcnVuIGxvb3AsIHRoZSBkb2N1bWVudCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBs
b2FkaW5nLiBBZGRyZXNzIHRoaXMgYnkgcmVwbGFjaW5nCiAgICB0aGUgbWV0aG9kIHdpdGggdHdv
IHRoYXQgZ2l2ZSB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0
IHdoZW4gY2xpZW50IHJlZGlyZWN0cyBhcmUKICAgIHNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCiAg
ICAKICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CiAgICAoQVBJOjpO
YXZpZ2F0aW9uQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKICAgIChBUEk6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KToKICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoKICAgICogVUlQcm9jZXNz
L0NvY29hL05hdmlnYXRpb25TdGF0ZS5oOgogICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlv
blN0YXRlLm1tOgogICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVs
ZWdhdGUpOgogICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgogICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CiAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CiAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVj
dCk6CiAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KToKICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgogICAgCiAgICBUb29sczoKICAgIAogICAgUmVtb3ZlZCBBUEkgdGVz
dCBmb3IgdGhlIGRlbGV0ZWQgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIG1ldGhvZCwKICAg
IGFuZCBhZGRlZCB0d28gbmV3IHRlc3RzIGZvciB0aGUgdHdvIG5ldyBtZXRob2RzLgogICAgCiAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToKICAgICgt
W0NsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OndpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTDpkZWxheTpdKToKICAgICgtW0NsaWVudFJlZGlyZWN0TmF2aWdhdGlv
bkRlbGVnYXRlIF93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6XSk6CiAgICAoLVtDbGll
bnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246
XSk6CiAgICAoVEVTVCk6CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmMDFjZjFlZTZkLi5kMTRjYjgwNWRhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA4LTMwICBEYXZpZCBRdWVzYWRhICA8
ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQ
cml2YXRlIGNsaWVudCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlY3QgcmVk
aXJlY3RzIHNjaGVkdWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KCkgc2luY2Ugbm8gY2xpZW50IGNhcmVzIGFib3V0IHRo
aXMgZXZlbnQgYW55bW9yZS4KKyAgICAgICAgQWxzbyByZW1vdmVkIEZyYW1lTG9hZGVyOjpwZXJm
b3JtQ2xpZW50UmVkaXJlY3QoKSBzaW5jZSBpdCB3b3VsZG4ndCBkbyBhbnl0aGluZyBidXQgY2Fs
bCBjaGFuZ2VMb2NhdGlvbigpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIGNoYW5nZSBp
biBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisK
IDIwMTctMDgtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtDYWNoZSBBUEldIFN1cHBvcnQgY2FjaGUgbmFtZXMgcGVyc2lzdGVuY3kKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDVmNjM3MmM2ZGMwLi5iNjNmYTZjYzgzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMDUwLDEyICsyMDUwLDYgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwmIHVybCwgZG91Ymxl
IHNlY29uZHMsIGRvdWJsZSBmaXJlRGEKICAgICBtX3F1aWNrUmVkaXJlY3RDb21pbmcgPSAobG9j
a0JhY2tGb3J3YXJkTGlzdCA9PSBMb2NrQmFja0ZvcndhcmRMaXN0OjpZZXMgfHwgaGlzdG9yeSgp
LmN1cnJlbnRJdGVtU2hvdWxkQmVSZXBsYWNlZCgpKSAmJiBtX2RvY3VtZW50TG9hZGVyICYmICFt
X2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb247CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6
OnBlcmZvcm1DbGllbnRSZWRpcmVjdChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVz
dCkKLXsKLSAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKLSAg
ICBtX2NsaWVudC5kaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpOwotfQotCiBib29s
IEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQoY29uc3QgVVJMJiBjdXJyZW50VVJMLCBjb25zdCBV
UkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0
aGUgcnVsZTogIkRvbid0IHJlbG9hZCBpZiBuYXZpZ2F0aW5nIGJ5IGZyYWdtZW50IHdpdGhpbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhY2U2NmI0MzA0OS4uYjI0YzllNTg2
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0yNjUsNyArMjY1LDYgQEAg
cHVibGljOgogICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJlQ29tcGxldGUoKSBjb25zdDsgLy8gaW5j
bHVkaW5nIHRoaXMKICAgICB2b2lkIGNsaWVudFJlZGlyZWN0ZWQoY29uc3QgVVJMJiwgZG91Ymxl
IGRlbGF5LCBkb3VibGUgZmlyZURhdGUsIExvY2tCYWNrRm9yd2FyZExpc3QpOwogICAgIHZvaWQg
Y2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wgY2FuY2VsV2l0aExvYWRJblBy
b2dyZXNzKTsKLSAgICB2b2lkIHBlcmZvcm1DbGllbnRSZWRpcmVjdChGcmFtZUxvYWRSZXF1ZXN0
JiYpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHVibGljIGJlY2F1c2UgdGhpcyBhc3luY2hy
b25vdXMgY2FsbGJhY2sgZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGllbnQKICAgICAvLyB1c2VzIHRo
ZSBwb2xpY3kgbWFjaGluZXJ5IChhbmQgdGhlcmVmb3JlIGlzIGNhbGxlZCB2aWEgdGhlIFBvbGlj
eUNoZWNrZXIpLiAgT25jZSB3ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCBjZmE0NGU0YjJmMy4uMzgwMzEyYWRmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNTQsNyArMTU0LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lvbmFsVVJMKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwm
LCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZE5hdmlnYXRlV2l0aGluUGFnZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA4NmU3M2IyYTMxNi4uYTA4OGQ1
MTY0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5j
cHAKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCBy
ZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgcmVmcmVzaCA/IFJlbG9hZElnbm9y
aW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3Vy
aXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9j
a0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKIAotICAgICAgICBmcmFtZS5s
b2FkZXIoKS5wZXJmb3JtQ2xpZW50UmVkaXJlY3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7
CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2Fk
UmVxdWVzdCkpOwogICAgIH0KIH07CiAKQEAgLTIwMSw3ICsyMDEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwg
VXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1l
TG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIHJl
c291cmNlUmVxdWVzdCwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlz
dCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGlu
aXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKIAotICAgICAgICBmcmFtZS5sb2FkZXIoKS5wZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7CisgICAgICAgIGZyYW1l
LmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAg
IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGU0Y2FiOGVjY2YuLjNkZDEyOTMxNTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM3IEBACisyMDE3LTA4LTMwICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2Fk
YUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIGNsaWVu
dCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlY3QgcmVkaXJlY3RzIHNjaGVk
dWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEyOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIF93ZWJWaWV3OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDogaXNuJ3QgdXNlZnVs
IGZvciBkZWxlZ2F0ZXMgdGhhdCB3YW50IHRvIGtub3cgYWJvdXQgY2xpZW50IHJlZGlyZWN0cwor
ICAgICAgICBzdGFydGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgaXMgZmluaXNoZWQgbG9hZGluZy4g
VGhpcyBpcyBiZWNhdXNlIHRoZSBtZXRob2Qgd291bGQgYmUgY2FsbGVkIGFmdGVyIHRoZQorICAg
ICAgICBuYXZpZ2F0aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVzIGFuZCB0aGUgbmF2aWdhdGlv
biBmb3IgdGhlIHJlZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhpcyBoYXBwZW5zIGluCisgICAg
ICAgIGEgbGF0ZXIgaXRlcmF0aW9uIG9mIHRoZSBydW4gbG9vcCwgdGhlIGRvY3VtZW50IGhhcyBh
bHJlYWR5IGZpbmlzaGVkIGxvYWRpbmcuIEFkZHJlc3MgdGhpcyBieSByZXBsYWNpbmcKKyAgICAg
ICAgdGhlIG1ldGhvZCB3aXRoIHR3byB0aGF0IGdpdmUgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUg
bW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3aGVuIGNsaWVudCByZWRpcmVjdHMgYXJlCisgICAgICAg
IHNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb25DbGllbnQ6OmRp
ZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25E
ZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNs
aWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oOgorCiAyMDE3LTA4LTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ2FjaGUgQVBJXSBTdXBwb3J0IGNhY2hlIG5hbWVzIHBlcnNp
c3RlbmN5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25D
bGllbnQuaAppbmRleCBiY2ZiNDExZDZmYS4uZTExY2E5NjliZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaApAQCAtNjksNyArNjks
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbE5hdmln
YXRpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBOYXZpZ2F0aW9uKiwgT2JqZWN0KikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2
aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgZG91YmxlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIE5hdmlnYXRpb24qLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgT2JqZWN0KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgTmF2
aWdhdGlvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBPYmplY3QqKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYs
IE5hdmlnYXRpb24qLCBPYmplY3QqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApp
bmRleCA3MTdiNTVhNGQ2Yy4uYzFhOWQwYmRlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTQ0LDcgKzQ0LDggQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNl
UG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2EKIAogLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBuYXZpZ2F0aW9uOihXS05hdmlnYXRpb24g
KiluYXZpZ2F0aW9uIGRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lOihXS0ZyYW1lSW5m
byAqKXN1YmZyYW1lIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOwogCi0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmln
YXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilV
UkwgZGVsYXk6KE5TVGltZUludGVydmFsKWRlbGF5OworLSAodm9pZClfd2ViVmlld0RpZENhbmNl
bENsaWVudFJlZGlyZWN0OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogCiAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IG5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQ6KFdL
TmF2aWdhdGlvbiAqKW5hdmlnYXRpb247CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IG5hdmlnYXRpb246KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbjooX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5o
CmluZGV4IDE5OTllODJiMWM2Li4yNmZlZDA5NGZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgKQEAgLTkxLDcgKzkxLDggQEAgcHJpdmF0
ZToKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0
aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikgb3ZlcnJp
ZGU7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxO
YXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiosIEFQSTo6T2JqZWN0Kikg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdh
dGlvbihXZWJQYWdlUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsKKyAgICAgICAg
dm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29u
c3QgV1RGOjpTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRlOworICAgICAgICB2b2lkIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbldpdGhFcnJvcihXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEluU3ViZnJhbWVXaXRoRXJyb3IoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIEFQSTo6TmF2aWdhdGlv
biosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRl
OwogICAgICAgICB2b2lkIGRpZENvbW1pdE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpO
YXZpZ2F0aW9uKiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKQEAgLTE3Myw3ICsxNzQsOCBAQCBw
cml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbE5hdmlnYXRpb24gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsUHJv
dmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3TmF2
aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yIDogMTsKLSAg
ICAgICAgYm9vbCB3ZWJWaWV3RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbiA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QgOiAxOwor
ICAgICAgICBib29sIHdlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA6IDE7CiAgICAgICAg
IGJvb2wgd2ViVmlld0RpZENvbW1pdE5hdmlnYXRpb24gOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3RGlkRmluaXNoTmF2aWdhdGlvbiA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KaW5kZXggZjM2M2YzNWYzMmMuLmVlOTM5MjFiMzgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRl
Lm1tCkBAIC0xNTAsNyArMTUwLDggQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRp
b25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3Ig
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRpZEZhaWxO
YXZpZ2F0aW9uOndpdGhFcnJvcjopXTsKIAogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3TmF2aWdhdGlvbkRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVy
cm9yID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bmF2
aWdhdGlvbjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkSW5TdWJmcmFtZTp3aXRoRXJyb3I6KV07Ci0g
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JOYXZpZ2F0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbjopXTsKKyAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3QgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6KV07CisgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3Q6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdOYXZpZ2F0
aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6bmF2aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDopXTsKICAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld05hdmlnYXRpb25EaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6bmF2aWdhdGlvbjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOildOwogICAgIG1f
bmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFu
Z2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpyZW5k
ZXJpbmdQcm9ncmVzc0RpZENoYW5nZTopXTsKQEAgLTQ4OSwyMSArNDkwLDMwIEBAIHZvaWQgTmF2
aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbE5hCiAgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3Om1fbmF2aWdh
dGlvblN0YXRlLm1fd2ViVmlldyBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bE5hdmlnYXRpb246d2tOYXZpZ2F0aW9uXTsKIH0KIAotdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmlnYXRpb24oV2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCit2b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVybFN0cmluZywg
ZG91YmxlIGRlbGF5KQogewotICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0
aW9uKQorICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRo
b2RzLndlYlZpZXdXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KQogICAgICAgICByZXR1cm47CiAK
ICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdh
dGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFzc2VydCB0aGF0IG5hdmlnYXRp
b24gaXMgbm90IG51bGwgaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IG51bGwgZm9yIHNvbWUgbmF2
aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KLSAgICBXS05hdmlnYXRpb24gKndrTmF2
aWdhdGlvbiA9IG5pbDsKLSAgICBpZiAobmF2aWdhdGlvbikKLSAgICAgICAgd2tOYXZpZ2F0aW9u
ID0gd3JhcHBlcigqbmF2aWdhdGlvbik7CisgICAgV2ViQ29yZTo6VVJMIHVybChXZWJDb3JlOjpV
UkwoKSwgdXJsU3RyaW5nKTsKKworICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlKSBfd2ViVmlldzptX25hdmlnYXRpb25T
dGF0ZS5tX3dlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOnVybCBkZWxheTpk
ZWxheV07Cit9CisKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBp
ZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmF2
aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUu
Z2V0KCk7CisgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKIAot
ICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRl
IF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JOYXZpZ2F0aW9uOndrTmF2aWdhdGlvbl07CisgICAgW3N0YXRpY19jYXN0PGlkIDxX
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUpIF93ZWJWaWV3
RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3XTsKIH0K
IAogc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVt
cHRlcihXS1dlYlZpZXcgKndlYlZpZXcsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIE5T
RXJyb3IgKm9yaWdpbmFsRXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCBkMzVlNzgwZTQ2ZC4uNTA3ZjUyM2ZiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzIwOCwyMSArMzIwOCwyOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZgogICAgICAgICBtX2xvYWRlckNsaWVudC0+ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoKnRoaXMsICpmcmFtZSwgbmF2aWdhdGlv
bi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklEKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5KQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKG1fcGFnZUNsaWVudCk7CiAKICAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3Nh
Z2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3Vy
cmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4K
LSAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmIChmcmFtZS0+
aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCi0gICAgICAgIG5hdmlnYXRpb24gPSAmbmF2
aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOworICAgIGlmIChtX25hdmln
YXRpb25DbGllbnQpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAg
ICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0aGlz
LCB1cmwsIGRlbGF5KTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit7CisgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IobV9wYWdlQ2xpZW50KTsKKworICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNL
KGZyYW1lKTsKIAogICAgIGlmIChtX25hdmlnYXRpb25DbGllbnQpIHsKICAgICAgICAgaWYgKGZy
YW1lLT5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgp
KTsKKyAgICAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3QoKnRoaXMpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA4NTQxZmM4NzllMi4uMTYyODdlODA3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMjQ3LDcgKzEyNDcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklEKTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5KTsKKyAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiB1cmwp
OwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50
UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3Qg
VXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCAwMTFiNDJlOGNiNy4uOWY4MTExMWI4ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTExOCw3ICsx
MTgsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgRnJhbWUgbG9hZCBtZXNz
YWdlcwogICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgdXJsLCBTdHJpbmcgdW5yZWFjaGFibGVV
UkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAg
IERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCisgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSkKKyAgICBE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgRGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFN0cmluZyB1cmwpCiAgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlz
aW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRl
bnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDkxZWNhOTY3OWJkLi45YzdiOGNkMjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0yODksMTggKzI4OSw2IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKICAg
ICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgZG9j
dW1lbnRMb2FkZXIubmF2aWdhdGlvbklEKCksIHVybCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkp
KSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KCkKLXsKLSAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgp
OwotICAgIGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBuYXZpZ2F0
aW9uSUQgPSBzdGF0aWNfY2FzdDxXZWJEb2N1bWVudExvYWRlciY+KCptX2ZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkubmF2aWdhdGlvbklEKCk7Ci0KLSAgICAv
LyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZShtX2ZyYW1l
LT5mcmFtZUlEKCksIG5hdmlnYXRpb25JRCkpOwotfQotCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lvbmFsVVJMKCkKIHsKICAgICBXZWJQYWdlKiB3
ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAtMzE5LDYgKzMwNyw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQogCiAgICAg
Ly8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxl
TG9hZGVyQ2xpZW50KCkuZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSgqd2ViUGFnZSwg
Km1fZnJhbWUpOworCisgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCisgICAgd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKG1fZnJhbWUtPmZyYW1lSUQoKSkpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiB1cmwsIGRvdWJs
ZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKQpAQCAtMzI5LDYgKzMyMCw5IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25z
dCBVUkwmIHVybCwgZG91CiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAg
d2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS53aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUoKndlYlBhZ2UsICptX2ZyYW1lLCB1cmwsIGludGVydmFsLCBmaXJlRGF0
ZSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KKyAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSht
X2ZyYW1lLT5mcmFtZUlEKCksIHVybC5zdHJpbmcoKSwgaW50ZXJ2YWwpKTsKIH0KIAogdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxYTlkY2UwYTA0NS4uNGU0MGU5ZTll
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04OCw3ICs4OCw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlzcGF0Y2hPbmxvYWRFdmVudHMoKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKCkgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVS
TCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MWM5MTgxMWNkZi4uZDI5
N2NlZGM1ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wOC0zMCAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1
ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBj
bGllbnQgcmVkaXJlY3QgU1BJIG5lZWRzIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHJlZGlyZWN0cyBz
Y2hlZHVsZWQgYmVmb3JlIHRoZSBkb2N1bWVudCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMjgKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vMzQwNjg0NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVkIEFQSSB0ZXN0IGZvciB0aGUgZGVsZXRlZCBXS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGUgbWV0aG9kLAorICAgICAgICBhbmQgYWRkZWQgdHdvIG5ldyB0ZXN0
cyBmb3IgdGhlIHR3byBuZXcgbWV0aG9kcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bQ2xpZW50UmVkaXJlY3RO
YXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
OmRlbGF5Ol0pOgorICAgICAgICAoLVtDbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSBf
d2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0Ol0pOgorICAgICAgICAoLVtDbGllbnRSZWRp
cmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6Cisg
ICAgICAgIChURVNUKToKKwogMjAxNy0wOC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbmFtZSBBcnJheUxhbmcgdG8gV2ViR1BVIFNoYWRpbmcgTGFuZ3Vh
Z2UsIG9yIFdTTCBmb3Igc2hvcnQsIHByb25vdW5jZWQgIndoaXN0bGUiCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KaW5kZXggOTFk
ZTYxZGZhNWEuLjJkZGU2ODA5NjBlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCkBAIC0zNyw2ICszNyw4IEBACiBzdGF0aWMg
Ym9vbCBpc0RvbmU7CiBzdGF0aWMgUmV0YWluUHRyPFdLTmF2aWdhdGlvbj4gY3VycmVudE5hdmln
YXRpb247CiBzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiByZWRpcmVjdFVSTDsKK3N0YXRpYyBOU1Rp
bWVJbnRlcnZhbCByZWRpcmVjdERlbGF5Oworc3RhdGljIGJvb2wgZGlkQ2FuY2VsUmVkaXJlY3Q7
CiAKIEBpbnRlcmZhY2UgTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlv
bkRlbGVnYXRlPgogQGVuZApAQCAtMTg4LDQwICsxOTAsMTA2IEBAIFRFU1QoV0tOYXZpZ2F0aW9u
LCBEZWNpZGVQb2xpY3lGb3JQYWdlQ2FjaGVOYXZpZ2F0aW9uKQogICAgIEFTU0VSVF9UUlVFKFtk
ZWxlZ2F0ZSBkZWNpZGVkUG9saWN5Rm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uXSk7CiB9CiAKLUBp
bnRlcmZhY2UgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIDogTlNP
YmplY3Q8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPgorQGludGVyZmFjZSBDbGllbnRSZWRp
cmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZT4KIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdE5h
dmlnYXRpb25EZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZp
Z2F0aW9uCitAaW1wbGVtZW50YXRpb24gQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFRvVVJMOihOU1VSTCAqKVVSTCBkZWxheTooTlNUaW1lSW50ZXJ2YWwpZGVsYXkKK3sK
KyAgICByZWRpcmVjdFVSTCA9IFVSTDsKKyAgICByZWRpcmVjdERlbGF5ID0gZGVsYXk7Cit9Cist
ICh2b2lkKV93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6KFdLV2ViVmlldyAqKXdlYlZp
ZXcKK3sKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IHRydWU7Cit9CistICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbgogewogICAgIGlzRG9uZSA9IHRydWU7Ci0gICAgcmVkaXJlY3RVUkwgPSB3ZWJW
aWV3LlVSTDsKIH0KIEBlbmQKIAotVEVTVChXS05hdmlnYXRpb24sIERpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCkKK1RFU1QoV0tOYXZpZ2F0aW9uLCBXZWJWaWV3V2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdCkKIHsKLSAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKIAotICAgIFJldGFpblB0cjxEaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlID0gYWRvcHRO
UyhbW0RpZFBlcmZvcm1DbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ2xpZW50UmVkaXJlY3ROYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCi0gICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4
dC9odG1sLCUzQ21ldGElMjBodHRwLWVxdWl2PSUyMnJlZnJlc2glMjIlMjBjb250ZW50PSUyMjA7
VVJMPWRhdGE6dGV4dC9odG1sLFBhZ2UxJTIyJTNFIl1dOworICAgIGF1dG8gcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRl
eHQvaHRtbCwlM0NtZXRhJTIwaHR0cC1lcXVpdj0lMjJyZWZyZXNoJTIyJTIwY29udGVudD0lMjIx
MjM7VVJMPWRhdGE6dGV4dC9odG1sLFBhZ2UxJTIyJTNFIl1dOwogCiAgICAgaXNEb25lID0gZmFs
c2U7CiAgICAgcmVkaXJlY3RVUkwgPSBuaWw7CisgICAgcmVkaXJlY3REZWxheSA9IDA7CiAgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc0RvbmUpOwogCisgICAgQVNTRVJUX0RPVUJMRV9FUShyZWRpcmVjdERlbGF5LCAxMjMp
OwogICAgIEFTU0VSVF9TVFJFUShyZWRpcmVjdFVSTC5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4
U3RyaW5nLCAiZGF0YTp0ZXh0L2h0bWwsUGFnZTEiKTsKIAogICAgIHJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0
bWwsJTNDc2NyaXB0JTNFd2luZG93LmxvY2F0aW9uPSUyMmRhdGE6dGV4dC9odG1sLFBhZ2UyJTIy
OyUzQy9zY3JpcHQlM0UiXV07CiAgICAgaXNEb25lID0gZmFsc2U7CiAgICAgcmVkaXJlY3RVUkwg
PSBuaWw7CisgICAgcmVkaXJlY3REZWxheSA9IE5TVGltZUludGVydmFsU2luY2UxOTcwOyAvLyBV
c2UgYW55IG5vbi16ZXJvIHZhbHVlLCB3ZSB3aWxsIHRlc3QgdGhhdCB0aGUgZGVsZWdhdGUgcmVj
ZWl2ZXMgYSBkZWxheSBvZiAwLgogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIAorICAgIEFTU0VSVF9ET1VC
TEVfRVEocmVkaXJlY3REZWxheSwgMCk7CiAgICAgQVNTRVJUX1NUUkVRKHJlZGlyZWN0VVJMLmdl
dCgpLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsICJkYXRhOnRleHQvaHRtbCxQYWdlMiIpOwog
fQogCitURVNUKFdLTmF2aWdhdGlvbiwgV2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0KQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwor
CisgICAgLy8gVGVzdCAxOiBEdXJpbmcgYSBuYXZpZ2F0aW9uIHRoYXQgaXMgbm90IGEgY2xpZW50
IHJlZGlyZWN0LCAtX3dlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDogc2hvdWxkIG5vdCBi
ZSBjYWxsZWQuCisKKyAgICBhdXRvIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRo
VVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsUGFnZTEiXV07CisKKyAg
ICBpc0RvbmUgPSBmYWxzZTsKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNEb25lKTsKKworICAgIEFTU0VSVF9GQUxTRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAg
ICAvLyBUZXN0IDI6IFdoZW4gYSBjbGllbnQgcmVkaXJlY3QgZG9lcyBoYXBwZW4sIC1fd2ViVmll
d0RpZENhbmNlbENsaWVudFJlZGlyZWN0OiBzaG91bGQgc3RpbGwgYmUgY2FsbGVkLiBJdCBlc3Nl
bnRpYWxseQorICAgIC8vIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgd2ViIHZpZXcgdHJhbnNpdGlv
bnMgZnJvbSAiZXhwZWN0aW5nIGEgcmVkaXJlY3QiIHRvICJub3QgZXhwZWN0aW5nIGEgcmVkaXJl
Y3QiLgorCisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCwlM0NzY3JpcHQlM0V3aW5kb3cubG9jYXRp
b249JTIyZGF0YTp0ZXh0L2h0bWwsUGFnZTIlMjI7JTNDL3NjcmlwdCUzRSJdXTsKKyAgICBpc0Rv
bmUgPSBmYWxzZTsKKyAgICBkaWRDYW5jZWxSZWRpcmVjdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsKKworICAgIEFTU0VSVF9GQUxTRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAgICBpc0Rv
bmUgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAg
ICBBU1NFUlRfVFJVRShkaWRDYW5jZWxSZWRpcmVjdCk7CisKKyAgICAvLyBUZXN0IDM6IFdoZW4g
YW5vdGhlciBuYXZpZ2F0aW9uIGJlZ2lucyB3aGlsZSBhIGNsaWVudCByZWRpcmVjdCBpcyBzY2hl
ZHVsZWQsIC1fd2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0OgorICAgIC8vIHNob3VsZCBi
ZSBjYWxsZWQuCisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9odG1sLCUzQ21ldGElMjBodHRwLWVxdWl2
PSUyMnJlZnJlc2glMjIlMjBjb250ZW50PSUyMjEwMDAwO1VSTD1kYXRhOnRleHQvaHRtbCxQYWdl
MyUyMiUzRSJdXTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIGRpZENhbmNlbFJlZGlyZWN0
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgQVNTRVJUX0ZBTFNFKGRpZENhbmNl
bFJlZGlyZWN0KTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJM
OltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsUGFnZTQiXV07CisgICAgaXNE
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgQVNTRVJUX1RSVUUoZGlkQ2Fu
Y2VsUmVkaXJlY3QpOworfQorCiAjZW5kaWYK
</data>
<flag name="review"
          id="339751"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="339752"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319495</attachid>
            <date>2017-08-31 12:03:38 -0700</date>
            <delta_ts>2017-08-31 14:26:28 -0700</delta_ts>
            <desc>v3</desc>
            <filename>0001-WKNavigationDelegatePrivate-client-redirect-SPI-need.patch</filename>
            <type>text/plain</type>
            <size>32548</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">RnJvbSA2YTUxYzExODJlM2M4NGVlYTQzZWE4YTQxZmQ2NTdmNGIwOTA2OTBlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBRdWVzYWRhIDxkYXZpZF9xdWVzYWRhQGFwcGxlLmNv
bT4KRGF0ZTogVGh1LCAzMSBBdWcgMjAxNyAxMTozOToxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd
IFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBjbGllbnQgcmVkaXJlY3QgU1BJIG5lZWRzIHRv
IGJlCiBhYmxlIHRvIGRldGVjdCByZWRpcmVjdHMgc2NoZWR1bGVkIGJlZm9yZSB0aGUgZG9jdW1l
bnQgZmluaXNoZXMgbG9hZGluZwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NjEyOCByZGFyOi8vcHJvYmxlbS8zNDA2ODQ3NgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClJlbW92ZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KCkgc2luY2Ugbm8gY2xpZW50IGNhcmVzIGFib3V0
IHRoaXMgZXZlbnQgYW55bW9yZS4KQWxzbyByZW1vdmVkIEZyYW1lTG9hZGVyOjpwZXJmb3JtQ2xp
ZW50UmVkaXJlY3QoKSBzaW5jZSBpdCB3b3VsZG4ndCBkbyBhbnl0aGluZyBidXQgY2FsbCBjaGFu
Z2VMb2NhdGlvbigpLgoKTm8gbmV3IHRlc3RzIC0gbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHku
CgoqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CiogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CiogbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CiogbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
OgoKU291cmNlL1dlYktpdDoKCl93ZWJWaWV3OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdDogaXNu
J3QgdXNlZnVsIGZvciBkZWxlZ2F0ZXMgdGhhdCB3YW50IHRvIGtub3cgYWJvdXQgY2xpZW50IHJl
ZGlyZWN0cwpzdGFydGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgaXMgZmluaXNoZWQgbG9hZGluZy4g
VGhpcyBpcyBiZWNhdXNlIHRoZSBtZXRob2Qgd291bGQgYmUgY2FsbGVkIGFmdGVyIHRoZQpuYXZp
Z2F0aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVzIGFuZCB0aGUgbmF2aWdhdGlvbiBmb3IgdGhl
IHJlZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhpcyBoYXBwZW5zIGluCmEgbGF0ZXIgaXRlcmF0
aW9uIG9mIHRoZSBydW4gbG9vcCwgdGhlIGRvY3VtZW50IGhhcyBhbHJlYWR5IGZpbmlzaGVkIGxv
YWRpbmcuIEFkZHJlc3MgdGhpcyBieSByZXBsYWNpbmcKdGhlIG1ldGhvZCB3aXRoIHR3byB0aGF0
IGdpdmUgdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3aGVu
IGNsaWVudCByZWRpcmVjdHMgYXJlCnNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCgoqIFVJUHJvY2Vz
cy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oOgooQVBJOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKEFQSTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QpOgoqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdh
dGVQcml2YXRlLmg6CiogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oOgoqIFVJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CihXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
c2V0TmF2aWdhdGlvbkRlbGVnYXRlKToKKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKFdlYktpdDo6TmF2aWdhdGlv
blN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdCk6CiogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Ciog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgooV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CgpUb29sczoKClJl
bW92ZWQgQVBJIHRlc3QgZm9yIHRoZSBkZWxldGVkIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZSBtZXRob2QsCmFuZCBhZGRlZCB0d28gbmV3IHRlc3RzIGZvciB0aGUgdHdvIG5ldyBtZXRob2Rz
LgoKKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW06CigtW0Ns
aWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3OndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RUb1VSTDpkZWxheTpdKToKKC1bQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdh
dGUgX3dlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDpdKToKKC1bQ2xpZW50UmVkaXJlY3RO
YXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgooVEVTVCk6
Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAxOCArKysrKwogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCAgICAgICAg
ICAgICAgfCAgNiAtLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggICAgICAg
ICAgICAgICAgfCAgMSAtCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aCAgICAgICAgICB8ICAxIC0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1
bGVyLmNwcCAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oICB8ICAzICstCiAuLi4vQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZS5oICAgICAgICB8ICAzICstCiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaCAgICB8ICA2ICstCiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0gICB8IDI2ICsrKystLS0KIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgIHwgMjAgKysrKy0tCiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgICB8ICAzICst
CiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gICB8ICAz
ICstCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwICAgICAgICB8
IDE4ICsrLS0tCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAgICAg
ICAgICB8ICAxIC0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMTcgKysrKysKIC4uLi9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05h
dmlnYXRpb24ubW0gIHwgODQgKysrKysrKysrKysrKysrKysrKy0tLQogMTcgZmlsZXMgY2hhbmdl
ZCwgMTk3IGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNzQx
NjFjOWE3OS4uNDQzM2E2YTVjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNy0w
OC0zMSAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPgorCisgICAgICAg
IFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBjbGllbnQgcmVkaXJlY3QgU1BJIG5lZWRzIHRv
IGJlIGFibGUgdG8gZGV0ZWN0IHJlZGlyZWN0cyBzY2hlZHVsZWQgYmVmb3JlIHRoZSBkb2N1bWVu
dCBmaW5pc2hlcyBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYxMjgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzQwNjg0NzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHNpbmNlIG5v
IGNsaWVudCBjYXJlcyBhYm91dCB0aGlzIGV2ZW50IGFueW1vcmUuCisgICAgICAgIEFsc28gcmVt
b3ZlZCBGcmFtZUxvYWRlcjo6cGVyZm9ybUNsaWVudFJlZGlyZWN0KCkgc2luY2UgaXQgd291bGRu
J3QgZG8gYW55dGhpbmcgYnV0IGNhbGwgY2hhbmdlTG9jYXRpb24oKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgLSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmln
YXRpb25TY2hlZHVsZXIuY3BwOgorCiAyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIFdURjo6Y3Jvc3NUaHJlYWRDb3B5KCkgaW4gbW9yZSBw
bGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDVmNjM3MmM2ZGMw
Li5iNjNmYTZjYzgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
MDUwLDEyICsyMDUwLDYgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25z
dCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIGRvdWJsZSBmaXJlRGEKICAgICBtX3F1aWNrUmVk
aXJlY3RDb21pbmcgPSAobG9ja0JhY2tGb3J3YXJkTGlzdCA9PSBMb2NrQmFja0ZvcndhcmRMaXN0
OjpZZXMgfHwgaGlzdG9yeSgpLmN1cnJlbnRJdGVtU2hvdWxkQmVSZXBsYWNlZCgpKSAmJiBtX2Rv
Y3VtZW50TG9hZGVyICYmICFtX2lzRXhlY3V0aW5nSmF2YVNjcmlwdEZvcm1BY3Rpb247CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXI6OnBlcmZvcm1DbGllbnRSZWRpcmVjdChGcmFtZUxvYWRSZXF1ZXN0
JiYgZnJhbWVMb2FkUmVxdWVzdCkKLXsKLSAgICBjaGFuZ2VMb2NhdGlvbihXVEZNb3ZlKGZyYW1l
TG9hZFJlcXVlc3QpKTsKLSAgICBtX2NsaWVudC5kaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdCgpOwotfQotCiBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQoY29uc3QgVVJMJiBj
dXJyZW50VVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKQogewogICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaW1wbGVtZW50cyB0aGUgcnVsZTogIkRvbid0IHJlbG9hZCBpZiBuYXZpZ2F0aW5nIGJ5
IGZyYWdtZW50IHdpdGhpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhY2U2
NmI0MzA0OS4uYjI0YzllNTg2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBA
IC0yNjUsNyArMjY1LDYgQEAgcHVibGljOgogICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJlQ29tcGxl
dGUoKSBjb25zdDsgLy8gaW5jbHVkaW5nIHRoaXMKICAgICB2b2lkIGNsaWVudFJlZGlyZWN0ZWQo
Y29uc3QgVVJMJiwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUsIExvY2tCYWNrRm9yd2Fy
ZExpc3QpOwogICAgIHZvaWQgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wg
Y2FuY2VsV2l0aExvYWRJblByb2dyZXNzKTsKLSAgICB2b2lkIHBlcmZvcm1DbGllbnRSZWRpcmVj
dChGcmFtZUxvYWRSZXF1ZXN0JiYpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgcHVibGljIGJl
Y2F1c2UgdGhpcyBhc3luY2hyb25vdXMgY2FsbGJhY2sgZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGll
bnQKICAgICAvLyB1c2VzIHRoZSBwb2xpY3kgbWFjaGluZXJ5IChhbmQgdGhlcmVmb3JlIGlzIGNh
bGxlZCB2aWEgdGhlIFBvbGljeUNoZWNrZXIpLiAgT25jZSB3ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjZmE0NGU0YjJmMy4uMzgwMzEyYWRmYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNTQsNyArMTU0
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lv
bmFsVVJMKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdChjb25zdCBVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZE5hdmlnYXRlV2l0aGluUGFnZSgpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA4
NmU3M2IyYTMxNi4uYTA4OGQ1MTY0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5jcHAKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyB1cmwoKSwgcmVmZXJyZXIoKSwgcmVm
cmVzaCA/IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhIDogVXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9
OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5n
RG9jdW1lbnQoKSwgKnNlY3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgIl9zZWxmIiwg
bG9ja0hpc3RvcnkoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFs
bG93LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsK
IAotICAgICAgICBmcmFtZS5sb2FkZXIoKS5wZXJmb3JtQ2xpZW50UmVkaXJlY3QoV1RGTW92ZShm
cmFtZUxvYWRSZXF1ZXN0KSk7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9u
KFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOwogICAgIH0KIH07CiAKQEAgLTIwMSw3ICsyMDEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QgeyB1
cmwoKSwgcmVmZXJyZXIoKSwgVXNlUHJvdG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QgeyBpbml0aWF0aW5nRG9jdW1lbnQoKSwgKnNl
Y3VyaXR5T3JpZ2luKCksIHJlc291cmNlUmVxdWVzdCwgIl9zZWxmIiwgbG9ja0hpc3RvcnkoKSwg
bG9ja0JhY2tGb3J3YXJkTGlzdCgpLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpObywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzKCksIGluaXRpYXRlZEJ5TWFpbkZyYW1lKCkgfTsKIAotICAgICAgICBmcmFt
ZS5sb2FkZXIoKS5wZXJmb3JtQ2xpZW50UmVkaXJlY3QoV1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0
KSk7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVM
b2FkUmVxdWVzdCkpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGE0MTBmZTdlODYuLjViZDM3
OWMyMmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTA4LTMxICBEYXZpZCBRdWVz
YWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlIGNsaWVudCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRl
Y3QgcmVkaXJlY3RzIHNjaGVkdWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEy
OAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIF93ZWJWaWV3OmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdDogaXNuJ3QgdXNlZnVsIGZvciBkZWxlZ2F0ZXMgdGhhdCB3YW50IHRvIGtub3cgYWJvdXQg
Y2xpZW50IHJlZGlyZWN0cworICAgICAgICBzdGFydGVkIGJlZm9yZSB0aGUgZG9jdW1lbnQgaXMg
ZmluaXNoZWQgbG9hZGluZy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZXRob2Qgd291bGQgYmUgY2Fs
bGVkIGFmdGVyIHRoZQorICAgICAgICBuYXZpZ2F0aW9uIHNjaGVkdWxlcidzIHRpbWVyIGZpcmVz
IGFuZCB0aGUgbmF2aWdhdGlvbiBmb3IgdGhlIHJlZGlyZWN0IGhhcyBiZWd1bi4gU2luY2UgdGhp
cyBoYXBwZW5zIGluCisgICAgICAgIGEgbGF0ZXIgaXRlcmF0aW9uIG9mIHRoZSBydW4gbG9vcCwg
dGhlIGRvY3VtZW50IGhhcyBhbHJlYWR5IGZpbmlzaGVkIGxvYWRpbmcuIEFkZHJlc3MgdGhpcyBi
eSByZXBsYWNpbmcKKyAgICAgICAgdGhlIG1ldGhvZCB3aXRoIHR3byB0aGF0IGdpdmUgdGhlIG5h
dmlnYXRpb24gZGVsZWdhdGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3aGVuIGNsaWVudCByZWRp
cmVjdHMgYXJlCisgICAgICAgIHNjaGVkdWxlZCBhbmQgY2FuY2VsZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChBUEk6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3Rh
dGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25T
dGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVu
dFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE3LTA4LTMxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFdURjo6Y3Jvc3NUaHJlYWRD
b3B5KCkgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJTmF2aWdhdGlvbkNsaWVudC5oCmluZGV4IGJjZmI0MTFkNmZhLi5lMTFjYTk2OWJlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5o
CkBAIC02OSw3ICs2OSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIE5hdmlnYXRpb24qLCBP
YmplY3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgTmF2aWdhdGlvbios
IE9iamVjdCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RG
b3JOYXZpZ2F0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgTmF2aWdhdGlvbiopIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBkb3VibGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBk
aWRDYW5jZWxDbGllbnRSZWRpcmVjdChXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgTmF2aWdhdGlvbiosIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBPYmplY3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWVXaXRoRXJyb3IoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIE9i
amVjdCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXROYXZpZ2F0aW9uKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgTmF2aWdhdGlvbiosIE9iamVjdCopIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlUHJpdmF0ZS5oCmluZGV4IDcxN2I1NWE0ZDZjLi5jMWE5ZDBiZGU2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtNDQsNyArNDQsOCBAQCBzdGF0aWMgY29uc3QgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93
bmxvYQogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG5hdmlnYXRpb246
KFdLTmF2aWdhdGlvbiAqKW5hdmlnYXRpb24gZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJh
bWU6KFdLRnJhbWVJbmZvICopc3ViZnJhbWUgd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CiAK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRv
VVJMOihOU1VSTCAqKVVSTCBkZWxheTooTlNUaW1lSW50ZXJ2YWwpZGVsYXk7CistICh2b2lkKV93
ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbmF2aWdhdGlvbkRpZEZpbmlzaERv
Y3VtZW50TG9hZDooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlvbjsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgbmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICopbmF2aWdhdGlv
biBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOihfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSluYXZpZ2F0aW9uVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLmgKaW5kZXggMTk5OWU4MmIxYzYuLjI2ZmVkMDk0ZmU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtOTEsNyAr
OTEsOCBAQCBwcml2YXRlOgogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uKiwgQVBJOjpP
YmplY3QqKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpOYXZpZ2F0aW9uKiwg
QVBJOjpPYmplY3QqKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JOYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsIEFQSTo6TmF2aWdhdGlvbiopIG92ZXJy
aWRlOworICAgICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYsIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgICAg
IHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSBvdmVy
cmlkZTsKICAgICAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9y
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKICAgICAgICAg
dm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkSW5TdWJmcmFtZVdpdGhFcnJvcihXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
QVBJOjpOYXZpZ2F0aW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIEFQSTo6T2Jq
ZWN0Kikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdl
UHJveHkmLCBBUEk6Ok5hdmlnYXRpb24qLCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwpAQCAtMTcz
LDcgKzE3NCw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbiA6IDE7CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RpZEZhaWxQcm92aXNpb25hbE5hdmlnYXRpb25XaXRoRXJyb3IgOiAxOwogICAgICAgICBi
b29sIHdlYlZpZXdOYXZpZ2F0aW9uRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWVXaXRo
RXJyb3IgOiAxOwotICAgICAgICBib29sIHdlYlZpZXdEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RG
b3JOYXZpZ2F0aW9uIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0
IDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQ29tbWl0TmF2aWdhdGlvbiA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld05hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEaWRGaW5pc2hOYXZpZ2F0aW9uIDogMTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCBmMzYzZjM1ZjMy
Yy4uZWU5MzkyMWIzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L05hdmlnYXRpb25TdGF0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUubW0KQEAgLTE1MCw3ICsxNTAsOCBAQCB2b2lkIE5hdmlnYXRpb25TdGF0
ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGYWlsTmF2aWdh
dGlvbldpdGhFcnJvciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdl
YlZpZXc6ZGlkRmFpbE5hdmlnYXRpb246d2l0aEVycm9yOildOwogCiAgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdOYXZpZ2F0aW9uRGlkRmFpbFByb3Zpc2lvbmFsTG9hZElu
U3ViZnJhbWVXaXRoRXJyb3IgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpuYXZpZ2F0aW9uOmRpZEZhaWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lOndp
dGhFcnJvcjopXTsKLSAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmlnYXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JOYXZp
Z2F0aW9uOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDpkZWxheTopXTsKKyAg
ICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZENhbmNlbENsaWVudFJlZGly
ZWN0ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRD
YW5jZWxDbGllbnRSZWRpcmVjdDopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld05hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpuYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1l
bnRMb2FkOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2aWdh
dGlvbkRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpuYXZpZ2F0aW9uOmRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b246KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZW5kZXJpbmdQ
cm9ncmVzc0RpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOildOwpAQCAtNDg5LDIxICs0OTAs
MzAgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmEKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3a05hdmlnYXRpb25dOwogfQogCi12b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
bikKK3ZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXVEY6OlN0cmlu
ZyYgdXJsU3RyaW5nLCBkb3VibGUgZGVsYXkpCiB7Ci0gICAgaWYgKCFtX25hdmlnYXRpb25TdGF0
ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvck5hdmlnYXRpb24pCisgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9u
U3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVs
ZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgotICAgIFdLTmF2
aWdhdGlvbiAqd2tOYXZpZ2F0aW9uID0gbmlsOwotICAgIGlmIChuYXZpZ2F0aW9uKQotICAgICAg
ICB3a05hdmlnYXRpb24gPSB3cmFwcGVyKCpuYXZpZ2F0aW9uKTsKKyAgICBXZWJDb3JlOjpVUkwg
dXJsKFdlYkNvcmU6OlVSTCgpLCB1cmxTdHJpbmcpOworCisgICAgW3N0YXRpY19jYXN0PGlkIDxX
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUpIF93ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9V
Ukw6dXJsIGRlbGF5OmRlbGF5XTsKK30KKwordm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRp
b25DbGllbnQ6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0KFdlYktpdDo6V2ViUGFnZVByb3h5JiBw
YWdlKQoreworICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRpb25TdGF0ZS5tX25hdmln
YXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKKyAgICAg
ICAgcmV0dXJuOwogCi0gICAgWyhpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZp
Z2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmlnYXRpb246d2tOYXZpZ2F0aW9uXTsKKyAgICBbc3Rh
dGljX2Nhc3Q8aWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4+KG5hdmlnYXRpb25EZWxl
Z2F0ZSkgX3dlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDptX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXddOwogfQogCiBzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZUVycm9yV2l0
aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywgV2ViRnJhbWVQcm94eSYgd2Vi
RnJhbWVQcm94eSwgTlNFcnJvciAqb3JpZ2luYWxFcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGQzNWU3ODBlNDZkLi41MDdmNTIzZmJmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMjA4LDIxICszMjA4LDI5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmCiAgICAgICAgIG1fbG9hZGVyQ2xpZW50LT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSgqdGhpcywgKmZy
YW1lLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVj
dHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBk
b3VibGUgZGVsYXkpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IobV9wYWdl
Q2xpZW50KTsKIAogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJl
LCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRo
ZSBwYWdlIGNhY2hlLgotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0g
ICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKLSAgICAgICAgbmF2
aWdhdGlvbiA9ICZuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7Cisg
ICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkgeworICAgICAgICBpZiAoZnJhbWUtPmlzTWFpbkZy
YW1lKCkpCisgICAgICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3QoKnRoaXMsIHVybCwgZGVsYXkpOworICAgIH0KK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3sK
KyAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihtX3BhZ2VDbGllbnQpOworCisgICAg
V2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAg
IE1FU1NBR0VfQ0hFQ0soZnJhbWUpOwogCiAgICAgaWYgKG1fbmF2aWdhdGlvbkNsaWVudCkgewog
ICAgICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvck5hdmlnYXRpb24oKnRoaXMsIG5h
dmlnYXRpb24uZ2V0KCkpOworICAgICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDg1NDFmYzg3OWUyLi4xNjI4N2U4MDdhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyNDcsNyArMTI0Nyw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckxvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQpOworICAgIHZvaWQgd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBkb3VibGUgZGVsYXkpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJv
dmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDAxMWI0MmU4Y2I3Li45ZjgxMTExYjhlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMTE4LDcgKzExOCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgIyBG
cmFtZSBsb2FkIG1lc3NhZ2VzCiAgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyB1cmwsIFN0cmlu
ZyB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyB1cmwsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCi0gICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCkKKyAgICBXaWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91Ymxl
IGRlbGF5KQorICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCkKICAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHVybCkKICAgICBEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wg
aGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5z
ZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggOTFlY2E5Njc5YmQuLjljN2I4Y2QyODhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTI4OSwxOCArMjg5LDYgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQoKQogICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+
ZnJhbWVJRCgpLCBkb2N1bWVudExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLCBVc2VyRGF0YShX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRh
LmdldCgpKS5nZXQoKSkpKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoKQotewotICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBhdXRvIG5hdmlnYXRpb25JRCA9IHN0YXRpY19jYXN0PFdlYkRvY3VtZW50TG9hZGVyJj4oKm1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKS5uYXZpZ2F0aW9u
SUQoKTsKLQotICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTG9hZEZv
ckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbmF2aWdhdGlvbklEKSk7Ci19Ci0KIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkwoKQogewog
ICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CkBAIC0zMTksNiArMzA3LDkg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRp
cmVjdCgpCiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgd2ViUGFnZS0+
aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKCp3ZWJQYWdlLCAqbV9mcmFtZSk7CisKKyAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4K
KyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpKSk7CiB9CiAKIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBV
UkwmIHVybCwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpCkBAIC0zMjksNiArMzIw
LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGNvbnN0IFVSTCYgdXJsLCBkb3UKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxl
IGNsaWVudC4KICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSgqd2ViUGFnZSwgKm1fZnJhbWUsIHVybCwgaW50
ZXJ2YWwsIGZpcmVEYXRlKTsKKworICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgorICAgIHdl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgdXJsLnN0cmluZygpLCBpbnRlcnZhbCkp
OwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZUxvY2F0
aW9uV2l0aGluUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFhOWRjZTBh
MDQ1Li40ZTQwZTllOWViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg4LDcg
Kzg4LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWREaXNwYXRjaE9ubG9hZEV2
ZW50cygpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoRGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lv
bmFsVVJMKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0
KCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29u
c3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM3
NmVkMDk3ZWNjLi5hZDhhYjA1YTFlNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA4LTMxICBEYXZpZCBRdWVz
YWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+CisKKyAgICAgICAgV0tOYXZpZ2F0aW9uRGVs
ZWdhdGVQcml2YXRlIGNsaWVudCByZWRpcmVjdCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRl
Y3QgcmVkaXJlY3RzIHNjaGVkdWxlZCBiZWZvcmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEy
OAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zNDA2ODQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgQVBJIHRlc3QgZm9yIHRoZSBkZWxl
dGVkIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBtZXRob2QsCisgICAgICAgIGFuZCBhZGRl
ZCB0d28gbmV3IHRlc3RzIGZvciB0aGUgdHdvIG5ldyBtZXRob2RzLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtD
bGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0VG9VUkw6ZGVsYXk6XSk6CisgICAgICAgICgtW0NsaWVudFJlZGlyZWN0TmF2aWdh
dGlvbkRlbGVnYXRlIF93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6XSk6CisgICAgICAg
ICgtW0NsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGlkRmluaXNoTmF2
aWdhdGlvbjpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDE3LTA4LTMxICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTZXZlcmFsIElu
cHV0TWV0aG9kRmlsdGVyIHRlc3RzIGFyZSBmYWlsaW5nIGFuZCBjcmFzaGluZwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCmluZGV4
IDkxZGU2MWRmYTVhLi4yZGRlNjgwOTYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQpAQCAtMzcsNiArMzcsOCBAQAogc3Rh
dGljIGJvb2wgaXNEb25lOwogc3RhdGljIFJldGFpblB0cjxXS05hdmlnYXRpb24+IGN1cnJlbnRO
YXZpZ2F0aW9uOwogc3RhdGljIFJldGFpblB0cjxOU1VSTD4gcmVkaXJlY3RVUkw7CitzdGF0aWMg
TlNUaW1lSW50ZXJ2YWwgcmVkaXJlY3REZWxheTsKK3N0YXRpYyBib29sIGRpZENhbmNlbFJlZGly
ZWN0OwogCiBAaW50ZXJmYWNlIE5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmln
YXRpb25EZWxlZ2F0ZT4KIEBlbmQKQEAgLTE4OCw0MCArMTkwLDEwNiBAQCBURVNUKFdLTmF2aWdh
dGlvbiwgRGVjaWRlUG9saWN5Rm9yUGFnZUNhY2hlTmF2aWdhdGlvbikKICAgICBBU1NFUlRfVFJV
RShbZGVsZWdhdGUgZGVjaWRlZFBvbGljeUZvckJhY2tGb3J3YXJkTmF2aWdhdGlvbl0pOwogfQog
Ci1AaW50ZXJmYWNlIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdE5hdmlnYXRpb25EZWxlZ2F0ZSA6
IE5TT2JqZWN0PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4KK0BpbnRlcmZhY2UgQ2xpZW50
UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgOiBOU09iamVjdDxXS05hdmlnYXRpb25EZWxlZ2F0
ZVByaXZhdGU+CiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBEaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3ROYXZpZ2F0aW9uRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yTmF2aWdhdGlvbjooV0tOYXZpZ2F0aW9uICop
bmF2aWdhdGlvbgorQGltcGxlbWVudGF0aW9uIENsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVn
YXRlCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTDooTlNVUkwgKilVUkwgZGVsYXk6KE5TVGltZUludGVydmFsKWRlbGF5
Cit7CisgICAgcmVkaXJlY3RVUkwgPSBVUkw7CisgICAgcmVkaXJlY3REZWxheSA9IGRlbGF5Owor
fQorLSAodm9pZClfd2ViVmlld0RpZENhbmNlbENsaWVudFJlZGlyZWN0OihXS1dlYlZpZXcgKil3
ZWJWaWV3Cit7CisgICAgZGlkQ2FuY2VsUmVkaXJlY3QgPSB0cnVlOworfQorLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246KFdLTmF2aWdhdGlv
biAqKW5hdmlnYXRpb24KIHsKICAgICBpc0RvbmUgPSB0cnVlOwotICAgIHJlZGlyZWN0VVJMID0g
d2ViVmlldy5VUkw7CiB9CiBAZW5kCiAKLVRFU1QoV0tOYXZpZ2F0aW9uLCBEaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3QpCitURVNUKFdLTmF2aWdhdGlvbiwgV2ViVmlld1dpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3QpCiB7Ci0gICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CiAKLSAgICBSZXRhaW5QdHI8
RGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3ROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0NsaWVudFJlZGlyZWN0TmF2
aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlv
bkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAotICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9
IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRh
OnRleHQvaHRtbCwlM0NtZXRhJTIwaHR0cC1lcXVpdj0lMjJyZWZyZXNoJTIyJTIwY29udGVudD0l
MjIwO1VSTD1kYXRhOnRleHQvaHRtbCxQYWdlMSUyMiUzRSJdXTsKKyAgICBhdXRvIHJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0
YTp0ZXh0L2h0bWwsJTNDbWV0YSUyMGh0dHAtZXF1aXY9JTIycmVmcmVzaCUyMiUyMGNvbnRlbnQ9
JTIyMTIzO1VSTD1kYXRhOnRleHQvaHRtbCxQYWdlMSUyMiUzRSJdXTsKIAogICAgIGlzRG9uZSA9
IGZhbHNlOwogICAgIHJlZGlyZWN0VVJMID0gbmlsOworICAgIHJlZGlyZWN0RGVsYXkgPSAwOwog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmaXNEb25lKTsKIAorICAgIEFTU0VSVF9ET1VCTEVfRVEocmVkaXJlY3REZWxheSwg
MTIzKTsKICAgICBBU1NFUlRfU1RSRVEocmVkaXJlY3RVUkwuZ2V0KCkuYWJzb2x1dGVTdHJpbmcu
VVRGOFN0cmluZywgImRhdGE6dGV4dC9odG1sLFBhZ2UxIik7CiAKICAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4
dC9odG1sLCUzQ3NjcmlwdCUzRXdpbmRvdy5sb2NhdGlvbj0lMjJkYXRhOnRleHQvaHRtbCxQYWdl
MiUyMjslM0Mvc2NyaXB0JTNFIl1dOwogICAgIGlzRG9uZSA9IGZhbHNlOwogICAgIHJlZGlyZWN0
VVJMID0gbmlsOworICAgIHJlZGlyZWN0RGVsYXkgPSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsg
Ly8gVXNlIGFueSBub24temVybyB2YWx1ZSwgd2Ugd2lsbCB0ZXN0IHRoYXQgdGhlIGRlbGVnYXRl
IHJlY2VpdmVzIGEgZGVsYXkgb2YgMC4KICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CiAKKyAgICBBU1NFUlRf
RE9VQkxFX0VRKHJlZGlyZWN0RGVsYXksIDApOwogICAgIEFTU0VSVF9TVFJFUShyZWRpcmVjdFVS
TC5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nLCAiZGF0YTp0ZXh0L2h0bWwsUGFnZTIi
KTsKIH0KIAorVEVTVChXS05hdmlnYXRpb24sIFdlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVj
dCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW0NsaWVudFJlZGlyZWN0TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKKworICAgIC8vIFRlc3QgMTogRHVyaW5nIGEgbmF2aWdhdGlvbiB0aGF0IGlzIG5vdCBhIGNs
aWVudCByZWRpcmVjdCwgLV93ZWJWaWV3RGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3Q6IHNob3VsZCBu
b3QgYmUgY2FsbGVkLgorCisgICAgYXV0byByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9odG1sLFBhZ2UxIl1dOwor
CisgICAgaXNEb25lID0gZmFsc2U7CisgICAgZGlkQ2FuY2VsUmVkaXJlY3QgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmlzRG9uZSk7CisKKyAgICBBU1NFUlRfRkFMU0UoZGlkQ2FuY2VsUmVkaXJlY3QpOwor
CisgICAgLy8gVGVzdCAyOiBXaGVuIGEgY2xpZW50IHJlZGlyZWN0IGRvZXMgaGFwcGVuLCAtX3dl
YlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDogc2hvdWxkIHN0aWxsIGJlIGNhbGxlZC4gSXQg
ZXNzZW50aWFsbHkKKyAgICAvLyBpcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIHdlYiB2aWV3IHRyYW5z
aXRpb25zIGZyb20gImV4cGVjdGluZyBhIHJlZGlyZWN0IiB0byAibm90IGV4cGVjdGluZyBhIHJl
ZGlyZWN0Ii4KKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiZGF0YTp0ZXh0L2h0bWwsJTNDc2NyaXB0JTNFd2luZG93Lmxv
Y2F0aW9uPSUyMmRhdGE6dGV4dC9odG1sLFBhZ2UyJTIyOyUzQy9zY3JpcHQlM0UiXV07CisgICAg
aXNEb25lID0gZmFsc2U7CisgICAgZGlkQ2FuY2VsUmVkaXJlY3QgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzRG9uZSk7CisKKyAgICBBU1NFUlRfRkFMU0UoZGlkQ2FuY2VsUmVkaXJlY3QpOworCisgICAg
aXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
CisgICAgQVNTRVJUX1RSVUUoZGlkQ2FuY2VsUmVkaXJlY3QpOworCisgICAgLy8gVGVzdCAzOiBX
aGVuIGFub3RoZXIgbmF2aWdhdGlvbiBiZWdpbnMgd2hpbGUgYSBjbGllbnQgcmVkaXJlY3QgaXMg
c2NoZWR1bGVkLCAtX3dlYlZpZXdEaWRDYW5jZWxDbGllbnRSZWRpcmVjdDoKKyAgICAvLyBzaG91
bGQgYmUgY2FsbGVkLgorCisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJkYXRhOnRleHQvaHRtbCwlM0NtZXRhJTIwaHR0cC1l
cXVpdj0lMjJyZWZyZXNoJTIyJTIwY29udGVudD0lMjIxMDAwMDtVUkw9ZGF0YTp0ZXh0L2h0bWws
UGFnZTMlMjIlM0UiXV07CisKKyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBkaWRDYW5jZWxSZWRp
cmVjdCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIEFTU0VSVF9GQUxTRShkaWRD
YW5jZWxSZWRpcmVjdCk7CisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImRhdGE6dGV4dC9odG1sLFBhZ2U0Il1dOworICAg
IGlzRG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIEFTU0VSVF9UUlVFKGRp
ZENhbmNlbFJlZGlyZWN0KTsKK30KKwogI2VuZGlmCi0tIAoyLjEzLjMgKEFwcGxlIEdpdC05MSkK
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>