<?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>229838</bug_id>
          
          <creation_ts>2021-09-02 16:05:51 -0700</creation_ts>
          <short_desc>WebKitTestRunner does not correctly close all auxiliary WebViews between tests</short_desc>
          <delta_ts>2021-09-07 19:42:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=229932</see_also>
          <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>
          
          <blocked>229766</blocked>
    
    <blocked>229873</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>fujii</cc>
    
    <cc>jbedard</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789952</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:05:51 -0700</bug_when>
    <thetext>WebKitTestRunner does not close auxiliary WebViews between tests, letting them accumulate and wasting memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789954</commentid>
    <comment_count>1</comment_count>
      <attachid>437210</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:09:33 -0700</bug_when>
    <thetext>Created attachment 437210
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789960</commentid>
    <comment_count>2</comment_count>
      <attachid>437211</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:18:39 -0700</bug_when>
    <thetext>Created attachment 437211
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789966</commentid>
    <comment_count>3</comment_count>
      <attachid>437214</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:25:42 -0700</bug_when>
    <thetext>Created attachment 437214
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789969</commentid>
    <comment_count>4</comment_count>
      <attachid>437215</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:32:16 -0700</bug_when>
    <thetext>Created attachment 437215
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1789972</commentid>
    <comment_count>5</comment_count>
      <attachid>437217</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 16:36:11 -0700</bug_when>
    <thetext>Created attachment 437217
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790006</commentid>
    <comment_count>6</comment_count>
      <attachid>437228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 18:30:01 -0700</bug_when>
    <thetext>Created attachment 437228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790044</commentid>
    <comment_count>7</comment_count>
      <attachid>437228</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-02 20:43:01 -0700</bug_when>
    <thetext>Comment on attachment 437228
Patch

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

&gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1992
&gt; +        NSArray* array = [DumpRenderTreeWindow openWindows];
&gt; +        unsigned count = [array count];
&gt; +        for (unsigned i = 0; i &lt; count; i++) {
&gt; +            NSWindow *window = [array objectAtIndex:i];

for (NSWindow *window in DumpRenderTreeWindow.openWindows)
A lot of code below could also use dot syntax.

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:1333
&gt;          Vector&lt;HWND&gt; windows = openWindows();
&gt;          unsigned size = windows.size();
&gt;          for (unsigned i = 0; i &lt; size; i++) {

for (HWND window : openWindows())
Also, there&apos;s now an unnecessary scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790051</commentid>
    <comment_count>8</comment_count>
      <attachid>437228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-02 21:03:40 -0700</bug_when>
    <thetext>Comment on attachment 437228
Patch

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

&gt;&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:1333
&gt;&gt;          for (unsigned i = 0; i &lt; size; i++) {
&gt; 
&gt; for (HWND window : openWindows())
&gt; Also, there&apos;s now an unnecessary scope.

The reason I kept the scope is that there is a goto above :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790146</commentid>
    <comment_count>9</comment_count>
      <attachid>437268</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-03 07:17:50 -0700</bug_when>
    <thetext>Created attachment 437268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790147</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-03 07:19:53 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 437228 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=437228&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1992
&gt; &gt; +        NSArray* array = [DumpRenderTreeWindow openWindows];
&gt; &gt; +        unsigned count = [array count];
&gt; &gt; +        for (unsigned i = 0; i &lt; count; i++) {
&gt; &gt; +            NSWindow *window = [array objectAtIndex:i];
&gt; 
&gt; for (NSWindow *window in DumpRenderTreeWindow.openWindows)
&gt; A lot of code below could also use dot syntax.
&gt; 
&gt; &gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:1333
&gt; &gt;          Vector&lt;HWND&gt; windows = openWindows();
&gt; &gt;          unsigned size = windows.size();
&gt; &gt;          for (unsigned i = 0; i &lt; size; i++) {
&gt; 
&gt; for (HWND window : openWindows())
&gt; Also, there&apos;s now an unnecessary scope.

The scope is indeed now necessary with your proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790158</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-03 07:47:03 -0700</bug_when>
    <thetext>Committed r281990 (241297@main): &lt;https://commits.webkit.org/241297@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437268.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790159</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-03 07:48:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/82722937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790171</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-09-03 08:25:41 -0700</bug_when>
    <thetext>Follow-up iOS build fix in  &lt;https://commits.webkit.org/r281994&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791335</commentid>
    <comment_count>14</comment_count>
      <attachid>437268</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-09-07 19:42:15 -0700</bug_when>
    <thetext>Comment on attachment 437268
Patch

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

&gt; Tools/DumpRenderTree/win/DumpRenderTree.cpp:-1331
&gt; -        Vector&lt;HWND&gt; windows = openWindows();

This change caused a bug.  
Filed: Bug 229932 – [Win][DumpRenderTree] ASSERTION FAILED: openWindows().size() == 1 in runTest</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437210</attachid>
            <date>2021-09-02 16:09:33 -0700</date>
            <delta_ts>2021-09-02 16:18:39 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229838_wip.patch</filename>
            <type>text/plain</type>
            <size>7488</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggM2VjMGRkMjFm
NDAyLi5iZDkyODY0ODM0NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAj
aW5jbHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KKyNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC0yNjgsMTEg
KzI2OSwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
bWFpbldlYlZpZXcoKS0+c2V0V2luZG93SXNLZXkodHJ1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNs
b3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7Ci0gICAgV0tQYWdlQ2xvc2UocGFnZSk7CiAgICAgUGxhdGZvcm1X
ZWJWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2
b2lkKj4oY2xpZW50SW5mbykpOwotICAgIGRlbGV0ZSB2aWV3OworICAgIFRlc3RDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5jbG9zZU90aGVyUGFnZShwYWdlLCB2aWV3KTsKIH0KIAogc3RhdGljIHZv
aWQgZm9jdXMoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0zNTks
NiArMzU5LDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiAgICAgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkdyYW50ZWQgPSBncmFudGVkOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbG9zZU90
aGVyUGFnZShXS1BhZ2VSZWYgcGFnZSwgUGxhdGZvcm1XZWJWaWV3KiB2aWV3KQoreworICAgIFdL
UGFnZUNsb3NlKHBhZ2UpOworICAgIGF1dG8gaW5kZXggPSBtX2F1eGlsaWFyeVdlYlZpZXdzLmZp
bmRNYXRjaGluZyhbdmlld10oYXV0byYgYXV4aWxpYXJ5V2ViVmlldykgeyByZXR1cm4gYXV4aWxp
YXJ5V2ViVmlldy5wdHIoKSA9PSB2aWV3OyB9KTsKKyAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQp
CisgICAgICAgIG1fYXV4aWxpYXJ5V2ViVmlld3MucmVtb3ZlKGluZGV4KTsKK30KKwogV0tQYWdl
UmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0
aW9uQWN0aW9uLCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRp
Y19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
QEAgLTM3NSwxMyArMzgzLDEzIEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3Ro
ZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAKICAgICBtX2Ny
ZWF0ZWRPdGhlclBhZ2UgPSB0cnVlOwogCi0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gcGxh
dGZvcm1DcmVhdGVPdGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmll
dy0+b3B0aW9ucygpKTsKKyAgICBhdXRvIHZpZXcgPSBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShw
YXJlbnRWaWV3LCBjb25maWd1cmF0aW9uLCBwYXJlbnRWaWV3LT5vcHRpb25zKCkpOwogICAgIFdL
UGFnZVJlZiBuZXdQYWdlID0gdmlldy0+cGFnZSgpOwogCiAgICAgdmlldy0+cmVzaXplVG8oODAw
LCA2MDApOwogCiAgICAgV0tQYWdlVUlDbGllbnRWOCBvdGhlclBhZ2VVSUNsaWVudCA9IHsKLSAg
ICAgICAgeyA4LCB2aWV3IH0sCisgICAgICAgIHsgOCwgdmlldy5wdHIoKSB9LAogICAgICAgICBu
dWxscHRyLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAg
bnVsbHB0ciwgLy8gc2hvd1BhZ2UKICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC00ODUsOCAr
NDkzLDkgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoUGxhdGZv
cm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb24KIAogICAgIHZpZXctPmRpZEluaXRpYWxp
emVDbGllbnRzKCk7CiAKLSAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudXBkYXRlV2lu
ZG93U2NhbGVGb3JUZXN0KHZpZXcsICpUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubV9jdXJy
ZW50SW52b2NhdGlvbik7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVdp
bmRvd1NjYWxlRm9yVGVzdCh2aWV3LnB0cigpLCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
Lm1fY3VycmVudEludm9jYXRpb24pOwogCisgICAgbV9hdXhpbGlhcnlXZWJWaWV3cy5hcHBlbmQo
V1RGTW92ZSh2aWV3KSk7CiAgICAgV0tSZXRhaW4obmV3UGFnZSk7CiAgICAgcmV0dXJuIG5ld1Bh
Z2U7CiB9CkBAIC05MTEsNiArOTIwLDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0
ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBT
ZXRGb3JTY29wZTxTdGF0ZT4gY2hhbmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKICAgICBt
X2JlZm9yZVVubG9hZFJldHVyblZhbHVlID0gdHJ1ZTsKIAorICAgIGZvciAoYXV0byYgYXV4aWxp
YXJ5V2ViVmlldyA6IHN0ZDo6ZXhjaGFuZ2UobV9hdXhpbGlhcnlXZWJWaWV3cywgeyB9KSkKKyAg
ICAgICAgV0tQYWdlQ2xvc2UoYXV4aWxpYXJ5V2ViVmlldy0+cGFnZSgpKTsKKwogICAgIC8vIFRo
aXMgc2V0dGluZyBkaWZmZXJzIGJldHdlZW4gdGhlIGFudGlxdWUgYW5kIG1vZGVybiBNYWMgV2Vi
S2l0MiBBUEkuCiAgICAgLy8gRm9yIG5vdywgbWFpbnRhaW4gdGhlIGFudGlxdWUgYmVoYXZpb3Is
IGJlY2F1c2Ugc29tZSB0ZXN0cyBkZXBlbmQgb24gaXQhCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBiZSB0ZXN0aW5nIHRoZSBkZWZhdWx0LgpAQCAtMjcyMSw5ICsyNzMzLDkgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwKICAgICBtX21haW5XZWJWaWV3ID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVdl
YlZpZXc+KGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpOwogfQogCi1QbGF0Zm9ybVdlYlZpZXcqIFRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBh
cmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCitVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlc3RPcHRpb25z
JiBvcHRpb25zKQogewotICAgIHJldHVybiBuZXcgUGxhdGZvcm1XZWJWaWV3KGNvbmZpZ3VyYXRp
b24sIG9wdGlvbnMpOworICAgIHJldHVybiBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4o
Y29uZmlndXJhdGlvbiwgb3B0aW9ucyk7CiB9CiAKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1BZGp1c3RDb250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGY1MTU4MDMxZDhhZi4uYjc3OGEyYWU3NjdmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCkBAIC0zODQsNyArMzg0LDcgQEAgcHJpdmF0ZToKICAgICBXS0NvbnRl
eHRSZWYgcGxhdGZvcm1BZGp1c3RDb250ZXh0KFdLQ29udGV4dFJlZiwgV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7CiAgICAg
dm9pZCBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3Qg
VGVzdE9wdGlvbnMmKTsKLSAgICBzdGF0aWMgUGxhdGZvcm1XZWJWaWV3KiBwbGF0Zm9ybUNyZWF0
ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxQbGF0Zm9y
bVdlYlZpZXc+IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50
VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKIAogICAg
IC8vIFJldHVybnMgZmFsc2UgaWYgdGhlIHJlc2V0IHRpbWVkIG91dC4KICAgICBib29sIHBsYXRm
b3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpOwpAQCAt
NTE5LDYgKzUxOSw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhl
clBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rp
b25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBXS1BhZ2VSZWYg
Y3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmln
dXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmKTsK
IAorICAgIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCop
OworICAgIHZvaWQgY2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmLCBQbGF0Zm9ybVdlYlZpZXcqKTsK
KwogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CiAKQEAg
LTU1Miw2ICs1NTUsNyBAQCBwcml2YXRlOgogICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1f
d2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1X
ZWJWaWV3PiBtX21haW5XZWJWaWV3OworICAgIFZlY3RvcjxVbmlxdWVSZWY8UGxhdGZvcm1XZWJW
aWV3Pj4gbV9hdXhpbGlhcnlXZWJWaWV3czsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IG1fY29udGV4dDsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gbV9wYWdlR3JvdXA7
CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+IG1fdXNlckNvbnRl
bnRDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGJhMTVlOTU4N2VjZC4uZDhlMzJlNzVlNDM5IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCkBAIC01NCw2ICs1NCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3Jl
Q29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0
Zi9VbmlxdWVSZWYuaD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9y
dCA8d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgogCkBAIC0yMDIsMTQgKzIwMywxNCBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJh
dGlvblJlZiwgY29uc3QgVGVzdE9wdAogICAgIFttX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXco
KSBfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0
aW5nOllFU107CiB9CiAKLVBsYXRmb3JtV2ViVmlldyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
Q3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmln
dXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCitVbmlxdWVSZWY8UGxhdGZv
cm1XZWJWaWV3PiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZv
cm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0
T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRvIG5ld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5T
KFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbigpIGNvcHldKTsKICAgICBbbmV3Q29uZmlndXJh
dGlvbiBfc2V0UmVsYXRlZFdlYlZpZXc6c3RhdGljX2Nhc3Q8V0tXZWJWaWV3Kj4ocGFyZW50Vmll
dy0+cGxhdGZvcm1WaWV3KCkpXTsKICAgICBpZiAoW25ld0NvbmZpZ3VyYXRpb24gX3JlbGF0ZWRX
ZWJWaWV3XSkKICAgICAgICAgW25ld0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpb
bmV3Q29uZmlndXJhdGlvbiBfcmVsYXRlZFdlYlZpZXddLmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURh
dGFTdG9yZV07Ci0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmll
dyhuZXdDb25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAgICBmaW5pc2hDcmVhdGluZ1Bs
YXRmb3JtV2ViVmlldyh2aWV3LCBvcHRpb25zKTsKKyAgICBhdXRvIHZpZXcgPSBtYWtlVW5pcXVl
UmVmPFBsYXRmb3JtV2ViVmlldz4obmV3Q29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Cisg
ICAgZmluaXNoQ3JlYXRpbmdQbGF0Zm9ybVdlYlZpZXcodmlldy5wdHIoKSwgb3B0aW9ucyk7CiAg
ICAgcmV0dXJuIHZpZXc7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437211</attachid>
            <date>2021-09-02 16:18:39 -0700</date>
            <delta_ts>2021-09-02 16:49:14 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229838_wip.patch</filename>
            <type>text/plain</type>
            <size>15277</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggY2QzMDU2YjkxNWE5Li4wM2I2NmE1
NmQ5NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yOTIsMTEgKzI5Miw2
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENhbk9wZW5XaW5kb3dzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENsb3Nl
UmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIwNTUsNyArMjA1MCw3IEBA
IGNvbnN0IEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInNldENhY2hlTW9kZWwiLCBzZXRDYWNoZU1vZGVsQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0Q2FsbENsb3NlT25XZWJWaWV3cyIsIHNldENhbGxDbG9zZU9uV2ViVmll
d3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRDYW5PcGVuV2luZG93cyIsIHNldENh
bk9wZW5XaW5kb3dzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwgLy8gVGhpcyBpcyBhIG5vLW9wOiBXZSBzaG91bGQgdXBkYXRlIHRoZSBsYXlv
dXQgdGVzdHMgYW5kIHJlbW92ZSBpdC4KICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgInNldERlZmVyc0xvYWRpbmciLCBzZXREZWZlcnNMb2FkaW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA2ODNkNDBmMmFiNGMuLmZiZTA1
ZTgyZTAyNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjI5LDkgKzIyOSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bk9wZW5XaW5kb3dzOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhib29sIGNhbk9wZW5X
aW5kb3dzKSB7IG1fY2FuT3BlbldpbmRvd3MgPSBjYW5PcGVuV2luZG93czsgfQotCi0gICAgYm9v
bCBjbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2Ns
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQotICAgIHZvaWQgc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKSB7IG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlID0gY2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlOyB9CiAgICAgCiAgICAgYm9vbCBuZXdXaW5kb3dzQ29w
eUJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3V2luZG93c0NvcHlCYWNrRm9y
d2FyZExpc3Q7IH0KICAgICB2b2lkIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0KGJv
b2wgbmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QpIHsgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCA9IG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0OyB9CkBAIC00MjksNyAr
NDI2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgeyB0cnVl
IH07CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2ViVmlld3MgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90ZXN0T25zY3JlZW4geyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdmNjFjZTAxNDZiMy4u
YWM3ZjE0MDNjYTBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0xOTg2LDI3ICsxOTg2LDI0IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Rk
OjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIFtbbWFpbldpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3XTsKICNlbmRpZgogCi0gICAgICAgIGlmIChnVGVzdFJ1bm5l
ci0+Y2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAgICAgICAgIE5T
QXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dzXTsKKyAgICAg
ICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOwor
ICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW2FycmF5IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFthcnJh
eSBvYmplY3RBdEluZGV4OmldOwotCi0gICAgICAgICAgICAgICAgLy8gRG9uJ3QgdHJ5IHRvIGNs
b3NlIHRoZSBtYWluIHdpbmRvdwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gW1ttYWlu
RnJhbWUgd2ViVmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAg
ICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pCisgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAg
ICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3XSBzdWJ2aWV3
c10gb2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1t3
aW5kb3cgY29udGVudFZpZXddIHN1YnZpZXdzXSBvYmplY3RBdEluZGV4OjBdOwogI2Vsc2UKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6
W1dlYlZpZXcgY2xhc3NdXSk7Ci0gICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChX
ZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CisgICAgICAgICAgICBBU1NFUlQoW1t3aW5k
b3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7CisgICAgICAg
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93IGNvbnRlbnRWaWV3XTsK
ICNlbmRpZgogCi0gICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAgICAgICAgICAg
ICAgIFt3aW5kb3cgY2xvc2VdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgW3dlYlZpZXcg
Y2xvc2VdOworICAgICAgICAgICAgW3dpbmRvdyBjbG9zZV07CiAgICAgICAgIH0KIAogICAgICAg
ICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZShvcHRpb25zLCBSZXNldFRpbWU6OkFmdGVy
VGVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA2NzI3M2I3ODhkYzEuLjUyZTVh
NWUyMWFiMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC03OCw3ICs3OCw3IEBAIGlu
dGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQga2VlcFdlYkhpc3RvcnkoKTsKICAg
ICB1bmRlZmluZWQgc2V0QWNjZXB0c0VkaXRpbmcoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdW5kZWZp
bmVkIHNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgdW5kZWZpbmVkIHNldENsb3NlUmVtYWluaW5n
V2luZG93c1doZW5Db21wbGV0ZShib29sZWFuIHZhbHVlKTsKKyAgICB1bmRlZmluZWQgc2V0Q2xv
c2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xlYW4gdmFsdWUpOyAvLyBGSVhNRTog
VGhpcyBpcyBhIG5vLW9wLCB3ZSBzaG91bGQgdXBkYXRlIHRoZSB0ZXN0cyBhbmQgcmVtb3ZlIGl0
LgogICAgIHVuZGVmaW5lZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sZWFuIGVuYWJsZWQs
IGJvb2xlYW4gcGVybWlzc2l2ZSk7CiAgICAgdW5kZWZpbmVkIGFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmluZyBkZXN0aW5hdGlvblBy
b3RvY29sLCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFuIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKTsKICAgICB1bmRlZmluZWQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0
RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCAyOWY1YmQ1ZTljNTEuLjZhYTcyMWE5OGYyYyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBrZWVwV2ViSGlzdG9yeSgpOwogICAg
IHZvaWQgc2V0QWNjZXB0c0VkaXRpbmcoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZEFsbG93RWRpdGlu
ZyA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpOwotICAgIHZvaWQgc2V0
Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRD
bG9zZUV4dHJhV2luZG93cyA9IHZhbHVlOyB9CisgICAgdm9pZCBzZXRDbG9zZVJlbWFpbmluZ1dp
bmRvd3NXaGVuQ29tcGxldGUoYm9vbCkgeyB9CiAKICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURl
bGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0gZmFsc2UpOwogICAgIHZvaWQg
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhv
c3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpAQCAtMjE5LDggKzIxOSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5nKCkgY29uc3QgeyByZXR1cm4g
bV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIAotICAgIGJvb2wgc2hvdWxkQ2xvc2VFeHRyYVdpbmRv
d3NBZnRlclJ1bm5pbmdUZXN0KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDbG9zZUV4dHJhV2lu
ZG93czsgfQotCiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChKU0NvbnRl
eHRSZWYsIHVuc2lnbmVkIHdvcmxkSUQsIEpTU3RyaW5nUmVmIHNjcmlwdCk7CiAgICAgc3RhdGlj
IHVuc2lnbmVkIHdvcmxkSURGb3JXb3JsZChXS0J1bmRsZVNjcmlwdFdvcmxkUmVmKTsKIApAQCAt
NTY2LDcgKzU2NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZER1bXBBbGxGcmFtZVNj
cm9sbFBvc2l0aW9ucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZER1bXBCYWNrRm9yd2Fy
ZExpc3RzRm9yQWxsV2luZG93cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZEFsbG93RWRp
dGluZyB7IHRydWUgfTsKLSAgICBib29sIG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgeyBmYWxz
ZSB9OwogCiAgICAgYm9vbCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZHVtcFN0YXR1c0NhbGxiYWNrcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNlYzBkZDIxZjQwMi4uYmQ5Mjg2NDgzNDQzIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtOTEsNiArOTEs
NyBAQAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+
CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZUFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtMjY4LDExICsyNjksMTAgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6cnVuTW9kYWwoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pCiAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnNldFdp
bmRvd0lzS2V5KHRydWUpOwogfQogCi1zdGF0aWMgdm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VS
ZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNs
b3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewot
ICAgIFdLUGFnZUNsb3NlKHBhZ2UpOwogICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRp
Y19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
LSAgICBkZWxldGUgdmlldzsKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xvc2VP
dGhlclBhZ2UocGFnZSwgdmlldyk7CiB9CiAKIHN0YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpAQCAtMzU5LDYgKzM1OSwxNCBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBn
cmFudGVkKQogICAgIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRl
ZDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBh
Z2UsIFBsYXRmb3JtV2ViVmlldyogdmlldykKK3sKKyAgICBXS1BhZ2VDbG9zZShwYWdlKTsKKyAg
ICBhdXRvIGluZGV4ID0gbV9hdXhpbGlhcnlXZWJWaWV3cy5maW5kTWF0Y2hpbmcoW3ZpZXddKGF1
dG8mIGF1eGlsaWFyeVdlYlZpZXcpIHsgcmV0dXJuIGF1eGlsaWFyeVdlYlZpZXcucHRyKCkgPT0g
dmlldzsgfSk7CisgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICBtX2F1eGlsaWFy
eVdlYlZpZXdzLnJlbW92ZShpbmRleCk7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1
cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dG
ZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAg
ICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZp
ZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC0zNzUsMTMgKzM4MywxMyBA
QCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZp
ZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbgogCiAgICAgbV9jcmVhdGVkT3RoZXJQYWdlID0gdHJ1
ZTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdl
KHBhcmVudFZpZXcsIGNvbmZpZ3VyYXRpb24sIHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CisgICAg
YXV0byB2aWV3ID0gcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJh
dGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsKICAgICBXS1BhZ2VSZWYgbmV3UGFnZSA9IHZp
ZXctPnBhZ2UoKTsKIAogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAogICAgIFdLUGFn
ZVVJQ2xpZW50Vjggb3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgOCwgdmlldyB9LAor
ICAgICAgICB7IDgsIHZpZXcucHRyKCkgfSwKICAgICAgICAgbnVsbHB0ciwgLy8gY3JlYXRlTmV3
UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIG51bGxwdHIsIC8vIHNob3dQYWdl
CiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAtNDg1LDggKzQ5Myw5IEBAIFdLUGFnZVJlZiBU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50Vmll
dywgV0tQYWdlQ29uCiAKICAgICB2aWV3LT5kaWRJbml0aWFsaXplQ2xpZW50cygpOwogCi0gICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVdpbmRvd1NjYWxlRm9yVGVzdCh2aWV3
LCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1fY3VycmVudEludm9jYXRpb24pOworICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS51cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qodmll
dy5wdHIoKSwgKlRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tX2N1cnJlbnRJbnZvY2F0aW9u
KTsKIAorICAgIG1fYXV4aWxpYXJ5V2ViVmlld3MuYXBwZW5kKFdURk1vdmUodmlldykpOwogICAg
IFdLUmV0YWluKG5ld1BhZ2UpOwogICAgIHJldHVybiBuZXdQYWdlOwogfQpAQCAtOTExLDYgKzky
MCw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAgICAgU2V0Rm9yU2NvcGU8U3RhdGU+IGNo
YW5nZVN0YXRlKG1fc3RhdGUsIFJlc2V0dGluZyk7CiAgICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5W
YWx1ZSA9IHRydWU7CiAKKyAgICBmb3IgKGF1dG8mIGF1eGlsaWFyeVdlYlZpZXcgOiBzdGQ6OmV4
Y2hhbmdlKG1fYXV4aWxpYXJ5V2ViVmlld3MsIHsgfSkpCisgICAgICAgIFdLUGFnZUNsb3NlKGF1
eGlsaWFyeVdlYlZpZXctPnBhZ2UoKSk7CisKICAgICAvLyBUaGlzIHNldHRpbmcgZGlmZmVycyBi
ZXR3ZWVuIHRoZSBhbnRpcXVlIGFuZCBtb2Rlcm4gTWFjIFdlYktpdDIgQVBJLgogICAgIC8vIEZv
ciBub3csIG1haW50YWluIHRoZSBhbnRpcXVlIGJlaGF2aW9yLCBiZWNhdXNlIHNvbWUgdGVzdHMg
ZGVwZW5kIG9uIGl0IQogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgdGVzdGluZyB0aGUgZGVm
YXVsdC4KQEAgLTI3MjEsOSArMjczMyw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
Q3JlYXRlV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sCiAgICAg
bV9tYWluV2ViVmlldyA9IG1ha2VVbmlxdWU8UGxhdGZvcm1XZWJWaWV3Pihjb25maWd1cmF0aW9u
LCBvcHRpb25zKTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3KiBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQor
VW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRl
T3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBy
ZXR1cm4gbmV3IFBsYXRmb3JtV2ViVmlldyhjb25maWd1cmF0aW9uLCBvcHRpb25zKTsKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+KGNvbmZpZ3VyYXRpb24sIG9wdGlv
bnMpOwogfQogCiBXS0NvbnRleHRSZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqdXN0Q29u
dGV4dChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBmNTE1ODAzMWQ4YWYuLmI3
NzhhMmFlNzY3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAt
Mzg0LDcgKzM4NCw3IEBAIHByaXZhdGU6CiAgICAgV0tDb250ZXh0UmVmIHBsYXRmb3JtQWRqdXN0
Q29udGV4dChXS0NvbnRleHRSZWYsIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpOwogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpOwogICAgIHZvaWQgcGxhdGZvcm1DcmVhdGVX
ZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7Ci0gICAg
c3RhdGljIFBsYXRmb3JtV2ViVmlldyogcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1X
ZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0
aW9ucyYpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBwbGF0Zm9ybUNy
ZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7CiAKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlm
IHRoZSByZXNldCB0aW1lZCBvdXQuCiAgICAgYm9vbCBwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmKTsKQEAgLTUxOSw2ICs1MTksOSBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1
cmVzUmVmLCBjb25zdCB2b2lkKik7CiAgICAgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShQbGF0
Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2aWdh
dGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZik7CiAKKyAgICBzdGF0aWMgdm9pZCBj
bG9zZU90aGVyUGFnZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGNsb3NlT3Ro
ZXJQYWdlKFdLUGFnZVJlZiwgUGxhdGZvcm1XZWJWaWV3Kik7CisKICAgICBzdGF0aWMgdm9pZCBy
dW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2
b2lkIHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopOwogCkBAIC01NTIsNiArNTU1LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3dlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmll
dzsKKyAgICBWZWN0b3I8VW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4+IG1fYXV4aWxpYXJ5V2Vi
Vmlld3M7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgV0tS
ZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IG1fcGFnZUdyb3VwOwogICAgIFdLUmV0YWluUHRyPFdL
VXNlckNvbnRlbnRDb250cm9sbGVyUmVmPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpp
bmRleCBiYTE1ZTk1ODdlY2QuLmQ4ZTMyZTc1ZTQzOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNTQsNiArNTQsNyBA
QAogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+
CiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KICNp
bXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvVW5pcXVlUmVmLmg+CiAjaW1w
b3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvU2Vj
dXJpdHlTUEkuaD4KIApAQCAtMjAyLDE0ICsyMDMsMTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RP
cHQKICAgICBbbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCkgX3NldFNoYXJlU2hlZXRDb21w
bGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uRm9yVGVzdGluZzpZRVNdOwogfQogCi1QbGF0
Zm9ybVdlYlZpZXcqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0
Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRl
c3RPcHRpb25zJiBvcHRpb25zKQorVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4gVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50Vmll
dywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgYXV0byBuZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbZ2xvYmFsV2ViVmlld0NvbmZp
Z3VyYXRpb24oKSBjb3B5XSk7CiAgICAgW25ld0NvbmZpZ3VyYXRpb24gX3NldFJlbGF0ZWRXZWJW
aWV3OnN0YXRpY19jYXN0PFdLV2ViVmlldyo+KHBhcmVudFZpZXctPnBsYXRmb3JtVmlldygpKV07
CiAgICAgaWYgKFtuZXdDb25maWd1cmF0aW9uIF9yZWxhdGVkV2ViVmlld10pCiAgICAgICAgIFtu
ZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6W25ld0NvbmZpZ3VyYXRpb24gX3Jl
bGF0ZWRXZWJWaWV3XS5jb25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmVdOwotICAgIFBsYXRm
b3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9ybVdlYlZpZXcobmV3Q29uZmlndXJhdGlvbi5n
ZXQoKSwgb3B0aW9ucyk7Ci0gICAgZmluaXNoQ3JlYXRpbmdQbGF0Zm9ybVdlYlZpZXcodmlldywg
b3B0aW9ucyk7CisgICAgYXV0byB2aWV3ID0gbWFrZVVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+
KG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOworICAgIGZpbmlzaENyZWF0aW5nUGxh
dGZvcm1XZWJWaWV3KHZpZXcucHRyKCksIG9wdGlvbnMpOwogICAgIHJldHVybiB2aWV3OwogfQog
Cg==
</data>
<flag name="commit-queue"
          id="460352"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437214</attachid>
            <date>2021-09-02 16:25:42 -0700</date>
            <delta_ts>2021-09-02 16:56:41 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229838_WKTR_close_views_between_tests_wip.patch</filename>
            <type>text/plain</type>
            <size>16473</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggY2QzMDU2YjkxNWE5Li4wM2I2NmE1
NmQ5NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yOTIsMTEgKzI5Miw2
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENhbk9wZW5XaW5kb3dzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENsb3Nl
UmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIwNTUsNyArMjA1MCw3IEBA
IGNvbnN0IEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInNldENhY2hlTW9kZWwiLCBzZXRDYWNoZU1vZGVsQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0Q2FsbENsb3NlT25XZWJWaWV3cyIsIHNldENhbGxDbG9zZU9uV2ViVmll
d3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRDYW5PcGVuV2luZG93cyIsIHNldENh
bk9wZW5XaW5kb3dzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwgLy8gVGhpcyBpcyBhIG5vLW9wOiBXZSBzaG91bGQgdXBkYXRlIHRoZSBsYXlv
dXQgdGVzdHMgYW5kIHJlbW92ZSBpdC4KICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgInNldERlZmVyc0xvYWRpbmciLCBzZXREZWZlcnNMb2FkaW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA2ODNkNDBmMmFiNGMuLmZiZTA1
ZTgyZTAyNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjI5LDkgKzIyOSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bk9wZW5XaW5kb3dzOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhib29sIGNhbk9wZW5X
aW5kb3dzKSB7IG1fY2FuT3BlbldpbmRvd3MgPSBjYW5PcGVuV2luZG93czsgfQotCi0gICAgYm9v
bCBjbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2Ns
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQotICAgIHZvaWQgc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKSB7IG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlID0gY2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlOyB9CiAgICAgCiAgICAgYm9vbCBuZXdXaW5kb3dzQ29w
eUJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3V2luZG93c0NvcHlCYWNrRm9y
d2FyZExpc3Q7IH0KICAgICB2b2lkIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0KGJv
b2wgbmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QpIHsgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCA9IG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0OyB9CkBAIC00MjksNyAr
NDI2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgeyB0cnVl
IH07CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2ViVmlld3MgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90ZXN0T25zY3JlZW4geyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdmNjFjZTAxNDZiMy4u
YWM3ZjE0MDNjYTBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0xOTg2LDI3ICsxOTg2LDI0IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Rk
OjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIFtbbWFpbldpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3XTsKICNlbmRpZgogCi0gICAgICAgIGlmIChnVGVzdFJ1bm5l
ci0+Y2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAgICAgICAgIE5T
QXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dzXTsKKyAgICAg
ICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOwor
ICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW2FycmF5IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFthcnJh
eSBvYmplY3RBdEluZGV4OmldOwotCi0gICAgICAgICAgICAgICAgLy8gRG9uJ3QgdHJ5IHRvIGNs
b3NlIHRoZSBtYWluIHdpbmRvdwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gW1ttYWlu
RnJhbWUgd2ViVmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAg
ICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pCisgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAg
ICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3XSBzdWJ2aWV3
c10gb2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1t3
aW5kb3cgY29udGVudFZpZXddIHN1YnZpZXdzXSBvYmplY3RBdEluZGV4OjBdOwogI2Vsc2UKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6
W1dlYlZpZXcgY2xhc3NdXSk7Ci0gICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChX
ZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CisgICAgICAgICAgICBBU1NFUlQoW1t3aW5k
b3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7CisgICAgICAg
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93IGNvbnRlbnRWaWV3XTsK
ICNlbmRpZgogCi0gICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAgICAgICAgICAg
ICAgIFt3aW5kb3cgY2xvc2VdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgW3dlYlZpZXcg
Y2xvc2VdOworICAgICAgICAgICAgW3dpbmRvdyBjbG9zZV07CiAgICAgICAgIH0KIAogICAgICAg
ICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZShvcHRpb25zLCBSZXNldFRpbWU6OkFmdGVy
VGVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA2YzA5YTQ0MTRiYzEuLmUyYTIzODA0OGQ0MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMzI3LDE4ICsxMzI3LDE2IEBAIHN0YXRpYyB2b2lk
IHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgLy8gdGhlbiB0cnkgdG8gY2xv
c2UgaXQgaW4gY2FzZSBpdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3Blbi4KICAgICA6OmdUZXN0
UnVubmVyLT5jbG9zZVdlYkluc3BlY3RvcigpOwogCi0gICAgaWYgKDo6Z1Rlc3RSdW5uZXItPmNs
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpKSB7Ci0gICAgICAgIFZlY3RvcjxIV05E
PiB3aW5kb3dzID0gb3BlbldpbmRvd3MoKTsKLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHdpbmRv
d3Muc2l6ZSgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7
Ci0gICAgICAgICAgICBIV05EIHdpbmRvdyA9IHdpbmRvd3NbaV07Ci0KLSAgICAgICAgICAgIC8v
IERvbid0IHRyeSB0byBjbG9zZSB0aGUgbWFpbiB3aW5kb3cKLSAgICAgICAgICAgIGlmICh3aW5k
b3cgPT0gaG9zdFdpbmRvdykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICBWZWN0b3I8
SFdORD4gd2luZG93cyA9IG9wZW5XaW5kb3dzKCk7CisgICAgdW5zaWduZWQgc2l6ZSA9IHdpbmRv
d3Muc2l6ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAg
ICAgICAgSFdORCB3aW5kb3cgPSB3aW5kb3dzW2ldOwogCi0gICAgICAgICAgICA6OkRlc3Ryb3lX
aW5kb3cod2luZG93KTsKLSAgICAgICAgfQorICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2Ug
dGhlIG1haW4gd2luZG93CisgICAgICAgIGlmICh3aW5kb3cgPT0gaG9zdFdpbmRvdykKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIDo6RGVzdHJveVdpbmRvdyh3aW5kb3cpOwogICAg
IH0KIAogICAgIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhvcHRp
b25zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDY3MjczYjc4OGRjMS4uNTJlNWE1
ZTIxYWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTc4LDcgKzc4LDcgQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBrZWVwV2ViSGlzdG9yeSgpOwogICAg
IHVuZGVmaW5lZCBzZXRBY2NlcHRzRWRpdGluZyhib29sZWFuIHZhbHVlKTsKICAgICB1bmRlZmlu
ZWQgc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB1bmRlZmluZWQgc2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRDbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbGVhbiB2YWx1ZSk7IC8vIEZJWE1FOiBU
aGlzIGlzIGEgbm8tb3AsIHdlIHNob3VsZCB1cGRhdGUgdGhlIHRlc3RzIGFuZCByZW1vdmUgaXQu
CiAgICAgdW5kZWZpbmVkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2xlYW4gZW5hYmxlZCwg
Ym9vbGVhbiBwZXJtaXNzaXZlKTsKICAgICB1bmRlZmluZWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwogICAgIHVuZGVmaW5lZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCmluZGV4IDI5ZjViZDVlOWM1MS4uNmFhNzIxYTk4ZjJjIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
MTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAg
dm9pZCBzZXRBY2NlcHRzRWRpdGluZyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dFZGl0aW5n
ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgdm9pZCBzZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZENs
b3NlRXh0cmFXaW5kb3dzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZShib29sKSB7IH0KIAogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVs
ZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUgPSBmYWxzZSk7CiAgICAgdm9pZCBh
ZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CkBAIC0yMTksOCArMjE5LDYgQEAg
cHVibGljOgogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZEFsbG93RWRpdGluZzsgfQogCi0gICAgYm9vbCBzaG91bGRDbG9zZUV4dHJhV2luZG93
c0FmdGVyUnVubmluZ1Rlc3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlRXh0cmFXaW5k
b3dzOyB9Ci0KICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKEpTQ29udGV4
dFJlZiwgdW5zaWduZWQgd29ybGRJRCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKICAgICBzdGF0aWMg
dW5zaWduZWQgd29ybGRJREZvcldvcmxkKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogCkBAIC01
NjYsNyArNTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRHVtcEFsbEZyYW1lU2Ny
b2xsUG9zaXRpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRHVtcEJhY2tGb3J3YXJk
TGlzdHNGb3JBbGxXaW5kb3dzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkQWxsb3dFZGl0
aW5nIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9zaG91bGRDbG9zZUV4dHJhV2luZG93cyB7IGZhbHNl
IH07CiAKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggM2VjMGRkMjFmNDAyLi5iZDkyODY0ODM0NDMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC05MSw2ICs5MSw3
IEBACiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4K
ICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC0yNjgsMTEgKzI2OSwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+c2V0V2lu
ZG93SXNLZXkodHJ1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xv
c2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0g
ICAgV0tQYWdlQ2xvc2UocGFnZSk7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwot
ICAgIGRlbGV0ZSB2aWV3OworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbG9zZU90
aGVyUGFnZShwYWdlLCB2aWV3KTsKIH0KIAogc3RhdGljIHZvaWQgZm9jdXMoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0zNTksNiArMzU5LDE0IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdy
YW50ZWQpCiAgICAgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVk
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFn
ZSwgUGxhdGZvcm1XZWJWaWV3KiB2aWV3KQoreworICAgIFdLUGFnZUNsb3NlKHBhZ2UpOworICAg
IGF1dG8gaW5kZXggPSBtX2F1eGlsaWFyeVdlYlZpZXdzLmZpbmRNYXRjaGluZyhbdmlld10oYXV0
byYgYXV4aWxpYXJ5V2ViVmlldykgeyByZXR1cm4gYXV4aWxpYXJ5V2ViVmlldy5wdHIoKSA9PSB2
aWV3OyB9KTsKKyAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgIG1fYXV4aWxpYXJ5
V2ViVmlld3MucmVtb3ZlKGluZGV4KTsKK30KKwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0Zl
YXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAg
IFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmll
dyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTM3NSwxMyArMzgzLDEzIEBA
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmll
dyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAKICAgICBtX2NyZWF0ZWRPdGhlclBhZ2UgPSB0cnVl
OwogCi0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2Uo
cGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsKKyAgICBh
dXRvIHZpZXcgPSBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShwYXJlbnRWaWV3LCBjb25maWd1cmF0
aW9uLCBwYXJlbnRWaWV3LT5vcHRpb25zKCkpOwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmll
dy0+cGFnZSgpOwogCiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwogCiAgICAgV0tQYWdl
VUlDbGllbnRWOCBvdGhlclBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA4LCB2aWV3IH0sCisg
ICAgICAgIHsgOCwgdmlldy5wdHIoKSB9LAogICAgICAgICBudWxscHRyLCAvLyBjcmVhdGVOZXdQ
YWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgbnVsbHB0ciwgLy8gc2hvd1BhZ2UK
ICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC00ODUsOCArNDkzLDkgQEAgV0tQYWdlUmVmIFRl
c3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
LCBXS1BhZ2VDb24KIAogICAgIHZpZXctPmRpZEluaXRpYWxpemVDbGllbnRzKCk7CiAKLSAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudXBkYXRlV2luZG93U2NhbGVGb3JUZXN0KHZpZXcs
ICpUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubV9jdXJyZW50SW52b2NhdGlvbik7CisgICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVdpbmRvd1NjYWxlRm9yVGVzdCh2aWV3
LnB0cigpLCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1fY3VycmVudEludm9jYXRpb24p
OwogCisgICAgbV9hdXhpbGlhcnlXZWJWaWV3cy5hcHBlbmQoV1RGTW92ZSh2aWV3KSk7CiAgICAg
V0tSZXRhaW4obmV3UGFnZSk7CiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CkBAIC05MTEsNiArOTIw
LDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhj
b25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBTZXRGb3JTY29wZTxTdGF0ZT4gY2hh
bmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKICAgICBtX2JlZm9yZVVubG9hZFJldHVyblZh
bHVlID0gdHJ1ZTsKIAorICAgIGZvciAoYXV0byYgYXV4aWxpYXJ5V2ViVmlldyA6IHN0ZDo6ZXhj
aGFuZ2UobV9hdXhpbGlhcnlXZWJWaWV3cywgeyB9KSkKKyAgICAgICAgV0tQYWdlQ2xvc2UoYXV4
aWxpYXJ5V2ViVmlldy0+cGFnZSgpKTsKKwogICAgIC8vIFRoaXMgc2V0dGluZyBkaWZmZXJzIGJl
dHdlZW4gdGhlIGFudGlxdWUgYW5kIG1vZGVybiBNYWMgV2ViS2l0MiBBUEkuCiAgICAgLy8gRm9y
IG5vdywgbWFpbnRhaW4gdGhlIGFudGlxdWUgYmVoYXZpb3IsIGJlY2F1c2Ugc29tZSB0ZXN0cyBk
ZXBlbmQgb24gaXQhCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZh
dWx0LgpAQCAtMjcyMSw5ICsyNzMzLDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1D
cmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwKICAgICBt
X21haW5XZWJWaWV3ID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbmZpZ3VyYXRpb24s
IG9wdGlvbnMpOwogfQogCi1QbGF0Zm9ybVdlYlZpZXcqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCitV
bmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVP
dGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogewotICAgIHJl
dHVybiBuZXcgUGxhdGZvcm1XZWJWaWV3KGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpOworICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4oY29uZmlndXJhdGlvbiwgb3B0aW9u
cyk7CiB9CiAKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGY1MTU4MDMxZDhhZi4uYjc3
OGEyYWU3NjdmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0z
ODQsNyArMzg0LDcgQEAgcHJpdmF0ZToKICAgICBXS0NvbnRleHRSZWYgcGxhdGZvcm1BZGp1c3RD
b250ZXh0KFdLQ29udGV4dFJlZiwgV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZik7CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNyZWF0ZVdl
YlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKLSAgICBz
dGF0aWMgUGxhdGZvcm1XZWJWaWV3KiBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdl
YlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRp
b25zJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+IHBsYXRmb3JtQ3Jl
YXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJh
dGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKIAogICAgIC8vIFJldHVybnMgZmFsc2UgaWYg
dGhlIHJlc2V0IHRpbWVkIG91dC4KICAgICBib29sIHBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpOwpAQCAtNTE5LDYgKzUxOSw5IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVy
ZXNSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFBsYXRm
b3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0
aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmKTsKIAorICAgIHN0YXRpYyB2b2lkIGNs
b3NlT3RoZXJQYWdlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgY2xvc2VPdGhl
clBhZ2UoV0tQYWdlUmVmLCBQbGF0Zm9ybVdlYlZpZXcqKTsKKwogICAgIHN0YXRpYyB2b2lkIHJ1
bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CiAKQEAgLTU1Miw2ICs1NTUsNyBAQCBwcml2
YXRlOgogICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3
OworICAgIFZlY3RvcjxVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3Pj4gbV9hdXhpbGlhcnlXZWJW
aWV3czsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gbV9wYWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tV
c2VyQ29udGVudENvbnRyb2xsZXJSZWY+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmlu
ZGV4IGJhMTVlOTU4N2VjZC4uZDhlMzJlNzVlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC01NCw2ICs1NCw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbXBv
cnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9TZWN1
cml0eVNQSS5oPgogCkBAIC0yMDIsMTQgKzIwMywxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9w
dAogICAgIFttX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKSBfc2V0U2hhcmVTaGVldENvbXBs
ZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOllFU107CiB9CiAKLVBsYXRm
b3JtV2ViVmlldyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRm
b3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCitVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBhdXRvIG5ld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbigpIGNvcHldKTsKICAgICBbbmV3Q29uZmlndXJhdGlvbiBfc2V0UmVsYXRlZFdlYlZp
ZXc6c3RhdGljX2Nhc3Q8V0tXZWJWaWV3Kj4ocGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCkpXTsK
ICAgICBpZiAoW25ld0NvbmZpZ3VyYXRpb24gX3JlbGF0ZWRXZWJWaWV3XSkKICAgICAgICAgW25l
d0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpbbmV3Q29uZmlndXJhdGlvbiBfcmVs
YXRlZFdlYlZpZXddLmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZV07Ci0gICAgUGxhdGZv
cm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhuZXdDb25maWd1cmF0aW9uLmdl
dCgpLCBvcHRpb25zKTsKLSAgICBmaW5pc2hDcmVhdGluZ1BsYXRmb3JtV2ViVmlldyh2aWV3LCBv
cHRpb25zKTsKKyAgICBhdXRvIHZpZXcgPSBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4o
bmV3Q29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7CisgICAgZmluaXNoQ3JlYXRpbmdQbGF0
Zm9ybVdlYlZpZXcodmlldy5wdHIoKSwgb3B0aW9ucyk7CiAgICAgcmV0dXJuIHZpZXc7CiB9CiAK
</data>
<flag name="commit-queue"
          id="460354"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437215</attachid>
            <date>2021-09-02 16:32:16 -0700</date>
            <delta_ts>2021-09-02 16:36:11 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229838_WKTR_close_views_between_tests_wip.patch</filename>
            <type>text/plain</type>
            <size>15903</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggY2QzMDU2YjkxNWE5Li4wM2I2NmE1
NmQ5NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yOTIsMTEgKzI5Miw2
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENhbk9wZW5XaW5kb3dzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENsb3Nl
UmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIwNTUsNyArMjA1MCw3IEBA
IGNvbnN0IEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInNldENhY2hlTW9kZWwiLCBzZXRDYWNoZU1vZGVsQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0Q2FsbENsb3NlT25XZWJWaWV3cyIsIHNldENhbGxDbG9zZU9uV2ViVmll
d3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRDYW5PcGVuV2luZG93cyIsIHNldENh
bk9wZW5XaW5kb3dzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwgLy8gVGhpcyBpcyBhIG5vLW9wOiBXZSBzaG91bGQgdXBkYXRlIHRoZSBsYXlv
dXQgdGVzdHMgYW5kIHJlbW92ZSBpdC4KICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgInNldERlZmVyc0xvYWRpbmciLCBzZXREZWZlcnNMb2FkaW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA2ODNkNDBmMmFiNGMuLmZiZTA1
ZTgyZTAyNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjI5LDkgKzIyOSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bk9wZW5XaW5kb3dzOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhib29sIGNhbk9wZW5X
aW5kb3dzKSB7IG1fY2FuT3BlbldpbmRvd3MgPSBjYW5PcGVuV2luZG93czsgfQotCi0gICAgYm9v
bCBjbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2Ns
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQotICAgIHZvaWQgc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKSB7IG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlID0gY2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlOyB9CiAgICAgCiAgICAgYm9vbCBuZXdXaW5kb3dzQ29w
eUJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3V2luZG93c0NvcHlCYWNrRm9y
d2FyZExpc3Q7IH0KICAgICB2b2lkIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0KGJv
b2wgbmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QpIHsgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCA9IG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0OyB9CkBAIC00MjksNyAr
NDI2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgeyB0cnVl
IH07CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2ViVmlld3MgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90ZXN0T25zY3JlZW4geyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdmNjFjZTAxNDZiMy4u
YWM3ZjE0MDNjYTBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0xOTg2LDI3ICsxOTg2LDI0IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Rk
OjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIFtbbWFpbldpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3XTsKICNlbmRpZgogCi0gICAgICAgIGlmIChnVGVzdFJ1bm5l
ci0+Y2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAgICAgICAgIE5T
QXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dzXTsKKyAgICAg
ICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOwor
ICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW2FycmF5IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFthcnJh
eSBvYmplY3RBdEluZGV4OmldOwotCi0gICAgICAgICAgICAgICAgLy8gRG9uJ3QgdHJ5IHRvIGNs
b3NlIHRoZSBtYWluIHdpbmRvdwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gW1ttYWlu
RnJhbWUgd2ViVmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAg
ICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pCisgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAg
ICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3XSBzdWJ2aWV3
c10gb2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1t3
aW5kb3cgY29udGVudFZpZXddIHN1YnZpZXdzXSBvYmplY3RBdEluZGV4OjBdOwogI2Vsc2UKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6
W1dlYlZpZXcgY2xhc3NdXSk7Ci0gICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChX
ZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CisgICAgICAgICAgICBBU1NFUlQoW1t3aW5k
b3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7CisgICAgICAg
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93IGNvbnRlbnRWaWV3XTsK
ICNlbmRpZgogCi0gICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAgICAgICAgICAg
ICAgIFt3aW5kb3cgY2xvc2VdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgW3dlYlZpZXcg
Y2xvc2VdOworICAgICAgICAgICAgW3dpbmRvdyBjbG9zZV07CiAgICAgICAgIH0KIAogICAgICAg
ICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZShvcHRpb25zLCBSZXNldFRpbWU6OkFmdGVy
VGVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA2YzA5YTQ0MTRiYzEuLjA0MzdhNjk1ZjM3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMzI3LDcgKzEzMjcsNyBAQCBzdGF0aWMgdm9pZCBy
dW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIC8vIHRoZW4gdHJ5IHRvIGNsb3Nl
IGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG9wZW4uCiAgICAgOjpnVGVzdFJ1
bm5lci0+Y2xvc2VXZWJJbnNwZWN0b3IoKTsKIAotICAgIGlmICg6OmdUZXN0UnVubmVyLT5jbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSkgeworICAgIHsKICAgICAgICAgVmVjdG9y
PEhXTkQ+IHdpbmRvd3MgPSBvcGVuV2luZG93cygpOwogICAgICAgICB1bnNpZ25lZCBzaXplID0g
d2luZG93cy5zaXplKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBp
KyspIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDY3MjczYjc4OGRjMS4uNTJlNWE1
ZTIxYWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTc4LDcgKzc4LDcgQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBrZWVwV2ViSGlzdG9yeSgpOwogICAg
IHVuZGVmaW5lZCBzZXRBY2NlcHRzRWRpdGluZyhib29sZWFuIHZhbHVlKTsKICAgICB1bmRlZmlu
ZWQgc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB1bmRlZmluZWQgc2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRDbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbGVhbiB2YWx1ZSk7IC8vIEZJWE1FOiBU
aGlzIGlzIGEgbm8tb3AsIHdlIHNob3VsZCB1cGRhdGUgdGhlIHRlc3RzIGFuZCByZW1vdmUgaXQu
CiAgICAgdW5kZWZpbmVkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2xlYW4gZW5hYmxlZCwg
Ym9vbGVhbiBwZXJtaXNzaXZlKTsKICAgICB1bmRlZmluZWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwogICAgIHVuZGVmaW5lZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oCmluZGV4IDI5ZjViZDVlOWM1MS4uNmFhNzIxYTk4ZjJjIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
MTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAg
dm9pZCBzZXRBY2NlcHRzRWRpdGluZyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dFZGl0aW5n
ID0gdmFsdWU7IH0KICAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgdm9pZCBzZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZENs
b3NlRXh0cmFXaW5kb3dzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZShib29sKSB7IH0KIAogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVs
ZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUgPSBmYWxzZSk7CiAgICAgdm9pZCBh
ZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CkBAIC0yMTksOCArMjE5LDYgQEAg
cHVibGljOgogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVybiBt
X3Nob3VsZEFsbG93RWRpdGluZzsgfQogCi0gICAgYm9vbCBzaG91bGRDbG9zZUV4dHJhV2luZG93
c0FmdGVyUnVubmluZ1Rlc3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlRXh0cmFXaW5k
b3dzOyB9Ci0KICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKEpTQ29udGV4
dFJlZiwgdW5zaWduZWQgd29ybGRJRCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKICAgICBzdGF0aWMg
dW5zaWduZWQgd29ybGRJREZvcldvcmxkKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogCkBAIC01
NjYsNyArNTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRHVtcEFsbEZyYW1lU2Ny
b2xsUG9zaXRpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRHVtcEJhY2tGb3J3YXJk
TGlzdHNGb3JBbGxXaW5kb3dzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkQWxsb3dFZGl0
aW5nIHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9zaG91bGRDbG9zZUV4dHJhV2luZG93cyB7IGZhbHNl
IH07CiAKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggM2VjMGRkMjFmNDAyLi5iZDkyODY0ODM0NDMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC05MSw2ICs5MSw3
IEBACiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4K
ICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCkBAIC0yNjgsMTEgKzI2OSwxMCBAQCB2b2lkIFRlc3RD
b250cm9sbGVyOjpydW5Nb2RhbChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+c2V0V2lu
ZG93SXNLZXkodHJ1ZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQordm9pZCBUZXN0Q29udHJvbGxlcjo6Y2xv
c2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0g
ICAgV0tQYWdlQ2xvc2UocGFnZSk7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gc3RhdGlj
X2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwot
ICAgIGRlbGV0ZSB2aWV3OworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jbG9zZU90
aGVyUGFnZShwYWdlLCB2aWV3KTsKIH0KIAogc3RhdGljIHZvaWQgZm9jdXMoV0tQYWdlUmVmIHBh
Z2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0zNTksNiArMzU5LDE0IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdy
YW50ZWQpCiAgICAgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVk
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFn
ZSwgUGxhdGZvcm1XZWJWaWV3KiB2aWV3KQoreworICAgIFdLUGFnZUNsb3NlKHBhZ2UpOworICAg
IGF1dG8gaW5kZXggPSBtX2F1eGlsaWFyeVdlYlZpZXdzLmZpbmRNYXRjaGluZyhbdmlld10oYXV0
byYgYXV4aWxpYXJ5V2ViVmlldykgeyByZXR1cm4gYXV4aWxpYXJ5V2ViVmlldy5wdHIoKSA9PSB2
aWV3OyB9KTsKKyAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgIG1fYXV4aWxpYXJ5
V2ViVmlld3MucmVtb3ZlKGluZGV4KTsKK30KKwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0Zl
YXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAg
IFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmll
dyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTM3NSwxMyArMzgzLDEzIEBA
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmll
dyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAKICAgICBtX2NyZWF0ZWRPdGhlclBhZ2UgPSB0cnVl
OwogCi0gICAgUGxhdGZvcm1XZWJWaWV3KiB2aWV3ID0gcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2Uo
cGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsKKyAgICBh
dXRvIHZpZXcgPSBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShwYXJlbnRWaWV3LCBjb25maWd1cmF0
aW9uLCBwYXJlbnRWaWV3LT5vcHRpb25zKCkpOwogICAgIFdLUGFnZVJlZiBuZXdQYWdlID0gdmll
dy0+cGFnZSgpOwogCiAgICAgdmlldy0+cmVzaXplVG8oODAwLCA2MDApOwogCiAgICAgV0tQYWdl
VUlDbGllbnRWOCBvdGhlclBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyA4LCB2aWV3IH0sCisg
ICAgICAgIHsgOCwgdmlldy5wdHIoKSB9LAogICAgICAgICBudWxscHRyLCAvLyBjcmVhdGVOZXdQ
YWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgbnVsbHB0ciwgLy8gc2hvd1BhZ2UK
ICAgICAgICAgY2xvc2VPdGhlclBhZ2UsCkBAIC00ODUsOCArNDkzLDkgQEAgV0tQYWdlUmVmIFRl
c3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
LCBXS1BhZ2VDb24KIAogICAgIHZpZXctPmRpZEluaXRpYWxpemVDbGllbnRzKCk7CiAKLSAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkudXBkYXRlV2luZG93U2NhbGVGb3JUZXN0KHZpZXcs
ICpUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubV9jdXJyZW50SW52b2NhdGlvbik7CisgICAg
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVwZGF0ZVdpbmRvd1NjYWxlRm9yVGVzdCh2aWV3
LnB0cigpLCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1fY3VycmVudEludm9jYXRpb24p
OwogCisgICAgbV9hdXhpbGlhcnlXZWJWaWV3cy5hcHBlbmQoV1RGTW92ZSh2aWV3KSk7CiAgICAg
V0tSZXRhaW4obmV3UGFnZSk7CiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CkBAIC05MTEsNiArOTIw
LDkgQEAgYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhj
b25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucywgUmUKICAgICBTZXRGb3JTY29wZTxTdGF0ZT4gY2hh
bmdlU3RhdGUobV9zdGF0ZSwgUmVzZXR0aW5nKTsKICAgICBtX2JlZm9yZVVubG9hZFJldHVyblZh
bHVlID0gdHJ1ZTsKIAorICAgIGZvciAoYXV0byYgYXV4aWxpYXJ5V2ViVmlldyA6IHN0ZDo6ZXhj
aGFuZ2UobV9hdXhpbGlhcnlXZWJWaWV3cywgeyB9KSkKKyAgICAgICAgV0tQYWdlQ2xvc2UoYXV4
aWxpYXJ5V2ViVmlldy0+cGFnZSgpKTsKKwogICAgIC8vIFRoaXMgc2V0dGluZyBkaWZmZXJzIGJl
dHdlZW4gdGhlIGFudGlxdWUgYW5kIG1vZGVybiBNYWMgV2ViS2l0MiBBUEkuCiAgICAgLy8gRm9y
IG5vdywgbWFpbnRhaW4gdGhlIGFudGlxdWUgYmVoYXZpb3IsIGJlY2F1c2Ugc29tZSB0ZXN0cyBk
ZXBlbmQgb24gaXQhCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSB0ZXN0aW5nIHRoZSBkZWZh
dWx0LgpAQCAtMjcyMSw5ICsyNzMzLDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1D
cmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwKICAgICBt
X21haW5XZWJWaWV3ID0gbWFrZVVuaXF1ZTxQbGF0Zm9ybVdlYlZpZXc+KGNvbmZpZ3VyYXRpb24s
IG9wdGlvbnMpOwogfQogCi1QbGF0Zm9ybVdlYlZpZXcqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCitV
bmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVP
dGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogewotICAgIHJl
dHVybiBuZXcgUGxhdGZvcm1XZWJWaWV3KGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpOworICAgIHJl
dHVybiBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4oY29uZmlndXJhdGlvbiwgb3B0aW9u
cyk7CiB9CiAKIFdLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1BZGp1c3RDb250
ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGY1MTU4MDMxZDhhZi4uYjc3
OGEyYWU3NjdmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0z
ODQsNyArMzg0LDcgQEAgcHJpdmF0ZToKICAgICBXS0NvbnRleHRSZWYgcGxhdGZvcm1BZGp1c3RD
b250ZXh0KFdLQ29udGV4dFJlZiwgV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZik7CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNyZWF0ZVdl
YlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKLSAgICBz
dGF0aWMgUGxhdGZvcm1XZWJWaWV3KiBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdl
YlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRp
b25zJik7CisgICAgc3RhdGljIFVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+IHBsYXRmb3JtQ3Jl
YXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJh
dGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKIAogICAgIC8vIFJldHVybnMgZmFsc2UgaWYg
dGhlIHJlc2V0IHRpbWVkIG91dC4KICAgICBib29sIHBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYpOwpAQCAtNTE5LDYgKzUxOSw5IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIFdLUGFnZVJlZiBjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmlnYXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVy
ZXNSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFBsYXRm
b3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0
aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmKTsKIAorICAgIHN0YXRpYyB2b2lkIGNs
b3NlT3RoZXJQYWdlKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCopOworICAgIHZvaWQgY2xvc2VPdGhl
clBhZ2UoV0tQYWdlUmVmLCBQbGF0Zm9ybVdlYlZpZXcqKTsKKwogICAgIHN0YXRpYyB2b2lkIHJ1
bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CiAKQEAgLTU1Miw2ICs1NTUsNyBAQCBwcml2
YXRlOgogICAgIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlk
ZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3
OworICAgIFZlY3RvcjxVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3Pj4gbV9hdXhpbGlhcnlXZWJW
aWV3czsKICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1Jl
dGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gbV9wYWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tV
c2VyQ29udGVudENvbnRyb2xsZXJSZWY+IG1fdXNlckNvbnRlbnRDb250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmlu
ZGV4IGJhMTVlOTU4N2VjZC4uZDhlMzJlNzVlNDM5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC01NCw2ICs1NCw3IEBA
CiAjaW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbXBv
cnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9TZWN1
cml0eVNQSS5oPgogCkBAIC0yMDIsMTQgKzIwMywxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9w
dAogICAgIFttX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKSBfc2V0U2hhcmVTaGVldENvbXBs
ZXRlc0ltbWVkaWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOllFU107CiB9CiAKLVBsYXRm
b3JtV2ViVmlldyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRm
b3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVz
dE9wdGlvbnMmIG9wdGlvbnMpCitVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3
LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsK
ICAgICBhdXRvIG5ld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtnbG9iYWxXZWJWaWV3Q29uZmln
dXJhdGlvbigpIGNvcHldKTsKICAgICBbbmV3Q29uZmlndXJhdGlvbiBfc2V0UmVsYXRlZFdlYlZp
ZXc6c3RhdGljX2Nhc3Q8V0tXZWJWaWV3Kj4ocGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCkpXTsK
ICAgICBpZiAoW25ld0NvbmZpZ3VyYXRpb24gX3JlbGF0ZWRXZWJWaWV3XSkKICAgICAgICAgW25l
d0NvbmZpZ3VyYXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpbbmV3Q29uZmlndXJhdGlvbiBfcmVs
YXRlZFdlYlZpZXddLmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZV07Ci0gICAgUGxhdGZv
cm1XZWJWaWV3KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhuZXdDb25maWd1cmF0aW9uLmdl
dCgpLCBvcHRpb25zKTsKLSAgICBmaW5pc2hDcmVhdGluZ1BsYXRmb3JtV2ViVmlldyh2aWV3LCBv
cHRpb25zKTsKKyAgICBhdXRvIHZpZXcgPSBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4o
bmV3Q29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7CisgICAgZmluaXNoQ3JlYXRpbmdQbGF0
Zm9ybVdlYlZpZXcodmlldy5wdHIoKSwgb3B0aW9ucyk7CiAgICAgcmV0dXJuIHZpZXc7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437217</attachid>
            <date>2021-09-02 16:36:11 -0700</date>
            <delta_ts>2021-09-02 18:29:59 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>229838_WKTR_close_views_between_tests_wip.patch</filename>
            <type>text/plain</type>
            <size>17356</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggY2QzMDU2YjkxNWE5Li4wM2I2NmE1
NmQ5NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yOTIsMTEgKzI5Miw2
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENhbk9wZW5XaW5kb3dzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHNldENsb3Nl
UmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIwNTUsNyArMjA1MCw3IEBA
IGNvbnN0IEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInNldENhY2hlTW9kZWwiLCBzZXRDYWNoZU1vZGVsQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0Q2FsbENsb3NlT25XZWJWaWV3cyIsIHNldENhbGxDbG9zZU9uV2ViVmll
d3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRDYW5PcGVuV2luZG93cyIsIHNldENh
bk9wZW5XaW5kb3dzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlIiwgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwgLy8gVGhpcyBpcyBhIG5vLW9wOiBXZSBzaG91bGQgdXBkYXRlIHRoZSBsYXlv
dXQgdGVzdHMgYW5kIHJlbW92ZSBpdC4KICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgInNldERlZmVyc0xvYWRpbmciLCBzZXREZWZlcnNMb2FkaW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA2ODNkNDBmMmFiNGMuLmZiZTA1
ZTgyZTAyNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjI5LDkgKzIyOSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bk9wZW5XaW5kb3dzOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhib29sIGNhbk9wZW5X
aW5kb3dzKSB7IG1fY2FuT3BlbldpbmRvd3MgPSBjYW5PcGVuV2luZG93czsgfQotCi0gICAgYm9v
bCBjbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSBjb25zdCB7IHJldHVybiBtX2Ns
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQotICAgIHZvaWQgc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKSB7IG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlID0gY2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlOyB9CiAgICAgCiAgICAgYm9vbCBuZXdXaW5kb3dzQ29w
eUJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3V2luZG93c0NvcHlCYWNrRm9y
d2FyZExpc3Q7IH0KICAgICB2b2lkIHNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0KGJv
b2wgbmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QpIHsgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCA9IG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0OyB9CkBAIC00MjksNyAr
NDI2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHMgeyB0cnVl
IH07CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2ViVmlld3MgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9uZXdXaW5kb3dzQ29weUJhY2tG
b3J3YXJkTGlzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90ZXN0T25zY3JlZW4geyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdmNjFjZTAxNDZiMy4u
YWM3ZjE0MDNjYTBmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC0xOTg2LDI3ICsxOTg2LDI0IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Rk
OjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIFtbbWFpbldpbmRvdyBjb250ZW50Vmll
d10gYWRkU3Vidmlldzp3ZWJWaWV3XTsKICNlbmRpZgogCi0gICAgICAgIGlmIChnVGVzdFJ1bm5l
ci0+Y2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAgICAgICAgIE5T
QXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dzXTsKKyAgICAg
ICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRvd3NdOwor
ICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gW2FycmF5IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFthcnJh
eSBvYmplY3RBdEluZGV4OmldOwotCi0gICAgICAgICAgICAgICAgLy8gRG9uJ3QgdHJ5IHRvIGNs
b3NlIHRoZSBtYWluIHdpbmRvdwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gW1ttYWlu
RnJhbWUgd2ViVmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAg
ICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pCisgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAg
ICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3XSBzdWJ2aWV3
c10gb2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbW1t3
aW5kb3cgY29udGVudFZpZXddIHN1YnZpZXdzXSBvYmplY3RBdEluZGV4OjBdOwogI2Vsc2UKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6
W1dlYlZpZXcgY2xhc3NdXSk7Ci0gICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChX
ZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CisgICAgICAgICAgICBBU1NFUlQoW1t3aW5k
b3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7CisgICAgICAg
ICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93IGNvbnRlbnRWaWV3XTsK
ICNlbmRpZgogCi0gICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAgICAgICAgICAg
ICAgIFt3aW5kb3cgY2xvc2VdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgW3dlYlZpZXcg
Y2xvc2VdOworICAgICAgICAgICAgW3dpbmRvdyBjbG9zZV07CiAgICAgICAgIH0KIAogICAgICAg
ICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZShvcHRpb25zLCBSZXNldFRpbWU6OkFmdGVy
VGVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA2YzA5YTQ0MTRiYzEuLjA0MzdhNjk1ZjM3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMzI3LDcgKzEzMjcsNyBAQCBzdGF0aWMgdm9pZCBy
dW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIC8vIHRoZW4gdHJ5IHRvIGNsb3Nl
IGl0IGluIGNhc2UgaXQgd2FzIGFjY2lkZW50YWxseSBsZWZ0IG9wZW4uCiAgICAgOjpnVGVzdFJ1
bm5lci0+Y2xvc2VXZWJJbnNwZWN0b3IoKTsKIAotICAgIGlmICg6OmdUZXN0UnVubmVyLT5jbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSkgeworICAgIHsKICAgICAgICAgVmVjdG9y
PEhXTkQ+IHdpbmRvd3MgPSBvcGVuV2luZG93cygpOwogICAgICAgICB1bnNpZ25lZCBzaXplID0g
d2luZG93cy5zaXplKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyBp
KyspIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDY3MjczYjc4OGRjMS4uNTJlNWE1
ZTIxYWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTc4LDcgKzc4LDcgQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBrZWVwV2ViSGlzdG9yeSgpOwogICAg
IHVuZGVmaW5lZCBzZXRBY2NlcHRzRWRpdGluZyhib29sZWFuIHZhbHVlKTsKICAgICB1bmRlZmlu
ZWQgc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB1bmRlZmluZWQgc2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xlYW4gdmFsdWUpOworICAgIHVuZGVmaW5lZCBzZXRDbG9z
ZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbGVhbiB2YWx1ZSk7IC8vIEZJWE1FOiBU
aGlzIGlzIGEgbm8tb3AsIHdlIHNob3VsZCB1cGRhdGUgdGhlIHRlc3RzIGFuZCByZW1vdmUgaXQu
CiAgICAgdW5kZWZpbmVkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2xlYW4gZW5hYmxlZCwg
Ym9vbGVhbiBwZXJtaXNzaXZlKTsKICAgICB1bmRlZmluZWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwogICAgIHVuZGVmaW5lZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGIwMjZiNTA3NGE0Ni4uZWYyY2U1ZDZiN2Mx
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTYxLDIxICs1NjEsOSBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlOjpkb25lKCkKIAogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlSWdub3JpbmdGdWxseVN5
bmNocm9ub3VzTW9kZShwYWdlKCktPnBhZ2UoKSwgdG9XSygiRG9uZSIpLmdldCgpLCBib2R5Lmdl
dCgpKTsKIAotICAgIGNsb3NlT3RoZXJQYWdlcygpOwotCiAgICAgbV9zdGF0ZSA9IElkbGU7CiB9
CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OmNsb3NlT3RoZXJQYWdlcygpCi17Ci0gICAgVmVjdG9y
PFdLQnVuZGxlUGFnZVJlZj4gcGFnZXNUb0Nsb3NlOwotICAgIHNpemVfdCBzaXplID0gbV9wYWdl
cy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0gICAgICAg
IHBhZ2VzVG9DbG9zZS5hcHBlbmQobV9wYWdlc1tpXS0+cGFnZSgpKTsKLSAgICBmb3IgKGF1dG8m
IHBhZ2UgOiBwYWdlc1RvQ2xvc2UpCi0gICAgICAgIFdLQnVuZGxlUGFnZUNsb3NlKHBhZ2UpOwot
fQotCiB2b2lkIEluamVjdGVkQnVuZGxlOjpkdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFBhZ2Vz
KFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCiB7CiAgICAgc2l6ZV90IHNpemUgPSBtX3Bh
Z2VzLnNpemUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA3M2Y1ZmYxYTYyODYuLmNmYmFkMDQ5MGMxNiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaApAQCAtNjQsNyArNjQsNiBAQCBwdWJsaWM6CiAgICAgSW5qZWN0ZWRCdW5k
bGVQYWdlKiBwYWdlKCkgY29uc3Q7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYoKSBjb25z
dDsKICAgICBzaXplX3QgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlcy5zaXplKCk7
IH0KLSAgICB2b2lkIGNsb3NlT3RoZXJQYWdlcygpOwogCiAgICAgdm9pZCBkdW1wQmFja0Zvcndh
cmRMaXN0c0ZvckFsbFBhZ2VzKFN0cmluZ0J1aWxkZXImKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAyOWY1YmQ1ZTlj
NTEuLjZhYTcyMWE5OGYyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBrZWVwV2ViSGlzdG9yeSgpOwogICAgIHZvaWQgc2V0QWNjZXB0c0VkaXRpbmcoYm9vbCB2
YWx1ZSkgeyBtX3Nob3VsZEFsbG93RWRpdGluZyA9IHZhbHVlOyB9CiAgICAgdm9pZCBzZXRDYW5P
cGVuV2luZG93cygpOwotICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRDbG9zZUV4dHJhV2luZG93cyA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbCkgeyB9CiAK
ICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJt
aXNzaXZlID0gZmFsc2UpOwogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
SlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29s
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnMpOwpAQCAtMjE5LDggKzIxOSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkQWxs
b3dFZGl0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIAotICAg
IGJvb2wgc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3NBZnRlclJ1bm5pbmdUZXN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRDbG9zZUV4dHJhV2luZG93czsgfQotCiAgICAgdm9pZCBldmFsdWF0ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZChKU0NvbnRleHRSZWYsIHVuc2lnbmVkIHdvcmxkSUQsIEpTU3Ry
aW5nUmVmIHNjcmlwdCk7CiAgICAgc3RhdGljIHVuc2lnbmVkIHdvcmxkSURGb3JXb3JsZChXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmKTsKIApAQCAtNTY2LDcgKzU2NCw2IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX3Nob3VsZER1bXBBbGxGcmFtZVNjcm9sbFBvc2l0aW9ucyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3Nob3VsZER1bXBCYWNrRm9yd2FyZExpc3RzRm9yQWxsV2luZG93cyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3Nob3VsZEFsbG93RWRpdGluZyB7IHRydWUgfTsKLSAgICBib29sIG1fc2hv
dWxkQ2xvc2VFeHRyYVdpbmRvd3MgeyBmYWxzZSB9OwogCiAgICAgYm9vbCBtX2R1bXBFZGl0aW5n
Q2FsbGJhY2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fZHVtcFN0YXR1c0NhbGxiYWNrcyB7IGZh
bHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNl
YzBkZDIxZjQwMi4uYmQ5Mjg2NDgzNDQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZUFycmF5Lmg+
CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApAQCAt
MjY4LDExICsyNjksMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoV0tQYWdlUmVm
IHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLm1haW5XZWJWaWV3KCktPnNldFdpbmRvd0lzS2V5KHRydWUpOwogfQogCi1zdGF0aWMg
dm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIFdLUGFnZUNsb3NlKHBhZ2UpOwogICAgIFBs
YXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBkZWxldGUgdmlldzsKKyAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuY2xvc2VPdGhlclBhZ2UocGFnZSwgdmlldyk7CiB9CiAKIHN0
YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQpA
QCAtMzU5LDYgKzM1OSwxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQogICAgIG1faXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRlZDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxlcjo6
Y2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIFBsYXRmb3JtV2ViVmlldyogdmlldykKK3sK
KyAgICBXS1BhZ2VDbG9zZShwYWdlKTsKKyAgICBhdXRvIGluZGV4ID0gbV9hdXhpbGlhcnlXZWJW
aWV3cy5maW5kTWF0Y2hpbmcoW3ZpZXddKGF1dG8mIGF1eGlsaWFyeVdlYlZpZXcpIHsgcmV0dXJu
IGF1eGlsaWFyeVdlYlZpZXcucHRyKCkgPT0gdmlldzsgfSk7CisgICAgaWYgKGluZGV4ICE9IG5v
dEZvdW5kKQorICAgICAgICBtX2F1eGlsaWFyeVdlYlZpZXdzLnJlbW92ZShpbmRleCk7Cit9CisK
IFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYg
bmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcg
PSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CkBAIC0zNzUsMTMgKzM4MywxMyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbgogCiAg
ICAgbV9jcmVhdGVkT3RoZXJQYWdlID0gdHJ1ZTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyogdmll
dyA9IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKHBhcmVudFZpZXcsIGNvbmZpZ3VyYXRpb24sIHBh
cmVudFZpZXctPm9wdGlvbnMoKSk7CisgICAgYXV0byB2aWV3ID0gcGxhdGZvcm1DcmVhdGVPdGhl
clBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygpKTsK
ICAgICBXS1BhZ2VSZWYgbmV3UGFnZSA9IHZpZXctPnBhZ2UoKTsKIAogICAgIHZpZXctPnJlc2l6
ZVRvKDgwMCwgNjAwKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50Vjggb3RoZXJQYWdlVUlDbGllbnQg
PSB7Ci0gICAgICAgIHsgOCwgdmlldyB9LAorICAgICAgICB7IDgsIHZpZXcucHRyKCkgfSwKICAg
ICAgICAgbnVsbHB0ciwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAg
ICAgICAgIG51bGxwdHIsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApAQCAt
NDg1LDggKzQ5Myw5IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdl
KFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAKICAgICB2aWV3LT5kaWRJ
bml0aWFsaXplQ2xpZW50cygpOwogCi0gICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnVw
ZGF0ZVdpbmRvd1NjYWxlRm9yVGVzdCh2aWV3LCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
Lm1fY3VycmVudEludm9jYXRpb24pOworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS51
cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qodmlldy5wdHIoKSwgKlRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5tX2N1cnJlbnRJbnZvY2F0aW9uKTsKIAorICAgIG1fYXV4aWxpYXJ5V2ViVmlld3Mu
YXBwZW5kKFdURk1vdmUodmlldykpOwogICAgIFdLUmV0YWluKG5ld1BhZ2UpOwogICAgIHJldHVy
biBuZXdQYWdlOwogfQpAQCAtOTExLDYgKzkyMCw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJl
c2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJl
CiAgICAgU2V0Rm9yU2NvcGU8U3RhdGU+IGNoYW5nZVN0YXRlKG1fc3RhdGUsIFJlc2V0dGluZyk7
CiAgICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHRydWU7CiAKKyAgICBmb3IgKGF1dG8m
IGF1eGlsaWFyeVdlYlZpZXcgOiBzdGQ6OmV4Y2hhbmdlKG1fYXV4aWxpYXJ5V2ViVmlld3MsIHsg
fSkpCisgICAgICAgIFdLUGFnZUNsb3NlKGF1eGlsaWFyeVdlYlZpZXctPnBhZ2UoKSk7CisKICAg
ICAvLyBUaGlzIHNldHRpbmcgZGlmZmVycyBiZXR3ZWVuIHRoZSBhbnRpcXVlIGFuZCBtb2Rlcm4g
TWFjIFdlYktpdDIgQVBJLgogICAgIC8vIEZvciBub3csIG1haW50YWluIHRoZSBhbnRpcXVlIGJl
aGF2aW9yLCBiZWNhdXNlIHNvbWUgdGVzdHMgZGVwZW5kIG9uIGl0IQogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYmUgdGVzdGluZyB0aGUgZGVmYXVsdC4KQEAgLTI3MjEsOSArMjczMyw5IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0
aW9uUmVmIGNvbmZpZ3VyYXRpb24sCiAgICAgbV9tYWluV2ViVmlldyA9IG1ha2VVbmlxdWU8UGxh
dGZvcm1XZWJWaWV3Pihjb25maWd1cmF0aW9uLCBvcHRpb25zKTsKIH0KIAotUGxhdGZvcm1XZWJW
aWV3KiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJW
aWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQorVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4gVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFy
ZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0
T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gbmV3IFBsYXRmb3JtV2ViVmlldyhjb25m
aWd1cmF0aW9uLCBvcHRpb25zKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQbGF0Zm9ybVdl
YlZpZXc+KGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpOwogfQogCiBXS0NvbnRleHRSZWYgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtQWRqdXN0Q29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCBmNTE1ODAzMWQ4YWYuLmI3NzhhMmFlNzY3ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzg0LDcgKzM4NCw3IEBAIHByaXZhdGU6CiAgICAg
V0tDb250ZXh0UmVmIHBsYXRmb3JtQWRqdXN0Q29udGV4dChXS0NvbnRleHRSZWYsIFdLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgp
OwogICAgIHZvaWQgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYs
IGNvbnN0IFRlc3RPcHRpb25zJik7Ci0gICAgc3RhdGljIFBsYXRmb3JtV2ViVmlldyogcGxhdGZv
cm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYpOworICAgIHN0YXRpYyBVbmlxdWVSZWY8
UGxhdGZvcm1XZWJWaWV3PiBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcq
IHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7
CiAKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSByZXNldCB0aW1lZCBvdXQuCiAgICAgYm9v
bCBwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMm
KTsKQEAgLTUxOSw2ICs1MTksOSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBXS1BhZ2VSZWYgY3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0
aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmLCBjb25zdCB2b2lkKik7CiAgICAgV0tQ
YWdlUmVmIGNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJl
c1JlZik7CiAKKyAgICBzdGF0aWMgdm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYsIGNvbnN0
IHZvaWQqKTsKKyAgICB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiwgUGxhdGZvcm1XZWJW
aWV3Kik7CisKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChXS1BhZ2VSZWYsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyop
OwogCkBAIC01NTIsNiArNTU1LDcgQEAgcHJpdmF0ZToKICAgICBXZWJOb3RpZmljYXRpb25Qcm92
aWRlciBtX3dlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKKyAgICBWZWN0b3I8VW5pcXVlUmVmPFBsYXRm
b3JtV2ViVmlldz4+IG1fYXV4aWxpYXJ5V2ViVmlld3M7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IG1fcGFn
ZUdyb3VwOwogICAgIFdLUmV0YWluUHRyPFdLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmPiBtX3Vz
ZXJDb250ZW50Q29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBiYTE1ZTk1ODdlY2QuLmQ4ZTMyZTc1ZTQz
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxl
ckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvVW5pcXVlUmVmLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4K
ICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaD4KIApAQCAtMjAyLDE0ICsyMDMs
MTQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHQKICAgICBbbV9tYWluV2ViVmlldy0+cGxhdGZv
cm1WaWV3KCkgX3NldFNoYXJlU2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9u
Rm9yVGVzdGluZzpZRVNdOwogfQogCi1QbGF0Zm9ybVdlYlZpZXcqIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQorVW5pcXVlUmVm
PFBsYXRmb3JtV2ViVmlldz4gVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdl
KFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgYXV0byBuZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbZ2xvYmFsV2ViVmlld0NvbmZpZ3VyYXRpb24oKSBjb3B5XSk7CiAgICAgW25ld0Nv
bmZpZ3VyYXRpb24gX3NldFJlbGF0ZWRXZWJWaWV3OnN0YXRpY19jYXN0PFdLV2ViVmlldyo+KHBh
cmVudFZpZXctPnBsYXRmb3JtVmlldygpKV07CiAgICAgaWYgKFtuZXdDb25maWd1cmF0aW9uIF9y
ZWxhdGVkV2ViVmlld10pCiAgICAgICAgIFtuZXdDb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRh
U3RvcmU6W25ld0NvbmZpZ3VyYXRpb24gX3JlbGF0ZWRXZWJWaWV3XS5jb25maWd1cmF0aW9uLndl
YnNpdGVEYXRhU3RvcmVdOwotICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IG5ldyBQbGF0Zm9y
bVdlYlZpZXcobmV3Q29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgZmluaXNoQ3Jl
YXRpbmdQbGF0Zm9ybVdlYlZpZXcodmlldywgb3B0aW9ucyk7CisgICAgYXV0byB2aWV3ID0gbWFr
ZVVuaXF1ZVJlZjxQbGF0Zm9ybVdlYlZpZXc+KG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlv
bnMpOworICAgIGZpbmlzaENyZWF0aW5nUGxhdGZvcm1XZWJWaWV3KHZpZXcucHRyKCksIG9wdGlv
bnMpOwogICAgIHJldHVybiB2aWV3OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437228</attachid>
            <date>2021-09-02 18:30:01 -0700</date>
            <delta_ts>2021-09-03 07:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229838-20210902183000.patch</filename>
            <type>text/plain</type>
            <size>21176</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWRkMjU2YmNiMTM3MTA3YzZmNWE0ODA2NmI3Y2FmMDlh
NjI1NWU3NS4uZDFhYjg0ZDdkNWJhMzdmZTJlYzlmMmY5NWEyY2RhOGQ2ZWJmZjkwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDIxLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViS2l0VGVzdFJ1bm5lciBkb2VzIG5vdCBjb3JyZWN0bHkgY2xvc2UgYWxsIGF1eGlsaWFy
eSBXZWJWaWV3cyBiZXR3ZWVuIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjk4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJIG5vdGljZWQgd2hlbiBydW5uaW5nIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9jcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeS9jb29wLWNzcC1z
YW5kYm94LW5hdmlnYXRlLmh0dHBzLmh0bWwKKyAgICAgICAgaW4gYSBsb29wIHRoYXQgdGhlIG51
bWJlciBvZiBXZWJDb250ZW50IHByb2Nlc3NlcyB3b3VsZCBncm93IHVudGlsIHdlIGNyYXNoLiBU
aGUgcmVhc29uIGZvciB0aGF0IGlzIHRoYXQgdGhlCisgICAgICAgIHRlc3Qgb3BlbnMgYSBwb3B1
cCB3aW5kb3cgYW5kIHRoYXQgcG9wdXAgd291bGRuJ3QgZ2V0IGNsb3NlZCBiZXR3ZWVuIHJ1bnMu
CisKKyAgICAgICAgVGhlcmUgd2FzIHNvbWUgbG9naWMgaW4gSW5qZWN0ZWRCdW5kbGU6OmRvbmUo
KSB0byBjbG9zZSBhdXhpbGlhcnkgcGFnZXMgYnV0IHRoaXMgcmVsaWVkIG9uIHRoZSBpbmplY3Rl
ZAorICAgICAgICBidW5kbGUgQVBJIGFuZCB0aHVzIG9ubHkga25vd3MgYWJvdXQgcGFnZXMgdGhh
dCBhcmUgaW4gdGhlIHNhbWUgV2ViUHJvY2Vzcy4gTm93YWRheXMsIHdpdGggcHJvY2VzcyBzd2Fw
cGluZywKKyAgICAgICAgaXQgaXMgY29tbW9uIGZvciBhdXhpbGlhcnkgcGFnZXMgdG8gZW5kIHVw
IGluIG90aGVyIFdlYlByb2Nlc3Nlcy4gRm9yIHRoaXMgcmVhc29uLCBJIGRyb3BwZWQgdGhlIGxv
Z2ljIHRvCisgICAgICAgIGNsb3NlIGF1eGlsaWFyeSBwYWdlcyBmcm9tIEluamVjdGVkQnVuZGxl
Ojpkb25lKCkgYW5kIGluc3RlYWQgYWRkZWQgc2ltaWxhciBsb2dpYyBpbiB0aGUgVUlQcm9jZXNz
LAorICAgICAgICBpbnNpZGUgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoKS4KKworICAgICAgICBGaW5hbGx5LCBJIGRyb3BwZWQgbW9zdCBvZiB0aGUgY29kZSBy
ZWxhdGVkIHRvIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRl
KCkgd2hpbGUga2VlcGluZworICAgICAgICB0aGUgbWV0aG9kIGFzIGEgbm8tb3AgZm9yIG5vdyBz
byB0aGF0IEkgZG9uJ3QgaGF2ZSB0byB1cGRhdGUgYWxsIHRoZSBsYXlvdXQgdGVzdHMgaW4gdGhp
cyBwYXRjaCAoSSdsbCBmb2xsb3cKKyAgICAgICAgdXApLiBGb3IgV2ViS2l0VGVzdFJ1bm5lciwg
dGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSB3YXMgYWxy
ZWFkeSBhIG5vLW9wIGFzIHRoZSBkYXRhCisgICAgICAgIG1lbWJlciBnZXR0aW5nIHNldCB3YXMg
bmV2ZXIgcXVlcmllZC4gRm9yIER1bXBSZW5kZXJUcmVlLCBJIGp1c3QgbWFkZSB0aGlzIGJlaGF2
aW9yIHRoZSBkZWZhdWx0IGFzIEkgZG9uJ3Qgc2VlCisgICAgICAgIGFueSByZWFzb24gd2h5IHdl
IHdvdWxkbid0IHdhbnQgdG8gY2xvc2UgYXV4aWxpYXJ5IHBhZ2VzIGJldHdlZW4gdGVzdHMuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKHNldENs
b3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RS
dW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0Q2FuT3BlbldpbmRvd3MpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJ1blRl
c3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6Cisg
ICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6ZG9uZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6cGFnZUNv
dW50IGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNsb3NlT3RoZXJQYWdl
KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAg
ICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UpOgorCiAyMDIxLTA5
LTAyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Vi
a2l0LXBhdGNoXSBhcHBseS13YXRjaGxpc3QgY29tbWFuZCBmYWlscyBvbiBweXRob24gMyAoRm9s
bG93LXVwIGZpeCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggY2QzMDU2Yjkx
NWE5NTUyODBkOTRkMzc1MDkyMzc3NGY4NmIyODBhOS4uMDNiNjZhNTZkOTc1MjkyMDAxZDk3YTAw
M2FlZTlkMjY5ODU3NzFiZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTI5
MiwxMSArMjkyLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0Q2FuT3BlbldpbmRvd3NDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnUKIAogc3RhdGljIEpTVmFsdWVS
ZWYgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5l
ciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldENsb3NlUmVtYWluaW5nV2luZG93
c1doZW5Db21wbGV0ZShKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwog
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApAQCAtMjA1NSw3
ICsyMDUwLDcgQEAgY29uc3QgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVu
Y3Rpb25zKCkKICAgICAgICAgeyAic2V0Q2FjaGVNb2RlbCIsIHNldENhY2hlTW9kZWxDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRDYWxsQ2xvc2VPbldlYlZpZXdzIiwgc2V0Q2FsbENs
b3NlT25XZWJWaWV3c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldENhbk9wZW5XaW5k
b3dzIiwgc2V0Q2FuT3BlbldpbmRvd3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUiLCBzZXRDbG9zZVJlbWFpbmluZ1dpbmRv
d3NXaGVuQ29tcGxldGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRDbG9zZVJlbWFp
bmluZ1dpbmRvd3NXaGVuQ29tcGxldGUiLCBzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29t
cGxldGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LCAvLyBUaGlzIGlzIGEgbm8tb3A6IFdlIHNob3VsZCB1cGRh
dGUgdGhlIGxheW91dCB0ZXN0cyBhbmQgcmVtb3ZlIGl0LgogICAgICAgICB7ICJzZXRDdXN0b21Q
b2xpY3lEZWxlZ2F0ZSIsIHNldEN1c3RvbVBvbGljeURlbGVnYXRlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0RGF0YWJhc2VRdW90YSIsIHNldERhdGFiYXNlUXVvdGFDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LCAKICAgICAgICAgeyAic2V0RGVmZXJzTG9hZGluZyIsIHNldERlZmVyc0xvYWRpbmdD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IDY4M2Q0MGYy
YWI0YzYwZTUwN2YyNGM4NjI1YTJkMTVlYjlmMWZhMzQuLmZiZTA1ZTgyZTAyNWUwMGM4Y2QwOGEx
YjMxZmFmYjViYzUxNDU2Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTIyOSw5
ICsyMjksNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYW5PcGVuV2luZG93czsgfQogICAgIHZvaWQgc2V0Q2FuT3BlbldpbmRvd3MoYm9v
bCBjYW5PcGVuV2luZG93cykgeyBtX2Nhbk9wZW5XaW5kb3dzID0gY2FuT3BlbldpbmRvd3M7IH0K
LQotICAgIGJvb2wgY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGU7IH0KLSAgICB2b2lkIHNl
dENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sIGNsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZSkgeyBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSA9
IGNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQogICAgIAogICAgIGJvb2wgbmV3
V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QoKSBjb25zdCB7IHJldHVybiBtX25ld1dpbmRvd3ND
b3B5QmFja0ZvcndhcmRMaXN0OyB9CiAgICAgdm9pZCBzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3
YXJkTGlzdChib29sIG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0KSB7IG1fbmV3V2luZG93
c0NvcHlCYWNrRm9yd2FyZExpc3QgPSBuZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdDsgfQpA
QCAtNDI5LDcgKzQyNiw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2dlbmVyYXRlUGl4ZWxSZXN1
bHRzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYWxsQ2xvc2VPbldlYlZpZXdzIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9jYW5PcGVuV2luZG93cyB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2Nsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZSB7IHRydWUgfTsKICAgICBib29sIG1fbmV3V2luZG93
c0NvcHlCYWNrRm9yd2FyZExpc3QgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zdG9wUHJvdmlzaW9u
YWxGcmFtZUxvYWRzIHsgZmFsc2UgfTsKICAgICBib29sIG1fdGVzdE9uc2NyZWVuIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA3ZjYx
Y2UwMTQ2YjM2MGMxY2ZhMzYwMjg2NzMwMGUyZGU0OWQ3OTgzLi5hYzdmMTQwM2NhMGYwYzQ3Y2Fk
ZTZjMDQxNGEzNmM1NGUxOTgxMDRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCkBAIC0xOTg2LDI3ICsxOTg2LDI0IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgICAgIFtbbWFpbldpbmRvdyBj
b250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3XTsKICNlbmRpZgogCi0gICAgICAgIGlmIChn
VGVzdFJ1bm5lci0+Y2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKCkpIHsKLSAgICAg
ICAgICAgIE5TQXJyYXkqIGFycmF5ID0gW0R1bXBSZW5kZXJUcmVlV2luZG93IG9wZW5XaW5kb3dz
XTsKKyAgICAgICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3Blbldp
bmRvd3NdOworICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICBOU1dp
bmRvdyAqd2luZG93ID0gW2FycmF5IG9iamVjdEF0SW5kZXg6aV07CiAKLSAgICAgICAgICAgIHVu
c2lnbmVkIGNvdW50ID0gW2FycmF5IGNvdW50XTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgTlNXaW5kb3cgKndpbmRv
dyA9IFthcnJheSBvYmplY3RBdEluZGV4OmldOwotCi0gICAgICAgICAgICAgICAgLy8gRG9uJ3Qg
dHJ5IHRvIGNsb3NlIHRoZSBtYWluIHdpbmRvdwotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cg
PT0gW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93XSkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93
CisgICAgICAgICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10p
CisgICAgICAgICAgICAgICAgY29udGludWU7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICAgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW1tbd2luZG93IGNvbnRlbnRWaWV3
XSBzdWJ2aWV3c10gb2JqZWN0QXRJbmRleDowXTsKKyAgICAgICAgICAgIFdlYlZpZXcgKndlYlZp
ZXcgPSBbW1t3aW5kb3cgY29udGVudFZpZXddIHN1YnZpZXdzXSBvYmplY3RBdEluZGV4OjBdOwog
I2Vsc2UKLSAgICAgICAgICAgICAgICBBU1NFUlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2lu
ZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7Ci0gICAgICAgICAgICAgICAgV2ViVmlldyAqd2Vi
VmlldyA9IChXZWJWaWV3ICopW3dpbmRvdyBjb250ZW50Vmlld107CisgICAgICAgICAgICBBU1NF
UlQoW1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7
CisgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gKFdlYlZpZXcgKilbd2luZG93IGNvbnRl
bnRWaWV3XTsKICNlbmRpZgogCi0gICAgICAgICAgICAgICAgW3dlYlZpZXcgY2xvc2VdOwotICAg
ICAgICAgICAgICAgIFt3aW5kb3cgY2xvc2VdOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
W3dlYlZpZXcgY2xvc2VdOworICAgICAgICAgICAgW3dpbmRvdyBjbG9zZV07CiAgICAgICAgIH0K
IAogICAgICAgICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZShvcHRpb25zLCBSZXNldFRp
bWU6OkFmdGVyVGVzdCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCA2YzA5YTQ0MTRiYzE0NmIwN2ZlMDU0NGMxNjhmZjU3YjlhMjQyMjcwLi4wNDM3
YTY5NWYzN2EyNGIzODU2YWM4YmQwMzM3MjhjNzlmZWZlODdhIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEzMjcsNyArMTMyNyw3IEBAIHN0YXRp
YyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgLy8gdGhlbiB0cnkg
dG8gY2xvc2UgaXQgaW4gY2FzZSBpdCB3YXMgYWNjaWRlbnRhbGx5IGxlZnQgb3Blbi4KICAgICA6
OmdUZXN0UnVubmVyLT5jbG9zZVdlYkluc3BlY3RvcigpOwogCi0gICAgaWYgKDo6Z1Rlc3RSdW5u
ZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpKSB7CisgICAgewogICAgICAg
ICBWZWN0b3I8SFdORD4gd2luZG93cyA9IG9wZW5XaW5kb3dzKCk7CiAgICAgICAgIHVuc2lnbmVk
IHNpemUgPSB3aW5kb3dzLnNpemUoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHNpemU7IGkrKykgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggNjcyNzNiNzg4ZGMx
OTI0MDdhNDEyNDQ2OTg4YTY5Y2FiNDZiYzBhNC4uNTJlNWE1ZTIxYWIyNGUxOTJiYzNlYjU3ODk1
NzVkODQ1MjEzMTgyZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC03OCw3ICs3OCw3
IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB1bmRlZmluZWQga2VlcFdlYkhpc3Rvcnko
KTsKICAgICB1bmRlZmluZWQgc2V0QWNjZXB0c0VkaXRpbmcoYm9vbGVhbiB2YWx1ZSk7CiAgICAg
dW5kZWZpbmVkIHNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgdW5kZWZpbmVkIHNldENsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sZWFuIHZhbHVlKTsKKyAgICB1bmRlZmluZWQg
c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2xlYW4gdmFsdWUpOyAvLyBG
SVhNRTogVGhpcyBpcyBhIG5vLW9wLCB3ZSBzaG91bGQgdXBkYXRlIHRoZSB0ZXN0cyBhbmQgcmVt
b3ZlIGl0LgogICAgIHVuZGVmaW5lZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sZWFuIGVu
YWJsZWQsIGJvb2xlYW4gcGVybWlzc2l2ZSk7CiAgICAgdW5kZWZpbmVkIGFkZE9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmluZyBkZXN0aW5h
dGlvblByb3RvY29sLCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFuIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKTsKICAgICB1bmRlZmluZWQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxs
b3dMaXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBiMDI2YjUwNzRhNDY2ZDlmZDMx
MTI5MWZlNjFjMTFkZWVmYzE1M2UxLi5lZjJjZTVkNmI3YzFkYWI1ZDc3YTZmZjc3Y2Y4YWU3NjAw
Y2QxZjQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTYxLDIxICs1NjEsOSBAQCB2b2lkIEluamVj
dGVkQnVuZGxlOjpkb25lKCkKIAogICAgIFdLQnVuZGxlUGFnZVBvc3RNZXNzYWdlSWdub3JpbmdG
dWxseVN5bmNocm9ub3VzTW9kZShwYWdlKCktPnBhZ2UoKSwgdG9XSygiRG9uZSIpLmdldCgpLCBi
b2R5LmdldCgpKTsKIAotICAgIGNsb3NlT3RoZXJQYWdlcygpOwotCiAgICAgbV9zdGF0ZSA9IElk
bGU7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGU6OmNsb3NlT3RoZXJQYWdlcygpCi17Ci0gICAg
VmVjdG9yPFdLQnVuZGxlUGFnZVJlZj4gcGFnZXNUb0Nsb3NlOwotICAgIHNpemVfdCBzaXplID0g
bV9wYWdlcy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDE7IGkgPCBzaXplOyArK2kpCi0g
ICAgICAgIHBhZ2VzVG9DbG9zZS5hcHBlbmQobV9wYWdlc1tpXS0+cGFnZSgpKTsKLSAgICBmb3Ig
KGF1dG8mIHBhZ2UgOiBwYWdlc1RvQ2xvc2UpCi0gICAgICAgIFdLQnVuZGxlUGFnZUNsb3NlKHBh
Z2UpOwotfQotCiB2b2lkIEluamVjdGVkQnVuZGxlOjpkdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFs
bFBhZ2VzKFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIpCiB7CiAgICAgc2l6ZV90IHNpemUg
PSBtX3BhZ2VzLnNpemUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCA3M2Y1ZmYxYTYyODZkODU1YjU5YmMx
MmE3NTM5YmQ5Y2I3YTE2OTZkLi5jZmJhZDA0OTBjMTZiOTc2MmNjMTI5YTE2MjliYzZmZDA4NGJk
OGI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC02NCw3ICs2NCw2IEBAIHB1YmxpYzoKICAgICBJbmplY3Rl
ZEJ1bmRsZVBhZ2UqIHBhZ2UoKSBjb25zdDsKICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZigp
IGNvbnN0OwogICAgIHNpemVfdCBwYWdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VzLnNp
emUoKTsgfQotICAgIHZvaWQgY2xvc2VPdGhlclBhZ2VzKCk7CiAKICAgICB2b2lkIGR1bXBCYWNr
Rm9yd2FyZExpc3RzRm9yQWxsUGFnZXMoU3RyaW5nQnVpbGRlciYpOwogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDI5ZjVi
ZDVlOWM1MWYxMzQ4Y2IwNzA1MzQzMzIyZDE5MDAzNWI2MzIuLjZhYTcyMWE5OGYyYzVhN2Q4NmJh
MTIzMTI3ZjI0NWI0NmJiOWFkYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGJv
b2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0VkaXRpbmcgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0
Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5D
b21wbGV0ZShib29sIHZhbHVlKSB7IG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgPSB2YWx1ZTsg
fQorICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wpIHsg
fQogCiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIGVuYWJsZWQsIGJvb2wg
cGVybWlzc2l2ZSA9IGZhbHNlKTsKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90
b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKQEAgLTIxOSw4ICsyMTksNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3Vs
ZEFsbG93RWRpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQWxsb3dFZGl0aW5nOyB9CiAK
LSAgICBib29sIHNob3VsZENsb3NlRXh0cmFXaW5kb3dzQWZ0ZXJSdW5uaW5nVGVzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3M7IH0KLQogICAgIHZvaWQgZXZhbHVh
dGVTY3JpcHRJbklzb2xhdGVkV29ybGQoSlNDb250ZXh0UmVmLCB1bnNpZ25lZCB3b3JsZElELCBK
U1N0cmluZ1JlZiBzY3JpcHQpOwogICAgIHN0YXRpYyB1bnNpZ25lZCB3b3JsZElERm9yV29ybGQo
V0tCdW5kbGVTY3JpcHRXb3JsZFJlZik7CiAKQEAgLTU2Niw3ICs1NjQsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zaG91bGREdW1wQWxsRnJhbWVTY3JvbGxQb3NpdGlvbnMgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zaG91bGREdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFdpbmRvd3MgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zaG91bGRBbGxvd0VkaXRpbmcgeyB0cnVlIH07Ci0gICAgYm9vbCBt
X3Nob3VsZENsb3NlRXh0cmFXaW5kb3dzIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9kdW1wRWRp
dGluZ0NhbGxiYWNrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2R1bXBTdGF0dXNDYWxsYmFja3Mg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCAzZWMwZGQyMWY0MDJhY2VjNmE4MThkM2Q1ZjA1MDViNTdhMDZlYTYzLi5iZDkyODY0ODM0NDMz
ZjY5MDY2NGZhMTBmODEzYjYzZTJhZDhmZWNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JT
Y29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZUFycmF5
Lmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIApA
QCAtMjY4LDExICsyNjksMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoV0tQYWdl
UmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiAgICAgVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnNldFdpbmRvd0lzS2V5KHRydWUpOwogfQogCi1zdGF0
aWMgdm9pZCBjbG9zZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBwYWdl
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIFdLUGFnZUNsb3NlKHBhZ2UpOwogICAg
IFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBkZWxldGUgdmlldzsKKyAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY2xvc2VPdGhlclBhZ2UocGFnZSwgdmlldyk7CiB9CiAK
IHN0YXRpYyB2b2lkIGZvY3VzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQpAQCAtMzU5LDYgKzM1OSwxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQogICAgIG1faXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRlZDsKIH0KIAordm9pZCBUZXN0Q29udHJvbGxl
cjo6Y2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2UsIFBsYXRmb3JtV2ViVmlldyogdmlldykK
K3sKKyAgICBXS1BhZ2VDbG9zZShwYWdlKTsKKyAgICBhdXRvIGluZGV4ID0gbV9hdXhpbGlhcnlX
ZWJWaWV3cy5maW5kTWF0Y2hpbmcoW3ZpZXddKGF1dG8mIGF1eGlsaWFyeVdlYlZpZXcpIHsgcmV0
dXJuIGF1eGlsaWFyeVdlYlZpZXcucHRyKCkgPT0gdmlldzsgfSk7CisgICAgaWYgKGluZGV4ICE9
IG5vdEZvdW5kKQorICAgICAgICBtX2F1eGlsaWFyeVdlYlZpZXdzLnJlbW92ZShpbmRleCk7Cit9
CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwg
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25S
ZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZp
ZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGll
bnRJbmZvKSk7CkBAIC0zNzUsMTMgKzM4MywxMyBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6
OmNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbgog
CiAgICAgbV9jcmVhdGVkT3RoZXJQYWdlID0gdHJ1ZTsKIAotICAgIFBsYXRmb3JtV2ViVmlldyog
dmlldyA9IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKHBhcmVudFZpZXcsIGNvbmZpZ3VyYXRpb24s
IHBhcmVudFZpZXctPm9wdGlvbnMoKSk7CisgICAgYXV0byB2aWV3ID0gcGxhdGZvcm1DcmVhdGVP
dGhlclBhZ2UocGFyZW50VmlldywgY29uZmlndXJhdGlvbiwgcGFyZW50Vmlldy0+b3B0aW9ucygp
KTsKICAgICBXS1BhZ2VSZWYgbmV3UGFnZSA9IHZpZXctPnBhZ2UoKTsKIAogICAgIHZpZXctPnJl
c2l6ZVRvKDgwMCwgNjAwKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50Vjggb3RoZXJQYWdlVUlDbGll
bnQgPSB7Ci0gICAgICAgIHsgOCwgdmlldyB9LAorICAgICAgICB7IDgsIHZpZXcucHRyKCkgfSwK
ICAgICAgICAgbnVsbHB0ciwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYw
CiAgICAgICAgIG51bGxwdHIsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdlLApA
QCAtNDg1LDggKzQ5Myw5IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQ
YWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uCiAKICAgICB2aWV3LT5k
aWRJbml0aWFsaXplQ2xpZW50cygpOwogCi0gICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
LnVwZGF0ZVdpbmRvd1NjYWxlRm9yVGVzdCh2aWV3LCAqVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLm1fY3VycmVudEludm9jYXRpb24pOworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS51cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qodmlldy5wdHIoKSwgKlRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5tX2N1cnJlbnRJbnZvY2F0aW9uKTsKIAorICAgIG1fYXV4aWxpYXJ5V2ViVmll
d3MuYXBwZW5kKFdURk1vdmUodmlldykpOwogICAgIFdLUmV0YWluKG5ld1BhZ2UpOwogICAgIHJl
dHVybiBuZXdQYWdlOwogfQpAQCAtOTExLDYgKzkyMCw5IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6
OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMs
IFJlCiAgICAgU2V0Rm9yU2NvcGU8U3RhdGU+IGNoYW5nZVN0YXRlKG1fc3RhdGUsIFJlc2V0dGlu
Zyk7CiAgICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHRydWU7CiAKKyAgICBmb3IgKGF1
dG8mIGF1eGlsaWFyeVdlYlZpZXcgOiBzdGQ6OmV4Y2hhbmdlKG1fYXV4aWxpYXJ5V2ViVmlld3Ms
IHsgfSkpCisgICAgICAgIFdLUGFnZUNsb3NlKGF1eGlsaWFyeVdlYlZpZXctPnBhZ2UoKSk7CisK
ICAgICAvLyBUaGlzIHNldHRpbmcgZGlmZmVycyBiZXR3ZWVuIHRoZSBhbnRpcXVlIGFuZCBtb2Rl
cm4gTWFjIFdlYktpdDIgQVBJLgogICAgIC8vIEZvciBub3csIG1haW50YWluIHRoZSBhbnRpcXVl
IGJlaGF2aW9yLCBiZWNhdXNlIHNvbWUgdGVzdHMgZGVwZW5kIG9uIGl0IQogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgYmUgdGVzdGluZyB0aGUgZGVmYXVsdC4KQEAgLTI3MjEsOSArMjczMyw5IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyhXS1BhZ2VDb25maWd1
cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sCiAgICAgbV9tYWluV2ViVmlldyA9IG1ha2VVbmlxdWU8
UGxhdGZvcm1XZWJWaWV3Pihjb25maWd1cmF0aW9uLCBvcHRpb25zKTsKIH0KIAotUGxhdGZvcm1X
ZWJWaWV3KiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1X
ZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24s
IGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQorVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4g
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyog
cGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBU
ZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICByZXR1cm4gbmV3IFBsYXRmb3JtV2ViVmlldyhj
b25maWd1cmF0aW9uLCBvcHRpb25zKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxQbGF0Zm9y
bVdlYlZpZXc+KGNvbmZpZ3VyYXRpb24sIG9wdGlvbnMpOwogfQogCiBXS0NvbnRleHRSZWYgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtQWRqdXN0Q29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dCwg
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAppbmRleCBmNTE1ODAzMWQ4YWY2YTYwNTMwOGI3NGUyMzIyNzM1YTE1ZWM5OTFkLi5i
Nzc4YTJhZTc2N2YwZTM4NzViMzQyZjNkMjZhYzM4NzgyMGMwMTQ4IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zODQsNyArMzg0LDcgQEAgcHJpdmF0ZToKICAg
ICBXS0NvbnRleHRSZWYgcGxhdGZvcm1BZGp1c3RDb250ZXh0KFdLQ29udGV4dFJlZiwgV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJl
ZiwgY29uc3QgVGVzdE9wdGlvbnMmKTsKLSAgICBzdGF0aWMgUGxhdGZvcm1XZWJWaWV3KiBwbGF0
Zm9ybUNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7CisgICAgc3RhdGljIFVuaXF1ZVJl
ZjxQbGF0Zm9ybVdlYlZpZXc+IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmll
dyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMm
KTsKIAogICAgIC8vIFJldHVybnMgZmFsc2UgaWYgdGhlIHJlc2V0IHRpbWVkIG91dC4KICAgICBi
b29sIHBsYXRmb3JtUmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0aW9u
cyYpOwpAQCAtNTE5LDYgKzUxOSw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFdLUGFnZVJlZiBj
cmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBXS05hdmln
YXRpb25BY3Rpb25SZWYsIFdLV2luZG93RmVhdHVyZXNSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBX
S1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQ
YWdlQ29uZmlndXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1
cmVzUmVmKTsKIAorICAgIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiwgY29u
c3Qgdm9pZCopOworICAgIHZvaWQgY2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmLCBQbGF0Zm9ybVdl
YlZpZXcqKTsKKwogICAgIHN0YXRpYyB2b2lkIHJ1bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3
Kik7CiAKQEAgLTU1Miw2ICs1NTUsNyBAQCBwcml2YXRlOgogICAgIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyIG1fd2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1XZWJWaWV3PiBtX21haW5XZWJWaWV3OworICAgIFZlY3RvcjxVbmlxdWVSZWY8UGxh
dGZvcm1XZWJWaWV3Pj4gbV9hdXhpbGlhcnlXZWJWaWV3czsKICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IG1fY29udGV4dDsKICAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gbV9w
YWdlR3JvdXA7CiAgICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWY+IG1f
dXNlckNvbnRlbnRDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGJhMTVlOTU4N2VjZDgyYzJlNmQzZGZh
NjdlMDgxM2VjYzA1NzBhMGUuLmQ4ZTMyZTc1ZTQzOTRlOTNmZTA0M2JkMGU1NGMzNGFiZTZmYmYy
N2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KQEAgLTU0LDYgKzU0LDcgQEAKICNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVE
YXRhU3RvcmVDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2lt
cG9ydCA8d3RmL1VuaXF1ZVJlZi5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+
CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+CiAKQEAgLTIwMiwxNCArMjAz
LDE0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyhXS1BhZ2VD
b25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0CiAgICAgW21fbWFpbldlYlZpZXctPnBsYXRm
b3JtVmlldygpIF9zZXRTaGFyZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlv
bkZvclRlc3Rpbmc6WUVTXTsKIH0KIAotUGxhdGZvcm1XZWJWaWV3KiBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKK1VuaXF1ZVJl
ZjxQbGF0Zm9ybVdlYlZpZXc+IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFn
ZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNv
bnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogewogICAgIGF1dG8gbmV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uKCkgY29weV0pOwogICAgIFtuZXdD
b25maWd1cmF0aW9uIF9zZXRSZWxhdGVkV2ViVmlldzpzdGF0aWNfY2FzdDxXS1dlYlZpZXcqPihw
YXJlbnRWaWV3LT5wbGF0Zm9ybVZpZXcoKSldOwogICAgIGlmIChbbmV3Q29uZmlndXJhdGlvbiBf
cmVsYXRlZFdlYlZpZXddKQogICAgICAgICBbbmV3Q29uZmlndXJhdGlvbiBzZXRXZWJzaXRlRGF0
YVN0b3JlOltuZXdDb25maWd1cmF0aW9uIF9yZWxhdGVkV2ViVmlld10uY29uZmlndXJhdGlvbi53
ZWJzaXRlRGF0YVN0b3JlXTsKLSAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBuZXcgUGxhdGZv
cm1XZWJWaWV3KG5ld0NvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIGZpbmlzaENy
ZWF0aW5nUGxhdGZvcm1XZWJWaWV3KHZpZXcsIG9wdGlvbnMpOworICAgIGF1dG8gdmlldyA9IG1h
a2VVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PihuZXdDb25maWd1cmF0aW9uLmdldCgpLCBvcHRp
b25zKTsKKyAgICBmaW5pc2hDcmVhdGluZ1BsYXRmb3JtV2ViVmlldyh2aWV3LnB0cigpLCBvcHRp
b25zKTsKICAgICByZXR1cm4gdmlldzsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437268</attachid>
            <date>2021-09-03 07:17:50 -0700</date>
            <delta_ts>2021-09-03 10:17:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229838-20210903071749.patch</filename>
            <type>text/plain</type>
            <size>21480</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxOTcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWRkMjU2YmNiMTM3MTA3YzZmNWE0ODA2NmI3Y2FmMDlh
NjI1NWU3NS4uM2RiMTE1YzEyNTc1NzU3YmRmYjNiMjlhY2NlOTNmZWUzMDZjYThlYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDIxLTA5LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgV2ViS2l0VGVzdFJ1bm5lciBkb2VzIG5vdCBjb3JyZWN0bHkgY2xvc2UgYWxsIGF1eGlsaWFy
eSBXZWJWaWV3cyBiZXR3ZWVuIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjk4MzgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIEkgbm90aWNlZCB3aGVuIHJ1bm5pbmcgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Nyb3NzLW9yaWdpbi1vcGVuZXItcG9saWN5L2Nvb3AtY3Nw
LXNhbmRib3gtbmF2aWdhdGUuaHR0cHMuaHRtbAorICAgICAgICBpbiBhIGxvb3AgdGhhdCB0aGUg
bnVtYmVyIG9mIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHdvdWxkIGdyb3cgdW50aWwgd2UgY3Jhc2gu
IFRoZSByZWFzb24gZm9yIHRoYXQgaXMgdGhhdCB0aGUKKyAgICAgICAgdGVzdCBvcGVucyBhIHBv
cHVwIHdpbmRvdyBhbmQgdGhhdCBwb3B1cCB3b3VsZG4ndCBnZXQgY2xvc2VkIGJldHdlZW4gcnVu
cy4KKworICAgICAgICBUaGVyZSB3YXMgc29tZSBsb2dpYyBpbiBJbmplY3RlZEJ1bmRsZTo6ZG9u
ZSgpIHRvIGNsb3NlIGF1eGlsaWFyeSBwYWdlcyBidXQgdGhpcyByZWxpZWQgb24gdGhlIGluamVj
dGVkCisgICAgICAgIGJ1bmRsZSBBUEkgYW5kIHRodXMgb25seSBrbm93cyBhYm91dCBwYWdlcyB0
aGF0IGFyZSBpbiB0aGUgc2FtZSBXZWJQcm9jZXNzLiBOb3dhZGF5cywgd2l0aCBwcm9jZXNzIHN3
YXBwaW5nLAorICAgICAgICBpdCBpcyBjb21tb24gZm9yIGF1eGlsaWFyeSBwYWdlcyB0byBlbmQg
dXAgaW4gb3RoZXIgV2ViUHJvY2Vzc2VzLiBGb3IgdGhpcyByZWFzb24sIEkgZHJvcHBlZCB0aGUg
bG9naWMgdG8KKyAgICAgICAgY2xvc2UgYXV4aWxpYXJ5IHBhZ2VzIGZyb20gSW5qZWN0ZWRCdW5k
bGU6OmRvbmUoKSBhbmQgaW5zdGVhZCBhZGRlZCBzaW1pbGFyIGxvZ2ljIGluIHRoZSBVSVByb2Nl
c3MsCisgICAgICAgIGluc2lkZSBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcygpLgorCisgICAgICAgIEZpbmFsbHksIEkgZHJvcHBlZCBtb3N0IG9mIHRoZSBjb2Rl
IHJlbGF0ZWQgdG8gdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUoKSB3aGlsZSBrZWVwaW5nCisgICAgICAgIHRoZSBtZXRob2QgYXMgYSBuby1vcCBmb3Igbm93
IHNvIHRoYXQgSSBkb24ndCBoYXZlIHRvIHVwZGF0ZSBhbGwgdGhlIGxheW91dCB0ZXN0cyBpbiB0
aGlzIHBhdGNoIChJJ2xsIGZvbGxvdworICAgICAgICB1cCkuIEZvciBXZWJLaXRUZXN0UnVubmVy
LCB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSgpIHdhcyBh
bHJlYWR5IGEgbm8tb3AgYXMgdGhlIGRhdGEKKyAgICAgICAgbWVtYmVyIGdldHRpbmcgc2V0IHdh
cyBuZXZlciBxdWVyaWVkLiBGb3IgRHVtcFJlbmRlclRyZWUsIEkganVzdCBtYWRlIHRoaXMgYmVo
YXZpb3IgdGhlIGRlZmF1bHQgYXMgSSBkb24ndCBzZWUKKyAgICAgICAgYW55IHJlYXNvbiB3aHkg
d2Ugd291bGRuJ3Qgd2FudCB0byBjbG9zZSBhdXhpbGlhcnkgcGFnZXMgYmV0d2VlbiB0ZXN0cy4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoc2V0
Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlQ2FsbGJhY2spOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRDYW5PcGVuV2luZG93cyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocnVu
VGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlOjpkb25lKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpwYWdl
Q291bnQgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRDbG9zZVJlbWFpbmlu
Z1dpbmRvd3NXaGVuQ29tcGxldGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xvc2VPdGhlclBh
Z2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVPdGhlclBhZ2Up
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZSk6CisKIDIwMjEt
MDktMDIgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3
ZWJraXQtcGF0Y2hdIGFwcGx5LXdhdGNobGlzdCBjb21tYW5kIGZhaWxzIG9uIHB5dGhvbiAzIChG
b2xsb3ctdXAgZml4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCBjZDMwNTZi
OTE1YTk1NTI4MGQ5NGQzNzUwOTIzNzc0Zjg2YjI4MGE5Li4wM2I2NmE1NmQ5NzUyOTIwMDFkOTdh
MDAzYWVlOWQyNjk4NTc3MWJmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAt
MjkyLDExICsyOTIsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRDYW5PcGVuV2luZG93c0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdQogCiBzdGF0aWMgSlNWYWx1
ZVJlZiBzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGVDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVu
bmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0Q2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7
CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCkBAIC0yMDU1
LDcgKzIwNTAsNyBAQCBjb25zdCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNG
dW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRDYWNoZU1vZGVsIiwgc2V0Q2FjaGVNb2RlbENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldENhbGxDbG9zZU9uV2ViVmlld3MiLCBzZXRDYWxs
Q2xvc2VPbldlYlZpZXdzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0Q2FuT3Blbldp
bmRvd3MiLCBzZXRDYW5PcGVuV2luZG93c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNl
dENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSIsIHNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldENsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZSIsIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5D
b21wbGV0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIC8vIFRoaXMgaXMgYSBuby1vcDogV2Ugc2hvdWxkIHVw
ZGF0ZSB0aGUgbGF5b3V0IHRlc3RzIGFuZCByZW1vdmUgaXQuCiAgICAgICAgIHsgInNldEN1c3Rv
bVBvbGljeURlbGVnYXRlIiwgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGVDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzZXREYXRhYmFzZVF1b3RhIiwgc2V0RGF0YWJhc2VRdW90YUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sIAogICAgICAgICB7ICJzZXREZWZlcnNMb2FkaW5nIiwgc2V0RGVmZXJzTG9hZGlu
Z0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggNjgzZDQw
ZjJhYjRjNjBlNTA3ZjI0Yzg2MjVhMmQxNWViOWYxZmEzNC4uZmJlMDVlODJlMDI1ZTAwYzhjZDA4
YTFiMzFmYWZiNWJjNTE0NTZjZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMjI5
LDkgKzIyOSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY2FuT3BlbldpbmRvd3MoKSBjb25zdCB7
IHJldHVybiBtX2Nhbk9wZW5XaW5kb3dzOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cyhi
b29sIGNhbk9wZW5XaW5kb3dzKSB7IG1fY2FuT3BlbldpbmRvd3MgPSBjYW5PcGVuV2luZG93czsg
fQotCi0gICAgYm9vbCBjbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSBjb25zdCB7
IHJldHVybiBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsgfQotICAgIHZvaWQg
c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGJvb2wgY2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKSB7IG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRl
ID0gY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlOyB9CiAgICAgCiAgICAgYm9vbCBu
ZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3V2luZG93
c0NvcHlCYWNrRm9yd2FyZExpc3Q7IH0KICAgICB2b2lkIHNldE5ld1dpbmRvd3NDb3B5QmFja0Zv
cndhcmRMaXN0KGJvb2wgbmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3QpIHsgbV9uZXdXaW5k
b3dzQ29weUJhY2tGb3J3YXJkTGlzdCA9IG5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0OyB9
CkBAIC00MjksNyArNDI2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJl
c3VsdHMgeyB0cnVlIH07CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2ViVmlld3MgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9uZXdXaW5k
b3dzQ29weUJhY2tGb3J3YXJkTGlzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3N0b3BQcm92aXNp
b25hbEZyYW1lTG9hZHMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90ZXN0T25zY3JlZW4geyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDdm
NjFjZTAxNDZiMzYwYzFjZmEzNjAyODY3MzAwZTJkZTQ5ZDc5ODMuLjY3ZjI3NDFiNGYwYjBkZjYz
ZWI3Y2UyZjI5ZjY4OTU1MDVjNzRmZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KQEAgLTE5ODYsMjcgKzE5ODYsMjAgQEAgc3RhdGljIHZvaWQgcnVuVGVz
dChjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQogICAgICAgICAgICAgW1ttYWluV2luZG93
IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXddOwogI2VuZGlmCiAKLSAgICAgICAgaWYg
KGdUZXN0UnVubmVyLT5jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoKSkgewotICAg
ICAgICAgICAgTlNBcnJheSogYXJyYXkgPSBbRHVtcFJlbmRlclRyZWVXaW5kb3cgb3BlbldpbmRv
d3NdOwotCi0gICAgICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFthcnJheSBjb3VudF07Ci0gICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewotICAgICAgICAg
ICAgICAgIE5TV2luZG93ICp3aW5kb3cgPSBbYXJyYXkgb2JqZWN0QXRJbmRleDppXTsKLQotICAg
ICAgICAgICAgICAgIC8vIERvbid0IHRyeSB0byBjbG9zZSB0aGUgbWFpbiB3aW5kb3cKLSAgICAg
ICAgICAgICAgICBpZiAod2luZG93ID09IFtbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10pCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBmb3IgKE5TV2luZG93ICp3aW5k
b3cgaW4gRHVtcFJlbmRlclRyZWVXaW5kb3cub3BlbldpbmRvd3MpIHsKKyAgICAgICAgICAgIC8v
IERvbid0IHRyeSB0byBjbG9zZSB0aGUgbWFpbiB3aW5kb3cKKyAgICAgICAgICAgIGlmICh3aW5k
b3cgPT0gbWFpbkZyYW1lLndlYlZpZXcud2luZG93KQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgICAgICAgICAgV2ViVmlldyAq
d2ViVmlldyA9IFtbW3dpbmRvdyBjb250ZW50Vmlld10gc3Vidmlld3NdIG9iamVjdEF0SW5kZXg6
MF07CisgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0gW3dpbmRvdy5jb250ZW50Vmlldy5z
dWJ2aWV3cyBvYmplY3RBdEluZGV4OjBdOwogI2Vsc2UKLSAgICAgICAgICAgICAgICBBU1NFUlQo
W1t3aW5kb3cgY29udGVudFZpZXddIGlzS2luZE9mQ2xhc3M6W1dlYlZpZXcgY2xhc3NdXSk7Ci0g
ICAgICAgICAgICAgICAgV2ViVmlldyAqd2ViVmlldyA9IChXZWJWaWV3ICopW3dpbmRvdyBjb250
ZW50Vmlld107CisgICAgICAgICAgICBBU1NFUlQoW3dpbmRvdy5jb250ZW50Vmlld10gaXNLaW5k
T2ZDbGFzczpXZWJWaWV3LmNsYXNzXSk7CisgICAgICAgICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0g
KFdlYlZpZXcgKil3aW5kb3cuY29udGVudFZpZXc7CiAjZW5kaWYKIAotICAgICAgICAgICAgICAg
IFt3ZWJWaWV3IGNsb3NlXTsKLSAgICAgICAgICAgICAgICBbd2luZG93IGNsb3NlXTsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIFt3ZWJWaWV3IGNsb3NlXTsKKyAgICAgICAgICAgIFt3aW5k
b3cgY2xvc2VdOwogICAgICAgICB9CiAKICAgICAgICAgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50
U3RhdGUob3B0aW9ucywgUmVzZXRUaW1lOjpBZnRlclRlc3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNmMwOWE0NDE0YmMxNDZiMDdmZTA1NDRj
MTY4ZmY1N2I5YTI0MjI3MC4uZGM0NDc2ZGRiNTdkYTY4N2VlNWNmNWNhNzQ1YTk0ZTA0YzgyNjk2
MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0x
MzI3LDE4ICsxMzI3LDEzIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1
dExpbmUpCiAgICAgLy8gdGhlbiB0cnkgdG8gY2xvc2UgaXQgaW4gY2FzZSBpdCB3YXMgYWNjaWRl
bnRhbGx5IGxlZnQgb3Blbi4KICAgICA6OmdUZXN0UnVubmVyLT5jbG9zZVdlYkluc3BlY3Rvcigp
OwogCi0gICAgaWYgKDo6Z1Rlc3RSdW5uZXItPmNsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21w
bGV0ZSgpKSB7Ci0gICAgICAgIFZlY3RvcjxIV05EPiB3aW5kb3dzID0gb3BlbldpbmRvd3MoKTsK
LSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IHdpbmRvd3Muc2l6ZSgpOwotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgICAgICBIV05EIHdpbmRvdyA9
IHdpbmRvd3NbaV07Ci0KLSAgICAgICAgICAgIC8vIERvbid0IHRyeSB0byBjbG9zZSB0aGUgbWFp
biB3aW5kb3cKLSAgICAgICAgICAgIGlmICh3aW5kb3cgPT0gaG9zdFdpbmRvdykKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgOjpEZXN0cm95V2luZG93KHdpbmRvdyk7
Ci0gICAgICAgIH0KKyAgICBmb3IgKEhXTkQgd2luZG93IDogb3BlbldpbmRvd3MoKSkgeworICAg
ICAgICAvLyBEb24ndCB0cnkgdG8gY2xvc2UgdGhlIG1haW4gd2luZG93CisgICAgICAgIGlmICh3
aW5kb3cgPT0gaG9zdFdpbmRvdykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIDo6
RGVzdHJveVdpbmRvdyh3aW5kb3cpOwogICAgIH0KIAogICAgIHJlc2V0V2ViVmlld1RvQ29uc2lz
dGVudFN0YXRlQmVmb3JlVGVzdGluZyhvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRs
CmluZGV4IDY3MjczYjc4OGRjMTkyNDA3YTQxMjQ0Njk4OGE2OWNhYjQ2YmMwYTQuLjUyZTVhNWUy
MWFiMjRlMTkyYmMzZWI1Nzg5NTc1ZDg0NTIxMzE4MmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVy
LmlkbApAQCAtNzgsNyArNzgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZp
bmVkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdW5kZWZpbmVkIHNldEFjY2VwdHNFZGl0aW5nKGJv
b2xlYW4gdmFsdWUpOwogICAgIHVuZGVmaW5lZCBzZXRDYW5PcGVuV2luZG93cygpOwotICAgIHVu
ZGVmaW5lZCBzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbGVhbiB2YWx1
ZSk7CisgICAgdW5kZWZpbmVkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShi
b29sZWFuIHZhbHVlKTsgLy8gRklYTUU6IFRoaXMgaXMgYSBuby1vcCwgd2Ugc2hvdWxkIHVwZGF0
ZSB0aGUgdGVzdHMgYW5kIHJlbW92ZSBpdC4KICAgICB1bmRlZmluZWQgc2V0Q3VzdG9tUG9saWN5
RGVsZWdhdGUoYm9vbGVhbiBlbmFibGVkLCBib29sZWFuIHBlcm1pc3NpdmUpOwogICAgIHVuZGVm
aW5lZCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShET01TdHJpbmcgc291cmNlT3JpZ2lu
LCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdW5kZWZpbmVkIHJl
bW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERP
TVN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBi
b29sZWFuIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
YjAyNmI1MDc0YTQ2NmQ5ZmQzMTEyOTFmZTYxYzExZGVlZmMxNTNlMS4uZWYyY2U1ZDZiN2MxZGFi
NWQ3N2E2ZmY3N2NmOGFlNzYwMGNkMWY0MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTU2MSwyMSAr
NTYxLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZG9uZSgpCiAKICAgICBXS0J1bmRsZVBhZ2VQ
b3N0TWVzc2FnZUlnbm9yaW5nRnVsbHlTeW5jaHJvbm91c01vZGUocGFnZSgpLT5wYWdlKCksIHRv
V0soIkRvbmUiKS5nZXQoKSwgYm9keS5nZXQoKSk7CiAKLSAgICBjbG9zZU90aGVyUGFnZXMoKTsK
LQogICAgIG1fc3RhdGUgPSBJZGxlOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlOjpjbG9zZU90
aGVyUGFnZXMoKQotewotICAgIFZlY3RvcjxXS0J1bmRsZVBhZ2VSZWY+IHBhZ2VzVG9DbG9zZTsK
LSAgICBzaXplX3Qgc2l6ZSA9IG1fcGFnZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAx
OyBpIDwgc2l6ZTsgKytpKQotICAgICAgICBwYWdlc1RvQ2xvc2UuYXBwZW5kKG1fcGFnZXNbaV0t
PnBhZ2UoKSk7Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogcGFnZXNUb0Nsb3NlKQotICAgICAgICBX
S0J1bmRsZVBhZ2VDbG9zZShwYWdlKTsKLX0KLQogdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZHVtcEJh
Y2tGb3J3YXJkTGlzdHNGb3JBbGxQYWdlcyhTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyKQog
ewogICAgIHNpemVfdCBzaXplID0gbV9wYWdlcy5zaXplKCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5kZXggNzNm
NWZmMWE2Mjg2ZDg1NWI1OWJjMTJhNzUzOWJkOWNiN2ExNjk2ZC4uY2ZiYWQwNDkwYzE2Yjk3NjJj
YzEyOWExNjI5YmM2ZmQwODRiZDhiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtNjQsNyArNjQsNiBAQCBw
dWJsaWM6CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlKiBwYWdlKCkgY29uc3Q7CiAgICAgV0tCdW5k
bGVQYWdlUmVmIHBhZ2VSZWYoKSBjb25zdDsKICAgICBzaXplX3QgcGFnZUNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlcy5zaXplKCk7IH0KLSAgICB2b2lkIGNsb3NlT3RoZXJQYWdlcygpOwog
CiAgICAgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFBhZ2VzKFN0cmluZ0J1aWxkZXIm
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAppbmRleCAyOWY1YmQ1ZTljNTFmMTM0OGNiMDcwNTM0MzMyMmQxOTAwMzViNjMyLi42
YWE3MjFhOThmMmM1YTdkODZiYTEyMzEyN2YyNDViNDZiYjlhZGI2IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTAwLDcg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBz
ZXRBY2NlcHRzRWRpdGluZyhib29sIHZhbHVlKSB7IG1fc2hvdWxkQWxsb3dFZGl0aW5nID0gdmFs
dWU7IH0KICAgICB2b2lkIHNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgdm9pZCBzZXRDbG9zZVJl
bWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZENsb3NlRXh0
cmFXaW5kb3dzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1do
ZW5Db21wbGV0ZShib29sKSB7IH0KIAogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUo
Ym9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUgPSBmYWxzZSk7CiAgICAgdm9pZCBhZGRPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CkBAIC0yMTksOCArMjE5LDYgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBzaG91bGRBbGxvd0VkaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX3Nob3Vs
ZEFsbG93RWRpdGluZzsgfQogCi0gICAgYm9vbCBzaG91bGRDbG9zZUV4dHJhV2luZG93c0FmdGVy
UnVubmluZ1Rlc3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsb3NlRXh0cmFXaW5kb3dzOyB9
Ci0KICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKEpTQ29udGV4dFJlZiwg
dW5zaWduZWQgd29ybGRJRCwgSlNTdHJpbmdSZWYgc2NyaXB0KTsKICAgICBzdGF0aWMgdW5zaWdu
ZWQgd29ybGRJREZvcldvcmxkKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYpOwogCkBAIC01NjYsNyAr
NTY0LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRHVtcEFsbEZyYW1lU2Nyb2xsUG9z
aXRpb25zIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkRHVtcEJhY2tGb3J3YXJkTGlzdHNG
b3JBbGxXaW5kb3dzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkQWxsb3dFZGl0aW5nIHsg
dHJ1ZSB9OwotICAgIGJvb2wgbV9zaG91bGRDbG9zZUV4dHJhV2luZG93cyB7IGZhbHNlIH07CiAK
ICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
dW1wU3RhdHVzQ2FsbGJhY2tzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggM2VjMGRkMjFmNDAyYWNlYzZhODE4ZDNkNWYwNTA1YjU3YTA2
ZWE2My4uYmQ5Mjg2NDgzNDQzM2Y2OTA2NjRmYTEwZjgxM2I2M2UyYWQ4ZmVjZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTkxLDYgKzkxLDcgQEAKICNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogI2luY2x1
ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0
ZW5hdGVOdW1iZXJzLmg+CiAKQEAgLTI2OCwxMSArMjY5LDEwIEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAg
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5zZXRXaW5kb3dJc0tl
eSh0cnVlKTsKIH0KIAotc3RhdGljIHZvaWQgY2xvc2VPdGhlclBhZ2UoV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit2b2lkIFRlc3RDb250cm9sbGVyOjpjbG9zZU90aGVy
UGFnZShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBXS1Bh
Z2VDbG9zZShwYWdlKTsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxQ
bGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7Ci0gICAgZGVs
ZXRlIHZpZXc7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNsb3NlT3RoZXJQYWdl
KHBhZ2UsIHZpZXcpOwogfQogCiBzdGF0aWMgdm9pZCBmb2N1cyhXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKQEAgLTM1OSw2ICszNTksMTQgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkK
ICAgICBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50ZWQ7CiB9CiAK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBQbGF0
Zm9ybVdlYlZpZXcqIHZpZXcpCit7CisgICAgV0tQYWdlQ2xvc2UocGFnZSk7CisgICAgYXV0byBp
bmRleCA9IG1fYXV4aWxpYXJ5V2ViVmlld3MuZmluZE1hdGNoaW5nKFt2aWV3XShhdXRvJiBhdXhp
bGlhcnlXZWJWaWV3KSB7IHJldHVybiBhdXhpbGlhcnlXZWJWaWV3LnB0cigpID09IHZpZXc7IH0p
OworICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgbV9hdXhpbGlhcnlXZWJWaWV3
cy5yZW1vdmUoaW5kZXgpOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90
aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwg
V0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNS
ZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZv
cm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29u
c3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpAQCAtMzc1LDEzICszODMsMTMgQEAgV0tQYWdl
UmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJl
bnRWaWV3LCBXS1BhZ2VDb24KIAogICAgIG1fY3JlYXRlZE90aGVyUGFnZSA9IHRydWU7CiAKLSAg
ICBQbGF0Zm9ybVdlYlZpZXcqIHZpZXcgPSBwbGF0Zm9ybUNyZWF0ZU90aGVyUGFnZShwYXJlbnRW
aWV3LCBjb25maWd1cmF0aW9uLCBwYXJlbnRWaWV3LT5vcHRpb25zKCkpOworICAgIGF1dG8gdmll
dyA9IHBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKHBhcmVudFZpZXcsIGNvbmZpZ3VyYXRpb24sIHBh
cmVudFZpZXctPm9wdGlvbnMoKSk7CiAgICAgV0tQYWdlUmVmIG5ld1BhZ2UgPSB2aWV3LT5wYWdl
KCk7CiAKICAgICB2aWV3LT5yZXNpemVUbyg4MDAsIDYwMCk7CiAKICAgICBXS1BhZ2VVSUNsaWVu
dFY4IG90aGVyUGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDgsIHZpZXcgfSwKKyAgICAgICAg
eyA4LCB2aWV3LnB0cigpIH0sCiAgICAgICAgIG51bGxwdHIsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMAogICAgICAgICBudWxscHRyLCAvLyBzaG93UGFnZQogICAgICAg
ICBjbG9zZU90aGVyUGFnZSwKQEAgLTQ4NSw4ICs0OTMsOSBAQCBXS1BhZ2VSZWYgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFn
ZUNvbgogCiAgICAgdmlldy0+ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKTsKIAotICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS51cGRhdGVXaW5kb3dTY2FsZUZvclRlc3QodmlldywgKlRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5tX2N1cnJlbnRJbnZvY2F0aW9uKTsKKyAgICBUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkudXBkYXRlV2luZG93U2NhbGVGb3JUZXN0KHZpZXcucHRyKCks
ICpUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubV9jdXJyZW50SW52b2NhdGlvbik7CiAKKyAg
ICBtX2F1eGlsaWFyeVdlYlZpZXdzLmFwcGVuZChXVEZNb3ZlKHZpZXcpKTsKICAgICBXS1JldGFp
bihuZXdQYWdlKTsKICAgICByZXR1cm4gbmV3UGFnZTsKIH0KQEAgLTkxMSw2ICs5MjAsOSBAQCBi
b29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRl
c3RPcHRpb25zJiBvcHRpb25zLCBSZQogICAgIFNldEZvclNjb3BlPFN0YXRlPiBjaGFuZ2VTdGF0
ZShtX3N0YXRlLCBSZXNldHRpbmcpOwogICAgIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgPSB0
cnVlOwogCisgICAgZm9yIChhdXRvJiBhdXhpbGlhcnlXZWJWaWV3IDogc3RkOjpleGNoYW5nZSht
X2F1eGlsaWFyeVdlYlZpZXdzLCB7IH0pKQorICAgICAgICBXS1BhZ2VDbG9zZShhdXhpbGlhcnlX
ZWJWaWV3LT5wYWdlKCkpOworCiAgICAgLy8gVGhpcyBzZXR0aW5nIGRpZmZlcnMgYmV0d2VlbiB0
aGUgYW50aXF1ZSBhbmQgbW9kZXJuIE1hYyBXZWJLaXQyIEFQSS4KICAgICAvLyBGb3Igbm93LCBt
YWludGFpbiB0aGUgYW50aXF1ZSBiZWhhdmlvciwgYmVjYXVzZSBzb21lIHRlc3RzIGRlcGVuZCBv
biBpdCEKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIHRlc3RpbmcgdGhlIGRlZmF1bHQuCkBA
IC0yNzIxLDkgKzI3MzMsOSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdl
YlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLAogICAgIG1fbWFpbldl
YlZpZXcgPSBtYWtlVW5pcXVlPFBsYXRmb3JtV2ViVmlldz4oY29uZmlndXJhdGlvbiwgb3B0aW9u
cyk7CiB9CiAKLVBsYXRmb3JtV2ViVmlldyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRl
T3RoZXJQYWdlKFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKK1VuaXF1ZVJl
ZjxQbGF0Zm9ybVdlYlZpZXc+IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZU90aGVyUGFn
ZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgcmV0dXJuIG5l
dyBQbGF0Zm9ybVdlYlZpZXcoY29uZmlndXJhdGlvbiwgb3B0aW9ucyk7CisgICAgcmV0dXJuIG1h
a2VVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3Pihjb25maWd1cmF0aW9uLCBvcHRpb25zKTsKIH0K
IAogV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUFkanVzdENvbnRleHQoV0tD
b250ZXh0UmVmIGNvbnRleHQsIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZjUxNTgwMzFkOGFmNmE2MDUzMDhiNzRl
MjMyMjczNWExNWVjOTkxZC4uYjc3OGEyYWU3NjdmMGUzODc1YjM0MmYzZDI2YWMzODc4MjBjMDE0
OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzg0LDcgKzM4
NCw3IEBAIHByaXZhdGU6CiAgICAgV0tDb250ZXh0UmVmIHBsYXRmb3JtQWRqdXN0Q29udGV4dChX
S0NvbnRleHRSZWYsIFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYpOwogICAgIHZvaWQgcGxhdGZv
cm1Jbml0aWFsaXplQ29udGV4dCgpOwogICAgIHZvaWQgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdL
UGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHRpb25zJik7Ci0gICAgc3RhdGljIFBs
YXRmb3JtV2ViVmlldyogcGxhdGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBw
YXJlbnRWaWV3LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYpOwor
ICAgIHN0YXRpYyBVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBwbGF0Zm9ybUNyZWF0ZU90aGVy
UGFnZShQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYs
IGNvbnN0IFRlc3RPcHRpb25zJik7CiAKICAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSByZXNl
dCB0aW1lZCBvdXQuCiAgICAgYm9vbCBwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1
ZXMoY29uc3QgVGVzdE9wdGlvbnMmKTsKQEAgLTUxOSw2ICs1MTksOSBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBXS1BhZ2VSZWYgY3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmln
dXJhdGlvblJlZiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBXS1dpbmRvd0ZlYXR1cmVzUmVmLCBj
b25zdCB2b2lkKik7CiAgICAgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShQbGF0Zm9ybVdlYlZp
ZXcqIHBhcmVudFZpZXcsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlv
blJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZik7CiAKKyAgICBzdGF0aWMgdm9pZCBjbG9zZU90aGVy
UGFnZShXS1BhZ2VSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGNsb3NlT3RoZXJQYWdlKFdL
UGFnZVJlZiwgUGxhdGZvcm1XZWJWaWV3Kik7CisKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChX
S1BhZ2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyB2b2lkIHJ1bk1v
ZGFsKFBsYXRmb3JtV2ViVmlldyopOwogCkBAIC01NTIsNiArNTU1LDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJOb3RpZmljYXRpb25Qcm92aWRlciBtX3dlYk5vdGlmaWNhdGlvblByb3ZpZGVyOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2ViVmlldz4gbV9tYWluV2ViVmlldzsKKyAgICBW
ZWN0b3I8VW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4+IG1fYXV4aWxpYXJ5V2ViVmlld3M7CiAg
ICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CiAgICAgV0tSZXRhaW5QdHI8
V0tQYWdlR3JvdXBSZWY+IG1fcGFnZUdyb3VwOwogICAgIFdLUmV0YWluUHRyPFdLVXNlckNvbnRl
bnRDb250cm9sbGVyUmVmPiBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBiYTE1
ZTk1ODdlY2Q4MmMyZTZkM2RmYTY3ZTA4MTNlY2MwNTcwYTBlLi5kOGUzMmU3NWU0Mzk0ZTkzZmUw
NDNiZDBlNTRjMzRhYmU2ZmJmMjdlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC01NCw2ICs1NCw3IEBACiAjaW1wb3J0
IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9VbmlxdWVSZWYuaD4KICNpbXBvcnQgPHd0Zi9j
b2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5o
PgogCkBAIC0yMDIsMTQgKzIwMywxNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNy
ZWF0ZVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdAogICAgIFtt
X21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKSBfc2V0U2hhcmVTaGVldENvbXBsZXRlc0ltbWVk
aWF0ZWx5V2l0aFJlc29sdXRpb25Gb3JUZXN0aW5nOllFU107CiB9CiAKLVBsYXRmb3JtV2ViVmll
dyogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlT3RoZXJQYWdlKFBsYXRmb3JtV2ViVmll
dyogcGFyZW50VmlldywgV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdGlvbnMm
IG9wdGlvbnMpCitVbmlxdWVSZWY8UGxhdGZvcm1XZWJWaWV3PiBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1DcmVhdGVPdGhlclBhZ2UoUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3LCBXS1BhZ2VD
b25maWd1cmF0aW9uUmVmLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBhdXRv
IG5ld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtnbG9iYWxXZWJWaWV3Q29uZmlndXJhdGlvbigp
IGNvcHldKTsKICAgICBbbmV3Q29uZmlndXJhdGlvbiBfc2V0UmVsYXRlZFdlYlZpZXc6c3RhdGlj
X2Nhc3Q8V0tXZWJWaWV3Kj4ocGFyZW50Vmlldy0+cGxhdGZvcm1WaWV3KCkpXTsKICAgICBpZiAo
W25ld0NvbmZpZ3VyYXRpb24gX3JlbGF0ZWRXZWJWaWV3XSkKICAgICAgICAgW25ld0NvbmZpZ3Vy
YXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTpbbmV3Q29uZmlndXJhdGlvbiBfcmVsYXRlZFdlYlZp
ZXddLmNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZV07Ci0gICAgUGxhdGZvcm1XZWJWaWV3
KiB2aWV3ID0gbmV3IFBsYXRmb3JtV2ViVmlldyhuZXdDb25maWd1cmF0aW9uLmdldCgpLCBvcHRp
b25zKTsKLSAgICBmaW5pc2hDcmVhdGluZ1BsYXRmb3JtV2ViVmlldyh2aWV3LCBvcHRpb25zKTsK
KyAgICBhdXRvIHZpZXcgPSBtYWtlVW5pcXVlUmVmPFBsYXRmb3JtV2ViVmlldz4obmV3Q29uZmln
dXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7CisgICAgZmluaXNoQ3JlYXRpbmdQbGF0Zm9ybVdlYlZp
ZXcodmlldy5wdHIoKSwgb3B0aW9ucyk7CiAgICAgcmV0dXJuIHZpZXc7CiB9CiAK
</data>
<flag name="commit-queue"
          id="460436"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>