<?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>41529</bug_id>
          
          <creation_ts>2010-07-02 12:27:58 -0700</creation_ts>
          <short_desc>Add the ability for user scripts and user styles to affect just the top frame</short_desc>
          <delta_ts>2010-07-08 21:14:08 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aaron Boodman">aa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>246024</commentid>
    <comment_count>0</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-02 12:27:58 -0700</bug_when>
    <thetext>In Chromium, user scripts and styles apply to only the top-level frame by default. This is more performant and typically what the developer wanted. Add the ability for WebKit to specify which behavior a user script should have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246033</commentid>
    <comment_count>1</comment_count>
      <attachid>60390</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-02 12:37:53 -0700</bug_when>
    <thetext>Created attachment 60390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246058</commentid>
    <comment_count>2</comment_count>
      <attachid>60390</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-02 13:26:41 -0700</bug_when>
    <thetext>Comment on attachment 60390
Patch

WebKit/chromium/public/WebView.h:298
 +                                           bool runAtStart,
a string of bool parameters is fairly bad for readability.  the better
approach is to define enums.  you should just define enums that match
the WebCore enums.  use AssertMatchingEnums.cpp to help so that you can
just cast between WebCore and WebKit API enums.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246101</commentid>
    <comment_count>3</comment_count>
      <attachid>60405</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-02 14:39:43 -0700</bug_when>
    <thetext>Created attachment 60405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246104</commentid>
    <comment_count>4</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-02 14:40:35 -0700</bug_when>
    <thetext>Agreed. (In reply to comment #2)
&gt; (From update of attachment 60390 [details])
&gt; WebKit/chromium/public/WebView.h:298
&gt;  +                                           bool runAtStart,
&gt; a string of bool parameters is fairly bad for readability.  the better
&gt; approach is to define enums.  you should just define enums that match
&gt; the WebCore enums.  use AssertMatchingEnums.cpp to help so that you can
&gt; just cast between WebCore and WebKit API enums.

Agreed. Take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246227</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 21:07:08 -0700</bug_when>
    <thetext>Attachment 60405 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3343760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246240</commentid>
    <comment_count>6</comment_count>
      <attachid>60405</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-02 22:18:49 -0700</bug_when>
    <thetext>Comment on attachment 60405
Patch

WebKit/chromium/public/WebView.h:58
 +      enum WebUserScriptInjectionTime {
The Web-prefix is for things defined at WebKit-namespace scope.  When
declared within a class, you should drop the Web-prefix.

We also have the convention that enum values should be formed like so:

enum Foo {
  FooBar,
  FooBaz
};

I realize that may be a bit verbose for these.

  enum UserScriptInjectionTime {
    UserScriptInjectionTimeAtDocumentStart,
    UserScriptInjectionTimeAtDocumentEnd
  };

  enum UserScriptInjectedFrames {
    UserScriptInjectedFramesAll,
    UserScriptInjectedFramesTopOnly
  };

^^^ That last one is especially awkward.  I&apos;m not sure what would be
better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247634</commentid>
    <comment_count>7</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 10:50:35 -0700</bug_when>
    <thetext>I will fix the style issues.

Do you mind reviewing the rest of the change? I have pinged dhyatt directly, who originally wrote this code, but I don&apos;t think it should be too contentious.

dhyatt: do you want to review this, since you wrote it originally? Otherwise, Darin, can you review the webcore bits? I think this is relatively a minor addition to existing code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247668</commentid>
    <comment_count>8</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 11:57:31 -0700</bug_when>
    <thetext>Got feedback from dhyatt on irc:

* Can&apos;t change webkit api on mac and windows because it will break webkit nightlies. Please remove API modifications and make it preserve current behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247683</commentid>
    <comment_count>9</comment_count>
      <attachid>60405</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-07-07 12:31:49 -0700</bug_when>
    <thetext>Comment on attachment 60405
Patch

You can&apos;t change the WebKit/mac and WebKit/win APIs, since it would cause nightlies to crash if you use Safari 5. You need to add new methods that take the new argument and we can deperacate the old methods until Safari can adopt them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247735</commentid>
    <comment_count>10</comment_count>
      <attachid>60774</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 14:00:12 -0700</bug_when>
    <thetext>Created attachment 60774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247743</commentid>
    <comment_count>11</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 14:06:23 -0700</bug_when>
    <thetext>Hold off, I misread Timothy&apos;s comment. I&apos;m going to fix this to add a new method to the mac API so that the test can remain enabled there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247793</commentid>
    <comment_count>12</comment_count>
      <attachid>60786</attachid>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 15:11:55 -0700</bug_when>
    <thetext>Created attachment 60786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247794</commentid>
    <comment_count>13</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-07 15:12:29 -0700</bug_when>
    <thetext>Ok, all comments addressed. Darin, Timothy, please take another look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248316</commentid>
    <comment_count>14</comment_count>
      <attachid>60786</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-07-08 10:36:24 -0700</bug_when>
    <thetext>Comment on attachment 60786
Patch

WebCore/dom/Document.cpp:2156
 +              if (sheet-&gt;injectedFrames() == InjectInTopFrameOnly &amp;&amp; ownerElement())
You should add a test using &lt;frameset&gt;. I&apos;m curious if ownerElement() does the right thing there. Arguably all the frames in a frameset are top level.

WebCore/page/UserStyleSheet.h:42
 +                     UserScriptInjectedFrames injectedFrames)
It is odd to use UserScriptInjectedFrames with stylesheets. Maybe UserContentInjectedFrames? Is there a shared header it could move to as well?

WebKit/mac/WebView/WebView.mm:2382
 +                     injectedFrames:(WebUserScriptInjectedFrames)injectedFrames
It is odd to use WebUserScriptInjectedFrames for the stylesheet case too. Maybe WebUserContentInjectedFrames?

WebKit/mac/WebView/WebViewPrivate.h:512
 +  // FIXME: The following two methods are deprecated in favor of the overloads below that take the WebUserScriptInjectedFrames argument. https://bugs.webkit.org/show_bug.cgi?id=41800.
I don&apos;t think the bug is needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248661</commentid>
    <comment_count>15</comment_count>
    <who name="Aaron Boodman">aa</who>
    <bug_when>2010-07-08 18:15:27 -0700</bug_when>
    <thetext>Committed r62876: &lt;http://trac.webkit.org/changeset/62876&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248662</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-08 18:20:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62876 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, and Qt Linux ARMv7 Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248709</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-08 21:14:08 -0700</bug_when>
    <thetext>Looks like this broke LayoutTests/printing/page-rule-selection.html

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r62876%20(13247)/printing/page-rule-selection-pretty-diff.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60390</attachid>
            <date>2010-07-02 12:37:53 -0700</date>
            <delta_ts>2010-07-02 14:39:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41529-20100702123752.patch</filename>
            <type>text/plain</type>
            <size>53765</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYmFkN2E4ODg3NTkwYTBkNWFmNWE2ZjI3MmUyZmZiZTU2MmQxODEyLi4wOTIxZmVj
NjU1YWViNjBiODgxZTdhZjVjNjliMmU2NGQ4MjNjYWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTAtMDctMDIgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiB1c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbDoK
KyAgICAgICAgKiB1c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHVzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogdXNlcnNjcmlwdHMvc2NyaXB0LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sOgorICAgICAg
ICAqIHVzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWw6CisgICAgICAgICogdXNlcnNj
cmlwdHMvc2NyaXB0LXJ1bi1hdC1zdGFydC5odG1sOgorICAgICAgICAqIHVzZXJzY3JpcHRzL3Np
bXBsZS1zdHlsZXNoZWV0Lmh0bWw6CisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQt
YWxsLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3Vz
ZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMv
dXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9w
LWZyYW1lLW9ubHkuaHRtbDogQWRkZWQuCisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvbWl4ZWQtY2Fz
ZS1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0
eWxlc2hlZXQuaHRtbAppbmRleCA3OTM3ZDZmN2M0YTBmNmM0NzVmZDM5MWJkMGJhOGVhYzBiNTI4
MTFiLi5kNDFjYmFjOTZmMjMzZDUxZGNmM2FmNTQzODY0MWNlZTIzMjFiZTVlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbApAQCAt
Myw3ICszLDcgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclN0eWxlU2hlZXQoIiNtaXhlZENhc2UgeyBk
aXNwbGF5OiBub25lIH0iKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clN0eWxlU2hlZXQoIiNtaXhlZENhc2UgeyBkaXNwbGF5OiBub25lIH0iLCB0cnVlKTsKIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVz
b3VyY2VzL2ZyYW1lMS5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVzb3VyY2VzL2Zy
YW1lMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MThmN2M2NDg3ZjZhYjlkYWQ3MTM3YjQ1ZTc3ZTA2Yjlm
NWJhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJj
ZXMvZnJhbWUxLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0i
dGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPGlmcmFtZSBzcmM9ImZyYW1lMi5odG1sIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3Jlc291cmNlcy9mcmFtZTIuaHRtbCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNl
cy9mcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2QxNWIzOWViYmEyMTA0MzA2ZGZmNTY5NTI1MDZl
ZTU0MjJlZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVz
b3VyY2VzL2ZyYW1lMi5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKzwvc2NyaXB0PgorPGRpdiBpZD0idGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LW5v
dC1ydW4tZm9yLWZyYWdtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0
LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sCmluZGV4IDhkNjkxNzJlZjU1ZGYyZWEwNzY0ZmMw
MmQ1ZWNkMGI1OTBjZjRhNGYuLmM3M2VmYzMzOTRjNzY5NjhlYzZjOTU0YWEwYzVlMTBiOWQxNmI5
NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZv
ci1mcmFnbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtbm90
LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWwKQEAgLTUsNyArNSw3IEBACiBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnaW5qZWN0ZWQnKTsgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuaW5uZXJIVE1MID0gJzxw
PmhpPC9wPic7IiwgdHJ1ZSk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlw
dCgiY29uc29sZS5sb2coJ2luamVjdGVkJyk7IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsgZGl2LmlubmVySFRNTCA9ICc8cD5oaTwvcD4nOyIsIHRydWUsIHRydWUpOwog
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0
LXJ1bi1hdC1lbmQuaHRtbAppbmRleCA4MjFiMWM4ZDgxYjQ4NzBhZWUzY2I2ZWIyMDk0OGI4ZGI1
MThjNzhmLi40NjJkYTg4YWU0ODkzMTM5MGUwM2RjZDY0N2UzZTY5ODQ3N2M2ZGZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWwKQEAgLTQsNyAr
NCw3IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5u
ZXJIVE1MID0gJ1BBU1MnIiwgZmFsc2UpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVz
ZXJTY3JpcHQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSAn
UEFTUyciLCBmYWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbAppbmRleCBhOTFiNjFj
NTM4YTZkZTZlNWM1NDhkZjE2ZTNiMmJkYTkyMTRkYzNjLi40YWEyZjM1YmU3ZDkzZWFkZDUwMjA3
ZGVlYzlmNjc5ODhiMDMzYjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9z
Y3JpcHQtcnVuLWF0LXN0YXJ0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2Ny
aXB0LXJ1bi1hdC1zdGFydC5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiaWYgKHdp
bmRvdy5sb2NhdGlvbiA9PSAnYWJvdXQ6YmxhbmsnKSBjb25zb2xlLmxvZygnU1VDQ0VTUycpOyIs
IHRydWUpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImlmICh3aW5k
b3cubG9jYXRpb24gPT0gJ2Fib3V0OmJsYW5rJykgY29uc29sZS5sb2coJ1NVQ0NFU1MnKTsiLCB0
cnVlLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3NpbXBsZS1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggMzkxNGM3MjE1ODkyYzA3ODZkNTlm
YTNiM2NlYzg0ZTQyMWJiYTlmZC4uZGEwMDRkMDJjYTJiYjIyNjJhN2M1MTYzMzVlODY4YTg5Y2Yz
MTc1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hl
ZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zaW1wbGUtc3R5bGVzaGVldC5o
dG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclN0eWxlU2hlZXQoImRpdiB7IHdpZHRoOjA7IH0iKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5bGVTaGVldCgiZGl2IHsgd2lkdGg6
MDsgfSIsIHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZkMTY0MjgzODcxMjJiZDZmMTYxZmU1MDgyZThjMjlhZmZkMTk3YWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwt
ZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitJZiBhbnkgdGhpbmdlcnMgYXBw
ZWFyIG9uIHRoaXMgcGFnZSwgdGhlIHRlc3QgaGFzIGZhaWxlZC4gCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+
LS0+JworLS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNl
ci1zY3JpcHQtYWxsLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtYWxsLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTBlNTg4ZmNmZWM2Yzk3YjQ3MDNm
YmQ5ODc1NmYyMDg1YWFjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicp
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0ZXN0IGhhcyBm
YWlsZWQuCis8RGl2IGlkPSJ0aGluZ2VyIj50aGluZ2VyPC9kaXY+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL2ZyYW1lMS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFt
ZS1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzFmY2NiMmIyM2I0N2ZhMjlmODA5YThm
NDBkN2VmYTdjZjM1ZjcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1R3byB0aGluZ2VycyBzaG91bGQgYXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRo
ZSB0ZXN0IGhhcyBmYWlsZWQuIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCit0aGluZ2VyCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0t
LS0tCit0aGluZ2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNj
cmlwdC10b3AtZnJhbWUtb25seS5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQ0ZjY2M2RiYTQyMGE4NTk3
Yzk2OGU3NTMyZWQ2ZGEyY2FmNzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
aGluZ2VyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorVHdvIHRoaW5nZXJzIHNob3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBP
dGhlcndpc2UgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKzxEaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8
L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZnJhbWUxLmh0bWwiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
dHlsZS1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Vz
ZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkxZTE5OWJjM2Uy
YmE2Y2M3ZWQ4N2JhNGYwZjU4MjU1MDQ3ZGZiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0ZXN0
IGhhcyBmYWlsZWQuICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4nCistLS0tLS0tLQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbCBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUzNjFmZjVlZjgzZmEyNmY0YjE4YTM2ZDAxYjI0MGIwY2I5ZGUzOGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMu
aHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIj
dGhpbmdlciB7IGRpc3BsYXk6bm9uZTsgfSIsIHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KK0lmIGFueSB0aGluZ2VycyBhcHBlYXIgb24gdGhpcyBwYWdlLCB0aGUgdGVzdCBo
YXMgZmFpbGVkLgorPERpdiBpZD0idGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPGlmcmFtZSBzcmM9
InJlc291cmNlcy9mcmFtZTEuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9wLWZy
YW1lLW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4YzdmNWExMmNiZTkwNDk2OTQxMzcw
MmUxNzdlYTZkNWNkZGQwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACisyIHRoaW5nZXJzIHNob3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBPdGhlcndpc2UgdGhl
IHRlc3QgaGFzIGZhaWxlZC4gIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCit0aGluZ2VyCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0t
LS0tCit0aGluZ2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdjNzUxYzg2MGQ0YjY4OWNiYjIz
YTYxNDVkYmYyZGZhZDljNDIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbApAQCAtMCwwICsxLDE3IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIjdGhpbmdlciB7IGRpc3BsYXk6bm9uZTsg
fSIsIGZhbHNlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisyIHRoaW5nZXJzIHNo
b3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBPdGhlcndpc2UgdGhlIHRlc3QgaGFzIGZhaWxlZC4K
KzxEaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMv
ZnJhbWUxLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTdlNjcwZDlkZmUzMDNj
MzA2ZTZkODM3MzEwNTViMmFmYTc0YjdkLi45ZGM1NTc3ZDlkMjVjN2U4MTllNjcxZDRmM2IyNDk5
MzcxOGE2YzFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEwLTA3LTAyICBBYXJvbiBCb29kbWFuICA8YWFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgdXNlciBzY3JpcHRzIGFuZCB1c2VyIHN0eWxlcyB0
byBhZmZlY3QganVzdCB0aGUgdG9wIGZyYW1lLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUyOQorCisgICAgICAgIFRlc3RzOiB1c2Vyc2NyaXB0
cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKKyAgICAgICAgICAgICAgIHVzZXJzY3JpcHRz
L3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKKyAgICAgICAgICAgICAgIHVzZXJzY3Jp
cHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0
cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuYmFz
ZS5leHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpwYWdlR3JvdXBVc2VyU2hlZXRzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjppbmplY3RVc2VyU2NyaXB0c0ZvcldvcmxkKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6
OmFkZFVzZXJTY3JpcHRUb1dvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6YWRk
VXNlclN0eWxlU2hlZXRUb1dvcmxkKToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgorICAg
ICAgICAqIHBhZ2UvVXNlclNjcmlwdC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlclNjcmlwdDo6
VXNlclNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyU2NyaXB0OjppbmplY3RlZEZyYW1l
cyk6CisgICAgICAgICogcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
Oik6CisgICAgICAgICogcGFnZS9Vc2VyU3R5bGVTaGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6
VXNlclN0eWxlU2hlZXQ6OlVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJT
dHlsZVNoZWV0OjppbmplY3RlZEZyYW1lcyk6CisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtv
diAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2Vi
Q29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDcwZjA3NzM1Y2FmMTY2ZmQ3NTRkMTAxYTMyY2Fk
YTRmNmE4OWJhZDIuLmU4Y2UxYTVkNTQzYmNlMjRmZjA4MWZlNzFiZDExYTlmMWZlMDNiMTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAKQEAgLTc3MiwxMCArNzcyLDEwIEBAIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNl
dENhcGFjaXR5RWkKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQ
YWdlc05vd0V2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMTRhZGRWaXNpdGVkTGlua0VQS3RtCiBf
X1pON1dlYkNvcmU5UGFnZUdyb3VwMTdjbG9zZUxvY2FsU3RvcmFnZUV2Ci1fX1pON1dlYkNvcmU5
UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktO
U182U3RyaW5nRVJLTlNfNEtVUkxFTjNXVEYxMFBhc3NPd25QdHJJTlM5XzZWZWN0b3JJUzNfTG0w
RUVFRUVTRF9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRQorX19aTjdXZWJDb3JlOVBhZ2VH
cm91cDIwYWRkVXNlclNjcmlwdFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0
cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVF
U0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVOU18yNFVzZXJTY3JpcHRJbmplY3RlZEZy
YW1lc0UKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAyMHJlbW92ZUFsbFVzZXJDb250ZW50RXYKIF9f
Wk43V2ViQ29yZTlQYWdlR3JvdXAyMXJlbW92ZUFsbFZpc2l0ZWRMaW5rc0V2Ci1fX1pON1dlYkNv
cmU5UGFnZUdyb3VwMjRhZGRVc2VyU3R5bGVTaGVldFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldv
cmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9y
SVMzX0xtMEVFRUVFU0RfCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjRhZGRVc2VyU3R5bGVTaGVl
dFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4z
V1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVFU0RfTlNfMjRVc2VyU2NyaXB0
SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjVyZW1vdmVVc2VyU2NyaXB0
RnJvbVdvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS05TXzRLVVJMRQogX19aTjdXZWJDb3Jl
OVBhZ2VHcm91cDI2cmVtb3ZlVXNlclNjcmlwdHNGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldv
cmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3NF
YgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDQyMWMzY2VhMmNlMWEyZmY2OTBiMmEzOGEwY2Q2MGUwYjExNGE2ZmIu
LjQ4ZWUxYTU3OWFlZTlmMjYzOTYxMWYxMTc2YjYwYmUwZDQ0YmFlM2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTIxNTMsNiArMjE1Myw4IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiog
RG9jdW1lbnQ6OnBhZ2VHcm91cFVzZXJTaGVldHMoKSBjb25zdAogICAgICAgICBjb25zdCBVc2Vy
U3R5bGVTaGVldFZlY3Rvciogc2hlZXRzID0gaXQtPnNlY29uZDsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHNoZWV0cy0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0
IFVzZXJTdHlsZVNoZWV0KiBzaGVldCA9IHNoZWV0cy0+YXQoaSkuZ2V0KCk7CisgICAgICAgICAg
ICBpZiAoc2hlZXQtPmluamVjdGVkRnJhbWVzKCkgPT0gSW5qZWN0SW5Ub3BGcmFtZU9ubHkgJiYg
b3duZXJFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBp
ZiAoIVVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKHVybCgpLCBzaGVldC0+
d2hpdGVsaXN0KCksIHNoZWV0LT5ibGFja2xpc3QoKSkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFyc2VkU2hlZXQgPSBDU1NT
dHlsZVNoZWV0OjpjcmVhdGVJbmxpbmUoY29uc3RfY2FzdDxEb2N1bWVudCo+KHRoaXMpLCBzaGVl
dC0+dXJsKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggZmVlMDdkZGRlNTcxMTRiNmZlMzRjZWNmOGQwMmZmNTU2MzZl
ZmQ2YS4uZWYwMGMyMjY4ZTI2ODVmNjEyZjQzNTA3MmFkOWRmZmM1ZjNiOWI4ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBA
IC02OTAsNiArNjkwLDkgQEAgdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdHNGb3JXb3JsZChE
T01XcmFwcGVyV29ybGQqIHdvcmxkLCBjb25zdCBVc2VyU2NyaXB0VmUKICAgICB1bnNpZ25lZCBj
b3VudCA9IHVzZXJTY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICBVc2VyU2NyaXB0KiBzY3JpcHQgPSB1c2VyU2NyaXB0c1tp
XS5nZXQoKTsKKyAgICAgICAgaWYgKHNjcmlwdC0+aW5qZWN0ZWRGcmFtZXMoKSA9PSBJbmplY3RJ
blRvcEZyYW1lT25seSAmJiBvd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CiAgICAgICAgIGlmIChzY3JpcHQtPmluamVjdGlvblRpbWUoKSA9PSBpbmplY3Rpb25UaW1lICYm
IFVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGRvYy0+dXJsKCksIHNjcmlw
dC0+d2hpdGVsaXN0KCksIHNjcmlwdC0+YmxhY2tsaXN0KCkpKQogICAgICAgICAgICAgbV9zY3Jp
cHQuZXZhbHVhdGVJbldvcmxkKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT5zb3VyY2UoKSwgc2Ny
aXB0LT51cmwoKSksIHdvcmxkKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IGY2Yzc0NmRkOGZj
OWExYmExYWNkMDRlNGE2Y2NmNDFlZDYzMzlmYmMuLjRjOWJjNzEzOWI1YjUzZGQxNThiNGQzNTJm
NGNlZjlhMzIxYWJmMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0yMTMsMTIgKzIxMywxMyBAQCBJbmRl
eGVkRGF0YWJhc2UqIFBhZ2VHcm91cDo6aW5kZXhlZERhdGFiYXNlKCkKIH0KICNlbmRpZgogCi12
b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwgIFBhc3NPd25QdHI8VmVj
dG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwgVXNlclNjcmlwdElu
amVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKK3ZvaWQgUGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0
VG9Xb3JsZChET01XcmFwcGVyV29ybGQqIHdvcmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgS1VSTCYgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNl
clNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewogICAgIEFTU0VSVF9BUkcod29ybGQsIHdvcmxkKTsKIAot
ICAgIE93blB0cjxVc2VyU2NyaXB0PiB1c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwg
dXJsLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSkpOworICAgIE93blB0cjxV
c2VyU2NyaXB0PiB1c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwgdXJsLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSwgaW5qZWN0ZWRGcmFtZXMpKTsKICAgICBpZiAo
IW1fdXNlclNjcmlwdHMpCiAgICAgICAgIG1fdXNlclNjcmlwdHMuc2V0KG5ldyBVc2VyU2NyaXB0
TWFwKTsKICAgICBVc2VyU2NyaXB0VmVjdG9yKiYgc2NyaXB0c0luV29ybGQgPSBtX3VzZXJTY3Jp
cHRzLT5hZGQod29ybGQsIDApLmZpcnN0LT5zZWNvbmQ7CkBAIC0yMjcsMTkgKzIyOCwyMCBAQCB2
b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCwgY29uc3QgU3RyaW5nJiBzb3VyYwogICAgIHNjcmlwdHNJbldvcmxkLT5hcHBlbmQodXNlclNj
cmlwdC5yZWxlYXNlKCkpOwogfQogCi12b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRU
b1dvcmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBLVVJMJiB1cmwsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBibGFja2xpc3QpCit2b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRUb1dv
cmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBL
VVJMJiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBBU1NFUlRf
QVJHKHdvcmxkLCB3b3JsZCk7CiAKLSAgICBPd25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHls
ZVNoZWV0KG5ldyBVc2VyU3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xp
c3QpKTsKKyAgICBPd25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0KG5ldyBVc2Vy
U3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIGluamVjdGVkRnJh
bWVzKSk7CiAgICAgaWYgKCFtX3VzZXJTdHlsZVNoZWV0cykKICAgICAgICAgbV91c2VyU3R5bGVT
aGVldHMuc2V0KG5ldyBVc2VyU3R5bGVTaGVldE1hcCk7CiAgICAgVXNlclN0eWxlU2hlZXRWZWN0
b3IqJiBzdHlsZVNoZWV0c0luV29ybGQgPSBtX3VzZXJTdHlsZVNoZWV0cy0+YWRkKHdvcmxkLCAw
KS5maXJzdC0+c2Vjb25kOwogICAgIGlmICghc3R5bGVTaGVldHNJbldvcmxkKQogICAgICAgICBz
dHlsZVNoZWV0c0luV29ybGQgPSBuZXcgVXNlclN0eWxlU2hlZXRWZWN0b3I7CiAgICAgc3R5bGVT
aGVldHNJbldvcmxkLT5hcHBlbmQodXNlclN0eWxlU2hlZXQucmVsZWFzZSgpKTsKLSAgICAKKwog
ICAgIC8vIENsZWFyIG91ciBjYWNoZWQgc2hlZXRzIGFuZCBoYXZlIHRoZW0ganVzdCByZXBhcnNl
LgogICAgIEhhc2hTZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VzLmVuZCgp
OwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlcy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuaCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCBhNDA5NDk0ZWZjMmI5Nzc5
M2VhMGFjNTAzZmUyZGUxYjg1MDI5NWRjLi4wNzEwMmRmNzk3NGZmNmJiZTJlMmZjNDgwOGQ0MjUz
YmNiYTUxZDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2Vi
Q29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC03NCwyMCArNzQsMjEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBJbmRleGVkRGF0YWJhc2UqIGluZGV4ZWREYXRhYmFzZSgpOwogI2VuZGlm
CiAKLSAgICAgICAgdm9pZCBhZGRVc2VyU2NyaXB0VG9Xb3JsZChET01XcmFwcGVyV29ybGQqLCBj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYsIAorICAgICAgICB2b2lkIGFkZFVzZXJT
Y3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBLVVJMJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZl
Y3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxh
Y2tsaXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKICAgICAgICAgdm9pZCBh
ZGRVc2VyU3R5bGVTaGVldFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IEtVUkwmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QpOwotICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0
cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKKwogICAgICAgICB2b2lkIHJl
bW92ZVVzZXJTY3JpcHRGcm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgS1VSTCYpOwog
ICAgICAgICB2b2lkIHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbVdvcmxkKERPTVdyYXBwZXJXb3Js
ZCosIGNvbnN0IEtVUkwmKTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCByZW1vdmVVc2VyU2Ny
aXB0c0Zyb21Xb3JsZChET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdm9pZCByZW1vdmVVc2Vy
U3R5bGVTaGVldHNGcm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKik7Ci0gICAgCisKICAgICAgICAg
dm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwotICAgICAgICAKKwogICAgICAgICBjb25zdCBV
c2VyU2NyaXB0TWFwKiB1c2VyU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclNjcmlwdHMu
Z2V0KCk7IH0KICAgICAgICAgY29uc3QgVXNlclN0eWxlU2hlZXRNYXAqIHVzZXJTdHlsZVNoZWV0
cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRzLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmggYi9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5o
CmluZGV4IDhiMzcwM2Y5MzcyZjdjMzlhYjMwMDYyYjc4OTU1NjdkYzAwMjMwNGUuLmVhNjk5YjBk
MTU5YjAxNmNkYWMwZDQ3Mzg4NjJiMzAwOWUyODc1MWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9Vc2VyU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaApAQCAtMzgsMTIg
KzM4LDEzIEBAIGNsYXNzIFVzZXJTY3JpcHQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGlj
OgogICAgIFVzZXJTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwK
ICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBh
c3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xpc3QsCi0gICAgICAgICAgICAgICBVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKQorICAgICAgICAgICAgICAgVXNlclNj
cmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVz
IGluamVjdGVkRnJhbWVzKQogICAgICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBt
X3VybCh1cmwpCiAgICAgICAgICwgbV93aGl0ZWxpc3Qod2hpdGVsaXN0KQogICAgICAgICAsIG1f
YmxhY2tsaXN0KGJsYWNrbGlzdCkKICAgICAgICAgLCBtX2luamVjdGlvblRpbWUoaW5qZWN0aW9u
VGltZSkKKyAgICAgICAgLCBtX2luamVjdGVkRnJhbWVzKGluamVjdGVkRnJhbWVzKQogICAgIHsK
ICAgICB9CiAKQEAgLTUyLDE1ICs1MywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4qIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0LmdldCgpOyB9CiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxh
Y2tsaXN0LmdldCgpOyB9CiAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0aW9uVGltZTsgfQotICAgIAorICAgIFVzZXJTY3Jp
cHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0
ZWRGcmFtZXM7IH0KKwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgS1VSTCBt
X3VybDsKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3doaXRlbGlzdDsKICAgICBPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBtX2JsYWNrbGlzdDsKICAgICBVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSBtX2luamVjdGlvblRpbWU7CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIG1faW5q
ZWN0ZWRGcmFtZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0gCisKICNlbmRpZiAv
LyBVc2VyU2NyaXB0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMu
aCBiL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaAppbmRleCBhZDI3ZTc5Yjk4MjlmOTEx
ZTVhNmNjM2QzNWMwNDU5NTQ4OWJmZmFlLi45ZjNiZmUwZmExMjk5YzJhZjc4YzM0MGExNzY5YTBj
OTIzZWYzYjBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdFR5cGVzLmgKKysr
IGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHRUeXBlcy5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gVXNlclNjcmlwdEluamVjdGlvblRpbWUgeyBJbmplY3RB
dERvY3VtZW50U3RhcnQsIEluamVjdEF0RG9jdW1lbnRFbmQgfTsKK2VudW0gVXNlclNjcmlwdElu
amVjdGVkRnJhbWVzIHsgSW5qZWN0SW5BbGxGcmFtZXMsIEluamVjdEluVG9wRnJhbWVPbmx5IH07
CiAKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIFVzZXJTY3JpcHQ7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXQuaCBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVT
aGVldC5oCmluZGV4IDYxMDc3OGYzZDdiNTcyNzkzNzRhMGNkZTdmY2NhMzUwZmJlZjgyNzQuLmJj
YTZiZWFiYTE5YTRmYzRjYjAzYTc2NzAyMmQ1NmIwMzNjY2Q5MTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9Vc2VyU3R5bGVTaGVldC5oCisrKyBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVl
dC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFVzZXJTdHlsZVNoZWV0X2gKIAogI2luY2x1
ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJVc2VyU2NyaXB0VHlwZXMuaCIKICNpbmNsdWRlICJVc2Vy
U3R5bGVTaGVldFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC0zNywxMSArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgVXNlclN0eWxlU2hlZXQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAg
IFVzZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmwsCi0g
ICAgICAgICAgICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwg
UGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCkKKyAgICAgICAgICAgICAgICAg
ICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fd2hpdGVsaXN0KHdoaXRlbGlzdCkKICAg
ICAgICAgLCBtX2JsYWNrbGlzdChibGFja2xpc3QpCisgICAgICAgICwgbV9pbmplY3RlZEZyYW1l
cyhpbmplY3RlZEZyYW1lcykKICAgICB7CiAgICAgfQogCkBAIC00OSwxMiArNTIsMTQgQEAgcHVi
bGljOgogICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4qIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVs
aXN0LmdldCgpOyB9CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fYmxhY2tsaXN0LmdldCgpOyB9CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEZyYW1lczsgfQog
CiBwcml2YXRlOgogICAgIFN0cmluZyBtX3NvdXJjZTsKICAgICBLVVJMIG1fdXJsOwogICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fd2hpdGVsaXN0OwogICAgIE93blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IG1fYmxhY2tsaXN0OworICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBtX2luamVj
dGVkRnJhbWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
YTI4ZmM4OGFkNGZjNWE0ZjQwOTUxMDc5MzQ5MWEyODA5YWYwYjQxYy4uMzA1MDI2MTI3MTNkODFk
NjNiZjM4ZDYzODE0ZTBiZGQxZjI0YmE4MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMDIgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3OjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6YWRkVXNlclN0
eWxlU2hlZXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojph
ZGRVc2VyU3R5bGVTaGVldCk6CisKIDIwMTAtMDctMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMWVmZDc1MmU1MzBhNGU2YjJiYTVmZjEzMDQ5MjJj
YWE5NWIxZDZiMC4uN2Y5ODcwYmNlMjczNzkzN2VkNTY2ZDYyZWQ1MDA5YTY1Njc1ODEyZCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI4NiwxOCArMjg2LDIwIEBAIHB1YmxpYzoKICAg
ICAvLyBGSVhNRTogVGhlc2UgdHdvIG1ldGhvZHMgYXJlIERFUFJFQ0FURUQuIFJlbW92ZSBvbmNl
IENocm9taXVtIGhhcyBiZWVuIHJvbGxlZC4KICAgICB2aXJ0dWFsIHZvaWQgYWRkVXNlclNjcmlw
dChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsIGJvb2wgcnVuQXRTdGFydCkKICAgICB7Ci0g
ICAgICAgIGFkZFVzZXJTY3JpcHQoc291cmNlQ29kZSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSwg
cnVuQXRTdGFydCk7CisgICAgICAgIGFkZFVzZXJTY3JpcHQoc291cmNlQ29kZSwgV2ViVmVjdG9y
PFdlYlN0cmluZz4oKSwgcnVuQXRTdGFydCwgZmFsc2UpOwogICAgIH0KICAgICB2aXJ0dWFsIHZv
aWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogICAgIHsK
LSAgICAgICAgYWRkVXNlclN0eWxlU2hlZXQoc291cmNlQ29kZSwgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4oKSk7CisgICAgICAgIGFkZFVzZXJTdHlsZVNoZWV0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxX
ZWJTdHJpbmc+KCksIGZhbHNlKTsKICAgICB9CiAKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lk
IGFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
cGF0dGVybnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
cnVuQXRTdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgcnVuQXRTdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBydW5JbkFsbEZyYW1lcyk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBhZGRVc2Vy
U3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
cGF0dGVybnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHBhdHRlcm5zLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBydW5JbkFsbEZyYW1lcyk7CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgdm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwogCiAgICAgLy8gTW9k
YWwgZGlhbG9nIHN1cHBvcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGIwMDEwNzYwZTAx
MWYxNTAxZGNkZWQ1NmM2ZGZkMzY0NjViMjBkNjMuLmY0YjFjYzRjNjdkMzQwMjlmODQzZTllNjIz
ZTFkYTc1YzQ5NTk0OWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xOTI0
LDcgKzE5MjQsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKHVuc2ln
bmVkIGFjdGl2ZUJhY2tncm91bmRDb2xvciwKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXc6OmFk
ZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwgYm9vbCBydW5BdFN0YXJ0KQordm9pZCBXZWJWaWV3Ojph
ZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJ1bkF0U3RhcnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBydW5JbkFsbEZyYW1lcykKIHsKICAgICBPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiBwYXR0ZXJucyhuZXcgVmVjdG9yPFN0cmluZz4pOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcGF0dGVybnNJbi5zaXplKCk7ICsraSkKQEAgLTE5MzMsMTAgKzE5MzYsMTMg
QEAgdm9pZCBXZWJWaWV3OjphZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29k
ZSwgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmkKICAgICBQYWdlR3JvdXAqIHBhZ2VHcm91cCA9IFBh
Z2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cE5hbWUpOwogICAgIFJlZlB0cjxET01XcmFwcGVy
V29ybGQ+IHdvcmxkKERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKCkpOwogICAgIHBhZ2VHcm91cC0+
YWRkVXNlclNjcmlwdFRvV29ybGQod29ybGQuZ2V0KCksIHNvdXJjZUNvZGUsIFdlYlVSTCgpLCBw
YXR0ZXJucy5yZWxlYXNlKCksIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5BdFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogSW5qZWN0QXREb2N1bWVudEVu
ZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5BdFN0YXJ0ID8gSW5q
ZWN0QXREb2N1bWVudFN0YXJ0IDogSW5qZWN0QXREb2N1bWVudEVuZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkluQWxsRnJhbWVzID8gSW5qZWN0SW5BbGxGcmFtZXMg
OiBJbmplY3RJblRvcEZyYW1lT25seSk7CiB9CiAKLXZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxl
U2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiYgcGF0dGVybnNJbikKK3ZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3Qg
V2ViU3RyaW5nJiBzb3VyY2VDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBydW5JbkFsbEZyYW1lcykKIHsKICAgICBPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiBwYXR0ZXJucyhuZXcgVmVjdG9yPFN0cmluZz4pOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcGF0dGVybnNJbi5zaXplKCk7ICsraSkKQEAgLTE5NDQsNyArMTk1MCw4IEBA
IHZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VD
b2RlLCBjb25zdCBXZWJWZWN0b3I8V2ViCiAKICAgICBQYWdlR3JvdXAqIHBhZ2VHcm91cCA9IFBh
Z2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cE5hbWUpOwogICAgIFJlZlB0cjxET01XcmFwcGVy
V29ybGQ+IHdvcmxkKERPTVdyYXBwZXJXb3JsZDo6Y3JlYXRlKCkpOwotICAgIHBhZ2VHcm91cC0+
YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKHdvcmxkLmdldCgpLCBzb3VyY2VDb2RlLCBXZWJVUkwo
KSwgcGF0dGVybnMucmVsZWFzZSgpLCAwKTsKKyAgICBwYWdlR3JvdXAtPmFkZFVzZXJTdHlsZVNo
ZWV0VG9Xb3JsZCh3b3JsZC5nZXQoKSwgc291cmNlQ29kZSwgV2ViVVJMKCksIHBhdHRlcm5zLnJl
bGVhc2UoKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5J
bkFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJhbWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwog
fQogCiB2b2lkIFdlYlZpZXc6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTRhM2I2OTRi
Y2QwNzE2OTExNGJjNjcwZjc3NDE0MzFiNGRjMzdjYi4uNTM3ODU2NmMwMzllMTgzY2QzMDYzMmQ4
MjAzZTE3MWJiMDRhNmE1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNy0wMiAgQWFyb24g
Qm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2NyaXB0cyBhbmQg
dXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclNjcmlwdFRvR3Jv
dXA6d29ybGQ6c291cmNlOnVybDp3aGl0ZWxpc3Q6YmxhY2tsaXN0OmluamVjdGlvblRpbWU6aW5q
ZWN0ZWRGcmFtZXM6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX2FkZFVzZXJTdHlsZVNoZWV0VG9H
cm91cDp3b3JsZDpzb3VyY2U6dXJsOndoaXRlbGlzdDpibGFja2xpc3Q6aW5qZWN0ZWRGcmFtZXM6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEwLTA3LTAxICBU
aW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEg
V2ViVmlldyBwcmVmZXJlbmNlIHRvIGRpc2FibGUgRE5TIHByZWZldGNoaW5nLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCBmNGQ0MzQ4ODM3Y2Y0YjU0MDQ3ZmNlMzEwYjMyNDVhYWQ4ODk4M2Y0Li5m
MGJkYmIwZGY5MDY0MmM0YjRhNmZkZTE2YjUxYzZhMGE4ZDgzYzdjIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMjM0OCw2ICsyMzQ4LDcgQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKIAogKyAodm9pZClfYWRkVXNl
clNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3Js
ZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybAogICAg
ICAgICAgICAgICAgICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0
OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rp
b25UaW1lKWluamVjdGlvblRpbWUKKyAgICAgICAgICAgICAgIGluamVjdGVkRnJhbWVzOihXZWJV
c2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMKIHsKICAgICBTdHJpbmcgZ3Jv
dXAoZ3JvdXBOYW1lKTsKICAgICBpZiAoZ3JvdXAuaXNFbXB0eSgpKQpAQCAtMjM1OCwxMSArMjM1
OSwxMyBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9y
KE5TQXJyYXkqIHBhdHRlcm5zKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgcGFnZUdyb3Vw
LT5hZGRVc2VyU2NyaXB0VG9Xb3JsZChjb3JlKHdvcmxkKSwgc291cmNlLCB1cmwsIHRvU3RyaW5n
VmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlzdCksIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0aW9uVGltZSA9PSBXZWJJbmplY3RBdERv
Y3VtZW50U3RhcnQgPyBJbmplY3RBdERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50RW5k
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWUgPT0g
V2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogSW5qZWN0
QXREb2N1bWVudEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVj
dGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gSW5qZWN0SW5BbGxGcmFtZXMgOiBJ
bmplY3RJblRvcEZyYW1lT25seSk7CiB9CiAKICsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9H
cm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQg
c291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsCiAgICAgICAgICAgICAg
ICAgICAgICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0Fy
cmF5ICopYmxhY2tsaXN0CisgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXM6KFdlYlVz
ZXJTY3JpcHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lcwogewogICAgIFN0cmluZyBncm91
cChncm91cE5hbWUpOwogICAgIGlmIChncm91cC5pc0VtcHR5KCkpCkBAIC0yMzcyLDcgKzIzNzUs
OCBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9yKE5T
QXJyYXkqIHBhdHRlcm5zKQogICAgIGlmICghcGFnZUdyb3VwKQogICAgICAgICByZXR1cm47CiAK
LSAgICBwYWdlR3JvdXAtPmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZChjb3JlKHdvcmxkKSwgc291
cmNlLCB1cmwsIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNr
bGlzdCkpOworICAgIHBhZ2VHcm91cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKGNvcmUod29y
bGQpLCBzb3VyY2UsIHVybCwgdG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0
b3IoYmxhY2tsaXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJhbWVz
IDogSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiArICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
RnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3
b3JsZCB1cmw6KE5TVVJMICopdXJsCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4
IGNlZGM2MmM3NjU4NzRiZWFmZWU2ZjRkZjIzYThhZTEyNDJhYjE2OWEuLmVhYjQ4OGY0NDdlMWFl
ODdjMGRhNzkyNzlhOTA0Mzc0NmU4MjVlZWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCkBAIC04OCw2ICs4OCwxMSBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYkluamVjdEF0RG9j
dW1lbnRFbmQsCiB9IFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOwogCit0eXBlZGVmIGVudW0g
eworICAgIFdlYkluamVjdEluQWxsRnJhbWVzLAorICAgIFdlYkluamVjdEluVG9wRnJhbWVPbmx5
Cit9IFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lczsKKwogQGludGVyZmFjZSBXZWJDb250cm9s
bGVyIDogTlNUcmVlQ29udHJvbGxlciB7CiAgICAgSUJPdXRsZXQgV2ViVmlldyAqd2ViVmlldzsK
IH0KQEAgLTUwNCw4ICs1MDksOCBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4K
IC8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX2FkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KICsgKHZvaWQpX3Jlc2V0T3Jp
Z2luQWNjZXNzV2hpdGVsaXN0czsKIAotKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5T
U3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJjZToo
TlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3
aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdl
YlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWU7Ci0rICh2b2lkKV9hZGRVc2Vy
U3R5bGVTaGVldFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRX
b3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3
aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2ts
aXN0OworKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1l
IHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2Ug
dXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0
OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rp
b25UaW1lKWluamVjdGlvblRpbWUgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJTY3JpcHRJbmplY3Rl
ZEZyYW1lcylpbmplY3RlZEZyYW1lczsKKysgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91
cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291
cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdoaXRlbGlzdDooTlNBcnJh
eSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QgaW5qZWN0ZWRGcmFt
ZXM6KFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lczsKICsgKHZvaWQp
X3JlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihX
ZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHVybDooTlNVUkwgKil1cmw7CiArICh2b2lkKV9yZW1vdmVV
c2VyU3R5bGVTaGVldEZyb21Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNj
cmlwdFdvcmxkICopd29ybGQgdXJsOihOU1VSTCAqKXVybDsKICsgKHZvaWQpX3JlbW92ZVVzZXJT
Y3JpcHRzRnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29y
bGQgKil3b3JsZDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMzA0ZmI4MDQ5YWFjYWRiMGJmMmMyNWQ4ZTBhZTQzMWQyYTU0MzJl
MS4uMmE4NTJmNzM0NWE5YTY0NWEwNzVhNTc4OWVmMjM4Zjc4ZjBjNDhjNyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMC0wNy0wMiAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFi
aWxpdHkgZm9yIHVzZXIgc2NyaXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhl
IHRvcCBmcmFtZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDE1MjkKKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmFkZFVzZXJTY3JpcHRU
b0dyb3VwKToKKyAgICAgICAgKFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cCk6Cisg
ICAgICAgICogV2ViVmlldy5oOgorCiAyMDEwLTA3LTAxICBTdGV2ZSBGYWxrZW5idXJnICA8c2Zh
bGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbCBiL1dl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCmluZGV4IDM1MmFlN2U1NGI2
YjBlMjAwYWI0NTk5YTNjYTFjZDM4MmUzN2JlZTEuLmMwYmFiMWNiZTg0NDVhYWE4YzMzOWJhNmM1
YmJjNzkzYjgwZjFhNTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmll
d1ByaXZhdGUuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUu
aWRsCkBAIC0xODcsMTAgKzE4NywxMiBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlIDogSVVu
a25vd24KICAgICBIUkVTVUxUIGFkZFVzZXJTY3JpcHRUb0dyb3VwKFtpbl0gQlNUUiBncm91cE5h
bWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2luXSBCU1RSIHVy
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgd2hpdGVs
aXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxpc3RDb3VudCldIEJTVFIqIHdoaXRlbGlzdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0
Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJTVFIqIGJsYWNrbGlzdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlwdEluamVjdGlv
blRpbWUgaW5qZWN0aW9uVGltZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
aW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBp
bmplY3RlZEZyYW1lcyk7CiAgICAgSFJFU1VMVCBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoW2lu
XSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291cmNl
LCBbaW5dIEJTVFIgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtp
bl0gdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxpc3RDb3VudCld
IEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
aW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQp
XSBCU1RSKiBibGFja2xpc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3Vu
dCldIEJTVFIqIGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7CiAgICAg
SFJFU1VMVCByZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKFtpbl0gQlNUUiBncm91cE5hbWUsIFtp
bl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJFU1VMVCByZW1vdmVV
c2VyU3R5bGVTaGVldEZyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3Jp
cHRXb3JsZCosIFtpbl0gQlNUUiB1cmwpOwogICAgIEhSRVNVTFQgcmVtb3ZlVXNlclNjcmlwdHNG
cm9tR3JvdXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CmluZGV4IDYyMDRmZDIzZjljZGRmNjEyOGExYTVjZjk2YTFlYzBhNDQ0ZTk1MTYuLmNiNWJkM2Qz
Y2U5MGVmOWZhZmUzNGJmYTk5ZmY1ZGI2OGU0MzVhZDggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjAwMCw3ICs2MDAw
LDggQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3Rvcih1
bnNpZ25lZCBwYXR0ZXJuc0NvdW50LCBCU1RSKgogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2VyU2Ny
aXB0VG9Hcm91cChCU1RSIGdyb3VwTmFtZSwgSVdlYlNjcmlwdFdvcmxkKiBpV29ybGQsIEJTVFIg
c291cmNlLCBCU1RSIHVybCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBCU1RSKiB3aGl0ZWxpc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBCU1RSKiBi
bGFja2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmpl
Y3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBDT01QdHI8V2ViU2NyaXB0V29ybGQ+
IHdvcmxkKFF1ZXJ5LCBpV29ybGQpOwogICAgIGlmICghd29ybGQpCkBAIC02MDE3LDE0ICs2MDE4
LDE2IEBAIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclNjcmlwdFRvR3JvdXAoQlNUUiBncm91cE5h
bWUsIElXZWJTY3JpcHRXb3JsZCogaVdvcmxkLCBCCiAKICAgICBwYWdlR3JvdXAtPmFkZFVzZXJT
Y3JpcHRUb1dvcmxkKHdvcmxkLT53b3JsZCgpLCB0b1N0cmluZyhzb3VyY2UpLCB0b0tVUkwodXJs
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nVmVjdG9yKHdo
aXRlbGlzdENvdW50LCB3aGl0ZWxpc3QpLCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3RDb3VudCwg
YmxhY2tsaXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlv
blRpbWUgPT0gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0YXJ0
IDogSW5qZWN0QXREb2N1bWVudEVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA/IEluamVjdEF0
RG9jdW1lbnRTdGFydCA6IEluamVjdEF0RG9jdW1lbnRFbmQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/
IEluamVjdEluQWxsRnJhbWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogCiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJT
VFIgZ3JvdXBOYW1lLCBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgQlNUUiBzb3VyY2UsIEJTVFIg
dXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
d2hpdGVsaXN0Q291bnQsIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBCU1RSKiBibGFja2xp
c3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBi
bGFja2xpc3RDb3VudCwgQlNUUiogYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJh
bWVzKQogewogICAgIENPTVB0cjxXZWJTY3JpcHRXb3JsZD4gd29ybGQoUXVlcnksIGlXb3JsZCk7
CiAgICAgaWYgKCF3b3JsZCkKQEAgLTYwNDAsNyArNjA0Myw4IEBAIEhSRVNVTFQgV2ViVmlldzo6
YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJTVFIgZ3JvdXBOYW1lLCBJV2ViU2NyaXB0V29ybGQq
IGlXb3JsCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKICAgICBwYWdlR3JvdXAtPmFkZFVzZXJT
dHlsZVNoZWV0VG9Xb3JsZCh3b3JsZC0+d29ybGQoKSwgdG9TdHJpbmcoc291cmNlKSwgdG9LVVJM
KHVybCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmdW
ZWN0b3Iod2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlz
dENvdW50LCBibGFja2xpc3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3RDb3VudCwgd2hpdGVsaXN0KSwgdG9TdHJpbmdW
ZWN0b3IoYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMg
PyBJbmplY3RJbkFsbEZyYW1lcyA6IEluamVjdEluVG9wRnJhbWVPbmx5KTsKIAogICAgIHJldHVy
biBTX09LOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9XZWJLaXQvd2lu
L1dlYlZpZXcuaAppbmRleCA1MTRmMzc2MGQ4MzEzNWFlNzIxYWE1NjI0YzNiZmVlNjc4YTBkOGNm
Li40ODRmNjI5ZDljYmZlMTEwMmYyY2RkZDUwNDM0YzRkNzk1YTE3NGMyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtNzYzLDEw
ICs3NjMsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBhZGRVc2VyU2NyaXB0VG9Hcm91cChCU1RSIGdyb3VwTmFtZSwgSVdlYlNjcmlwdFdvcmxkKiwg
QlNUUiBzb3VyY2UsIEJTVFIgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgQlNUUiog
d2hpdGVsaXN0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIEJTVFIqIGJsYWNrbGlzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJTVFIgZ3JvdXBO
YW1lLCBJV2ViU2NyaXB0V29ybGQqLCBCU1RSIHNvdXJjZSwgQlNUUiB1cmwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCB3aGl0ZWxpc3RDb3VudCwgQlNUUiogd2hpdGVsaXN0LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJs
YWNrbGlzdENvdW50LCBCU1RSKiBibGFja2xpc3QpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmxhY2tsaXN0
Q291bnQsIEJTVFIqIGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1l
cyk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZVVzZXJTY3Jp
cHRGcm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCosIEJTVFIgdXJsKTsK
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclN0eWxlU2hl
ZXRGcm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCosIEJTVFIgdXJsKTsK
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclNjcmlwdHNG
cm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCopOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGExMGU0
ZTFiMzZlNGIyMjJmNDNlOTgxMWMwMTE1NTlmNmZjNmJlZDUuLmIzMjBmMmM0ZDEzYTBlODg4ZWUx
YTk0YzBmMjFmNDlmNzg0OTE5OGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wNy0wMiAg
QWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2NyaXB0
cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGFk
ZFVzZXJTY3JpcHRDYWxsYmFjayk6CisgICAgICAgIChhZGRVc2VyU3R5bGVTaGVldENhbGxiYWNr
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFk
ZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVz
ZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNo
ZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisKIDIwMTAt
MDYtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZGFiMjllMmIz
YjBhMmE0MGE1NGVkZjY5OWM3M2JkNDhjMGE2N2QyLi40OTc3ZGE1OGE3M2YzYzg3OGU4YTg2ZjRm
NDJkODg0YmEwY2IxMTE3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDk5LDI4ICsxNDk5LDMxIEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHNldFNjcm9sbGJhclBvbGljeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiwKIAogc3RhdGljIEpTVmFsdWVSZWYgYWRkVXNlclNjcmlwdENhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAyKQorICAg
IGlmIChhcmd1bWVudENvdW50ICE9IDMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291cmNl
KEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0
aW9uKSk7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKICAgICBib29sIHJ1bkF0U3RhcnQgPSBK
U1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sxXSk7CisgICAgYm9vbCBydW5JbkFs
bEZyYW1lcyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzJdKTsKICAgICAK
ICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91
dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBj
b250cm9sbGVyLT5hZGRVc2VyU2NyaXB0KHNvdXJjZS5nZXQoKSwgcnVuQXRTdGFydCk7CisgICAg
Y29udHJvbGxlci0+YWRkVXNlclNjcmlwdChzb3VyY2UuZ2V0KCksIHJ1bkF0U3RhcnQsIHJ1bklu
QWxsRnJhbWVzKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9
CiAgCiBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRVc2VyU3R5bGVTaGVldENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQorICAgIGlmIChhcmd1
bWVudENvdW50ICE9IDIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291cmNlKEFkb3B0LCBK
U1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CiAg
ICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKICAgIAorICAgIGJvb2wgcnVuSW5BbGxGcmFtZXMgPSBK
U1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sxXSk7CisKICAgICBMYXlvdXRUZXN0
Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVy
Kj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5hZGRV
c2VyU3R5bGVTaGVldChzb3VyY2UuZ2V0KCkpOworICAgIGNvbnRyb2xsZXItPmFkZFVzZXJTdHls
ZVNoZWV0KHNvdXJjZS5nZXQoKSwgcnVuSW5BbGxGcmFtZXMpOwogICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYmU3OTQ3MzlkNTY3NDNmYjJlYzE1
NTY1NDk5NmY3MjA3ODhmZGUwZi4uMTA5OGVjYWMzMTdhNDQ5ZGI2MzIyZjU3YTA4YzQxZGNjZTdm
ZTkyZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCkBAIC0yNDEsOCArMjQxLDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1Jl
ZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCi0gICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5n
UmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0KTsKLSAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0
KEpTU3RyaW5nUmVmIHNvdXJjZSk7CisgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVm
IHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0LCBib29sIHJ1bkluQWxsRnJhbWVzKTsKKyAgICB2b2lk
IGFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5JbkFsbEZyYW1l
cyk7CiAKICAgICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KTsKICAg
ICBib29sIGlzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc0dl
b2xvY2F0aW9uUGVybWlzc2lvblNldDsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDli
YTY0MjE2MTNlOTQ4NjM3Nzg2OTU5MjY1Y2YzOWM1YmEyNGJjZjcuLjhiNjFmMzA1NTRkYTNhN2U0
MzIxZjhlMDY1MWFjOWMwZDMyMDY2MWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEy
NjUsMTcgKzEyNjUsMTcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxl
Y3Rpb25Db2xvcnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWUKIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpIHx8ICFh
cmd1bWVudHNbMV0uaXNCb29sKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAzIHx8ICFh
cmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9vbCgpIHx8ICFhcmd1
bWVudHNbMl0uaXNCb29sKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3
KCktPmFkZFVzZXJTY3JpcHQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIGFy
Z3VtZW50c1sxXS50b0Jvb2xlYW4oKSk7CisgICAgV2ViVmlldzo6YWRkVXNlclNjcmlwdChjcHBW
YXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSwg
YXJndW1lbnRzWzFdLnRvQm9vbGVhbigpLCBhcmd1bWVudHNbMl0udG9Cb29sZWFuKCkpOwogfQog
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3Vs
dC0+c2V0TnVsbCgpOwotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRz
WzBdLmlzU3RyaW5nKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVu
dHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9vbCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2VyU3R5bGVTaGVldChjcHBWYXJpYW50
VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7CisgICAgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hl
ZXQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIFdlYlZlY3RvcjxXZWJTdHJp
bmc+KCksIGFyZ3VtZW50c1sxXS50b0Jvb2xlYW4oKSk7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0cykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDE4MTQ5
MzNkMjEzYmU4NWM3ZjE1MjQ0ZjdhMTFmMWFlNmFjM2JiMDUuLjllOGY3OTFiZWQ2OWI1NWY0MjBl
N2U4Njg3ZDNkYmZmZTZjNmIxMjggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNjI0LDEyICs2
MjQsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpT
U3RyaW5nUmVmIGtleSwgSlNTdHJpbmdSZWYgdmFsdWUKICAgICBnX2ZyZWUoc3RyVmFsdWUpOwog
fQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVm
IHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0KQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRk
VXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBydW5J
bkFsbEZyYW1lcykKIHsKICAgICBwcmludGYoIkxheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2Vy
U2NyaXB0IG5vdCBpbXBsZW1lbnRlZC5cbiIpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UpCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wg
cnVuSW5BbGxGcmFtZXMpCiB7CiAgICAgcHJpbnRmKCJMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRk
VXNlclN0eWxlU2hlZXQgbm90IGltcGxlbWVudGVkLlxuIik7CiB9CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
aW5kZXggOWIwNDRjMzg1NDI3YjY3NWFiZTUxOWRhOWNhMjZlNWFhMTMxMDUxMS4uN2NiMjZmNmEx
OTI1N2Y0NDYwZmQ3ZjJhOTc3MDNkZjgwODJhNGRmNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAt
NjI3LDE4ICs2MjcsMTggQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2Nyb2xsYmFy
UG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1IKICAgICAvLyBGSVhNRTog
aW1wbGVtZW50CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQo
SlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQpCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0
LCBib29sIHJ1bkluQWxsRnJhbWVzKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291
cmNlQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
c291cmNlKSk7CiAgICAgTlNTdHJpbmcgKnNvdXJjZU5TID0gKE5TU3RyaW5nICopc291cmNlQ0Yu
Z2V0KCk7Ci0gICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOkAib3JnLndlYmtpdC5E
dW1wUmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxkXSBzb3VyY2U6c291cmNl
TlMgdXJsOm5pbCB3aGl0ZWxpc3Q6bmlsIGJsYWNrbGlzdDpuaWwgaW5qZWN0aW9uVGltZToocnVu
QXRTdGFydCA/IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYkluamVjdEF0RG9jdW1lbnRF
bmQpXTsKKyAgICBbV2ViVmlldyBfYWRkVXNlclNjcmlwdFRvR3JvdXA6QCJvcmcud2Via2l0LkR1
bXBSZW5kZXJUcmVlIiB3b3JsZDpbV2ViU2NyaXB0V29ybGQgd29ybGRdIHNvdXJjZTpzb3VyY2VO
UyB1cmw6bmlsIHdoaXRlbGlzdDpuaWwgYmxhY2tsaXN0Om5pbCBpbmplY3Rpb25UaW1lOihydW5B
dFN0YXJ0ID8gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogV2ViSW5qZWN0QXREb2N1bWVudEVu
ZCkgaW5qZWN0ZWRGcmFtZXM6KHJ1bkluQWxsRnJhbWVzID8gV2ViSW5qZWN0SW5BbGxGcmFtZXMg
OiBXZWJJbmplY3RJblRvcEZyYW1lT25seSldOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UpCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wg
cnVuSW5BbGxGcmFtZXMpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VDRihB
ZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzb3VyY2Up
KTsKICAgICBOU1N0cmluZyAqc291cmNlTlMgPSAoTlNTdHJpbmcgKilzb3VyY2VDRi5nZXQoKTsK
LSAgICBbV2ViVmlldyBfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOkAib3JnLndlYmtpdC5EdW1w
UmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxkXSBzb3VyY2U6c291cmNlTlMg
dXJsOm5pbCB3aGl0ZWxpc3Q6bmlsIGJsYWNrbGlzdDpuaWxdOworICAgIFtXZWJWaWV3IF9hZGRV
c2VyU3R5bGVTaGVldFRvR3JvdXA6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIiB3b3JsZDpb
V2ViU2NyaXB0V29ybGQgd29ybGRdIHNvdXJjZTpzb3VyY2VOUyB1cmw6bmlsIHdoaXRlbGlzdDpu
aWwgYmxhY2tsaXN0Om5pbCBpbmplY3RlZEZyYW1lczoocnVuSW5BbGxGcmFtZXMgPyBXZWJJbmpl
Y3RJbkFsbEZyYW1lcyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5KV07CiB9CiAKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RD
b250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRU
ZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZDk1NTUzOTk3NDk0ZTMwOGZiY2RiZjcyYzg1MDc3
NGEzNDBlOWQ5YS4uNzE4NjY3YWM2ZTUxYjgxZmQ3OGJiNWQ5ZWMwZGU2Yjk4MTFhNmE1MiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9s
bGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRpb24sIEpT
U3RyaW5nUgogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFy
dCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYg
c291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgaW5qZWN0SW5BbGxGcmFtZXMpCiB7CiAgICAg
Q09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlldzsKICAgICBpZiAoRkFJTEVEKFdlYktpdENy
ZWF0ZUluc3RhbmNlKF9fdXVpZG9mKFdlYlZpZXcpLCAwLCBfX3V1aWRvZih3ZWJWaWV3KSwgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3ZWJWaWV3KSkpKQpAQCAtMTA0NCwxMSArMTA0NCwxMSBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNv
dXJjZSwgYm9vbCBydW5BdFN0YXJ0KQogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFu
Y2UoX191dWlkb2YoV2ViU2NyaXB0V29ybGQpLCAwLCBfX3V1aWRvZih3b3JsZCksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCoqPigmd29ybGQpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlZp
ZXctPmFkZFVzZXJTY3JpcHRUb0dyb3VwKF9ic3RyX3QoTCJvcmcud2Via2l0LkR1bXBSZW5kZXJU
cmVlIikuR2V0QlNUUigpLCB3b3JsZC5nZXQoKSwgYnN0clQoc291cmNlKS5HZXRCU1RSKCksIDAs
IDAsIDAsIDAsIDAsIHJ1bkF0U3RhcnQgPyBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgOiBXZWJJ
bmplY3RBdERvY3VtZW50RW5kKTsKKyAgICB3ZWJWaWV3LT5hZGRVc2VyU2NyaXB0VG9Hcm91cChf
YnN0cl90KEwib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIpLkdldEJTVFIoKSwgd29ybGQuZ2V0
KCksIGJzdHJUKHNvdXJjZSkuR2V0QlNUUigpLCAwLCAwLCAwLCAwLCAwLCBydW5BdFN0YXJ0ID8g
V2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogV2ViSW5qZWN0QXREb2N1bWVudEVuZCwgaW5qZWN0
SW5BbGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYkluamVjdEluVG9wRnJhbWVP
bmx5KTsKIH0KIAogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVl
dChKU1N0cmluZ1JlZiBzb3VyY2UpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2Vy
U3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgaW5qZWN0SW5BbGxGcmFtZXMpCiB7
CiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlldzsKICAgICBpZiAoRkFJTEVEKFdl
YktpdENyZWF0ZUluc3RhbmNlKF9fdXVpZG9mKFdlYlZpZXcpLCAwLCBfX3V1aWRvZih3ZWJWaWV3
KSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3ZWJWaWV3KSkpKQpAQCAtMTA1OCw3ICsxMDU4
LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJp
bmdSZWYgc291cmNlKQogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlk
b2YoV2ViU2NyaXB0V29ybGQpLCAwLCBfX3V1aWRvZih3b3JsZCksIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCoqPigmd29ybGQpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlZpZXctPmFkZFVz
ZXJTdHlsZVNoZWV0VG9Hcm91cChfYnN0cl90KEwib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIp
LkdldEJTVFIoKSwgd29ybGQuZ2V0KCksIGJzdHJUKHNvdXJjZSkuR2V0QlNUUigpLCAwLCAwLCAw
LCAwLCAwKTsKKyAgICB3ZWJWaWV3LT5hZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX2JzdHJfdChM
Im9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiKS5HZXRCU1RSKCksIHdvcmxkLmdldCgpLCBic3Ry
VChzb3VyY2UpLkdldEJTVFIoKSwgMCwgMCwgMCwgMCwgMCwgaW5qZWN0SW5BbGxGcmFtZXMgPyBX
ZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5KTsKIH0KIAogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91
dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IDUxMWViODFlYzU1ZmM0MTNjYzExYjU5YTUwOTVi
ZmIyODQ1M2RjYWMuLmE0ZDQ5YzdjYjVmZDc1ZGFlZTY2MzBkM2I4MGJkN2FlODdmYTNiOTIgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9s
bGVyV3guY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwCkBAIC0zMjcsMTIgKzMyNywxMiBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgLyoga2V5ICovLCBKU1N0cmlu
Z1JlZgogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCkK
K3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291
cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgcnVuSW5BbGxGcmFtZXMpCiB7CiAgICAgcHJpbnRm
KCJMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdCBub3QgaW1wbGVtZW50ZWQuXG4i
KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNT
dHJpbmdSZWYgc291cmNlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxl
U2hlZXQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkluQWxsRnJhbWVzKQogewogICAgIHBy
aW50ZigiTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0IG5vdCBpbXBsZW1l
bnRlZC5cbiIpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60405</attachid>
            <date>2010-07-02 14:39:43 -0700</date>
            <delta_ts>2010-07-07 14:00:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41529-20100702143941.patch</filename>
            <type>text/plain</type>
            <size>56242</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYmFkN2E4ODg3NTkwYTBkNWFmNWE2ZjI3MmUyZmZiZTU2MmQxODEyLi4wOTIxZmVj
NjU1YWViNjBiODgxZTdhZjVjNjliMmU2NGQ4MjNjYWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTAtMDctMDIgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiB1c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbDoK
KyAgICAgICAgKiB1c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHVzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogdXNlcnNjcmlwdHMvc2NyaXB0LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sOgorICAgICAg
ICAqIHVzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWw6CisgICAgICAgICogdXNlcnNj
cmlwdHMvc2NyaXB0LXJ1bi1hdC1zdGFydC5odG1sOgorICAgICAgICAqIHVzZXJzY3JpcHRzL3Np
bXBsZS1zdHlsZXNoZWV0Lmh0bWw6CisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQt
YWxsLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3Vz
ZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMv
dXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9w
LWZyYW1lLW9ubHkuaHRtbDogQWRkZWQuCisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvbWl4ZWQtY2Fz
ZS1zdHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0
eWxlc2hlZXQuaHRtbAppbmRleCA3OTM3ZDZmN2M0YTBmNmM0NzVmZDM5MWJkMGJhOGVhYzBiNTI4
MTFiLi5kNDFjYmFjOTZmMjMzZDUxZGNmM2FmNTQzODY0MWNlZTIzMjFiZTVlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbApAQCAt
Myw3ICszLDcgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclN0eWxlU2hlZXQoIiNtaXhlZENhc2UgeyBk
aXNwbGF5OiBub25lIH0iKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clN0eWxlU2hlZXQoIiNtaXhlZENhc2UgeyBkaXNwbGF5OiBub25lIH0iLCB0cnVlKTsKIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVz
b3VyY2VzL2ZyYW1lMS5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVzb3VyY2VzL2Zy
YW1lMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MThmN2M2NDg3ZjZhYjlkYWQ3MTM3YjQ1ZTc3ZTA2Yjlm
NWJhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJj
ZXMvZnJhbWUxLmh0bWwKQEAgLTAsMCArMSw2IEBACis8aHRtbD4KKzxib2R5PgorPGRpdiBpZD0i
dGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPGlmcmFtZSBzcmM9ImZyYW1lMi5odG1sIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRz
L3Jlc291cmNlcy9mcmFtZTIuaHRtbCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNl
cy9mcmFtZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2QxNWIzOWViYmEyMTA0MzA2ZGZmNTY5NTI1MDZl
ZTU0MjJlZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVz
b3VyY2VzL2ZyYW1lMi5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0Pgord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKK30KKzwvc2NyaXB0PgorPGRpdiBpZD0idGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LW5v
dC1ydW4tZm9yLWZyYWdtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0
LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sCmluZGV4IDhkNjkxNzJlZjU1ZGYyZWEwNzY0ZmMw
MmQ1ZWNkMGI1OTBjZjRhNGYuLmM3M2VmYzMzOTRjNzY5NjhlYzZjOTU0YWEwYzVlMTBiOWQxNmI5
NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZv
ci1mcmFnbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtbm90
LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWwKQEAgLTUsNyArNSw3IEBACiBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJjb25zb2xlLmxvZygnaW5qZWN0ZWQnKTsgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyBkaXYuaW5uZXJIVE1MID0gJzxw
PmhpPC9wPic7IiwgdHJ1ZSk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlw
dCgiY29uc29sZS5sb2coJ2luamVjdGVkJyk7IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsgZGl2LmlubmVySFRNTCA9ICc8cD5oaTwvcD4nOyIsIHRydWUsIHRydWUpOwog
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0
LXJ1bi1hdC1lbmQuaHRtbAppbmRleCA4MjFiMWM4ZDgxYjQ4NzBhZWUzY2I2ZWIyMDk0OGI4ZGI1
MThjNzhmLi40NjJkYTg4YWU0ODkzMTM5MGUwM2RjZDY0N2UzZTY5ODQ3N2M2ZGZkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWwKQEAgLTQsNyAr
NCw3IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5u
ZXJIVE1MID0gJ1BBU1MnIiwgZmFsc2UpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVz
ZXJTY3JpcHQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5pbm5lckhUTUwgPSAn
UEFTUyciLCBmYWxzZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbAppbmRleCBhOTFiNjFj
NTM4YTZkZTZlNWM1NDhkZjE2ZTNiMmJkYTkyMTRkYzNjLi40YWEyZjM1YmU3ZDkzZWFkZDUwMjA3
ZGVlYzlmNjc5ODhiMDMzYjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9z
Y3JpcHQtcnVuLWF0LXN0YXJ0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2Ny
aXB0LXJ1bi1hdC1zdGFydC5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiaWYgKHdp
bmRvdy5sb2NhdGlvbiA9PSAnYWJvdXQ6YmxhbmsnKSBjb25zb2xlLmxvZygnU1VDQ0VTUycpOyIs
IHRydWUpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImlmICh3aW5k
b3cubG9jYXRpb24gPT0gJ2Fib3V0OmJsYW5rJykgY29uc29sZS5sb2coJ1NVQ0NFU1MnKTsiLCB0
cnVlLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hlZXQuaHRtbCBiL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3NpbXBsZS1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggMzkxNGM3MjE1ODkyYzA3ODZkNTlm
YTNiM2NlYzg0ZTQyMWJiYTlmZC4uZGEwMDRkMDJjYTJiYjIyNjJhN2M1MTYzMzVlODY4YTg5Y2Yz
MTc1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hl
ZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zaW1wbGUtc3R5bGVzaGVldC5o
dG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclN0eWxlU2hlZXQoImRpdiB7IHdpZHRoOjA7IH0iKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5bGVTaGVldCgiZGl2IHsgd2lkdGg6
MDsgfSIsIHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZkMTY0MjgzODcxMjJiZDZmMTYxZmU1MDgyZThjMjlhZmZkMTk3YWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwt
ZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitJZiBhbnkgdGhpbmdlcnMgYXBw
ZWFyIG9uIHRoaXMgcGFnZSwgdGhlIHRlc3QgaGFzIGZhaWxlZC4gCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+
LS0+JworLS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNl
ci1zY3JpcHQtYWxsLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtYWxsLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NTBlNTg4ZmNmZWM2Yzk3YjQ3MDNm
YmQ5ODc1NmYyMDg1YWFjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicp
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0ZXN0IGhhcyBm
YWlsZWQuCis8RGl2IGlkPSJ0aGluZ2VyIj50aGluZ2VyPC9kaXY+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL2ZyYW1lMS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFt
ZS1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzFmY2NiMmIyM2I0N2ZhMjlmODA5YThm
NDBkN2VmYTdjZjM1ZjcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1R3byB0aGluZ2VycyBzaG91bGQgYXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRo
ZSB0ZXN0IGhhcyBmYWlsZWQuIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCit0aGluZ2VyCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0t
LS0tCit0aGluZ2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNj
cmlwdC10b3AtZnJhbWUtb25seS5odG1sIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWQ0ZjY2M2RiYTQyMGE4NTk3
Yzk2OGU3NTMyZWQ2ZGEyY2FmNzY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
aGluZ2VyJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBmYWxzZSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorVHdvIHRoaW5nZXJzIHNob3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBP
dGhlcndpc2UgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKzxEaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8
L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZnJhbWUxLmh0bWwiPjwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
dHlsZS1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Vz
ZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDkxZTE5OWJjM2Uy
YmE2Y2M3ZWQ4N2JhNGYwZjU4MjU1MDQ3ZGZiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0ZXN0
IGhhcyBmYWlsZWQuICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1m
cmFtZTAtLT4tLT4nCistLS0tLS0tLQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbCBi
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUzNjFmZjVlZjgzZmEyNmY0YjE4YTM2ZDAxYjI0MGIwY2I5ZGUzOGEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMu
aHRtbApAQCAtMCwwICsxLDE3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIj
dGhpbmdlciB7IGRpc3BsYXk6bm9uZTsgfSIsIHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KK0lmIGFueSB0aGluZ2VycyBhcHBlYXIgb24gdGhpcyBwYWdlLCB0aGUgdGVzdCBo
YXMgZmFpbGVkLgorPERpdiBpZD0idGhpbmdlciI+dGhpbmdlcjwvZGl2PgorPGlmcmFtZSBzcmM9
InJlc291cmNlcy9mcmFtZTEuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9wLWZy
YW1lLW9ubHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4YzdmNWExMmNiZTkwNDk2OTQxMzcw
MmUxNzdlYTZkNWNkZGQwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEy
IEBACisyIHRoaW5nZXJzIHNob3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBPdGhlcndpc2UgdGhl
IHRlc3QgaGFzIGZhaWxlZC4gIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCit0aGluZ2VyCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0t
LS0tCit0aGluZ2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdjNzUxYzg2MGQ0YjY4OWNiYjIz
YTYxNDVkYmYyZGZhZDljNDIyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJz
Y3JpcHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbApAQCAtMCwwICsxLDE3IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIjdGhpbmdlciB7IGRpc3BsYXk6bm9uZTsg
fSIsIGZhbHNlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisyIHRoaW5nZXJzIHNo
b3VsZCBhcHBlYXIgb24gdGhpcyBwYWdlLiBPdGhlcndpc2UgdGhlIHRlc3QgaGFzIGZhaWxlZC4K
KzxEaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMv
ZnJhbWUxLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNTdlNjcwZDlkZmUzMDNj
MzA2ZTZkODM3MzEwNTViMmFmYTc0YjdkLi45ZGM1NTc3ZDlkMjVjN2U4MTllNjcxZDRmM2IyNDk5
MzcxOGE2YzFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEwLTA3LTAyICBBYXJvbiBCb29kbWFuICA8YWFA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgdXNlciBzY3JpcHRzIGFuZCB1c2VyIHN0eWxlcyB0
byBhZmZlY3QganVzdCB0aGUgdG9wIGZyYW1lLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUyOQorCisgICAgICAgIFRlc3RzOiB1c2Vyc2NyaXB0
cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKKyAgICAgICAgICAgICAgIHVzZXJzY3JpcHRz
L3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKKyAgICAgICAgICAgICAgIHVzZXJzY3Jp
cHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0
cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuYmFz
ZS5leHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpwYWdlR3JvdXBVc2VyU2hlZXRzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjppbmplY3RVc2VyU2NyaXB0c0ZvcldvcmxkKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6
OmFkZFVzZXJTY3JpcHRUb1dvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6YWRk
VXNlclN0eWxlU2hlZXRUb1dvcmxkKToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgorICAg
ICAgICAqIHBhZ2UvVXNlclNjcmlwdC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlclNjcmlwdDo6
VXNlclNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyU2NyaXB0OjppbmplY3RlZEZyYW1l
cyk6CisgICAgICAgICogcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6
Oik6CisgICAgICAgICogcGFnZS9Vc2VyU3R5bGVTaGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6
VXNlclN0eWxlU2hlZXQ6OlVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJT
dHlsZVNoZWV0OjppbmplY3RlZEZyYW1lcyk6CisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtv
diAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkg
UHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2Vi
Q29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDcwZjA3NzM1Y2FmMTY2ZmQ3NTRkMTAxYTMyY2Fk
YTRmNmE4OWJhZDIuLmU4Y2UxYTVkNTQzYmNlMjRmZjA4MWZlNzFiZDExYTlmMWZlMDNiMTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAKQEAgLTc3MiwxMCArNzcyLDEwIEBAIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNl
dENhcGFjaXR5RWkKIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQ
YWdlc05vd0V2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMTRhZGRWaXNpdGVkTGlua0VQS3RtCiBf
X1pON1dlYkNvcmU5UGFnZUdyb3VwMTdjbG9zZUxvY2FsU3RvcmFnZUV2Ci1fX1pON1dlYkNvcmU5
UGFnZUdyb3VwMjBhZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktO
U182U3RyaW5nRVJLTlNfNEtVUkxFTjNXVEYxMFBhc3NPd25QdHJJTlM5XzZWZWN0b3JJUzNfTG0w
RUVFRUVTRF9OU18yM1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRQorX19aTjdXZWJDb3JlOVBhZ2VH
cm91cDIwYWRkVXNlclNjcmlwdFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0
cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVF
U0RfTlNfMjNVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUVOU18yNFVzZXJTY3JpcHRJbmplY3RlZEZy
YW1lc0UKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAyMHJlbW92ZUFsbFVzZXJDb250ZW50RXYKIF9f
Wk43V2ViQ29yZTlQYWdlR3JvdXAyMXJlbW92ZUFsbFZpc2l0ZWRMaW5rc0V2Ci1fX1pON1dlYkNv
cmU5UGFnZUdyb3VwMjRhZGRVc2VyU3R5bGVTaGVldFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldv
cmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9y
SVMzX0xtMEVFRUVFU0RfCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjRhZGRVc2VyU3R5bGVTaGVl
dFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4z
V1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVFU0RfTlNfMjRVc2VyU2NyaXB0
SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjVyZW1vdmVVc2VyU2NyaXB0
RnJvbVdvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS05TXzRLVVJMRQogX19aTjdXZWJDb3Jl
OVBhZ2VHcm91cDI2cmVtb3ZlVXNlclNjcmlwdHNGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldv
cmxkRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3NF
YgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IDQyMWMzY2VhMmNlMWEyZmY2OTBiMmEzOGEwY2Q2MGUwYjExNGE2ZmIu
LjQ4ZWUxYTU3OWFlZTlmMjYzOTYxMWYxMTc2YjYwYmUwZDQ0YmFlM2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTIxNTMsNiArMjE1Myw4IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiog
RG9jdW1lbnQ6OnBhZ2VHcm91cFVzZXJTaGVldHMoKSBjb25zdAogICAgICAgICBjb25zdCBVc2Vy
U3R5bGVTaGVldFZlY3Rvciogc2hlZXRzID0gaXQtPnNlY29uZDsKICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHNoZWV0cy0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0
IFVzZXJTdHlsZVNoZWV0KiBzaGVldCA9IHNoZWV0cy0+YXQoaSkuZ2V0KCk7CisgICAgICAgICAg
ICBpZiAoc2hlZXQtPmluamVjdGVkRnJhbWVzKCkgPT0gSW5qZWN0SW5Ub3BGcmFtZU9ubHkgJiYg
b3duZXJFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBp
ZiAoIVVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKHVybCgpLCBzaGVldC0+
d2hpdGVsaXN0KCksIHNoZWV0LT5ibGFja2xpc3QoKSkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFyc2VkU2hlZXQgPSBDU1NT
dHlsZVNoZWV0OjpjcmVhdGVJbmxpbmUoY29uc3RfY2FzdDxEb2N1bWVudCo+KHRoaXMpLCBzaGVl
dC0+dXJsKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggZmVlMDdkZGRlNTcxMTRiNmZlMzRjZWNmOGQwMmZmNTU2MzZl
ZmQ2YS4uZWYwMGMyMjY4ZTI2ODVmNjEyZjQzNTA3MmFkOWRmZmM1ZjNiOWI4ZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBA
IC02OTAsNiArNjkwLDkgQEAgdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdHNGb3JXb3JsZChE
T01XcmFwcGVyV29ybGQqIHdvcmxkLCBjb25zdCBVc2VyU2NyaXB0VmUKICAgICB1bnNpZ25lZCBj
b3VudCA9IHVzZXJTY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y291bnQ7ICsraSkgewogICAgICAgICBVc2VyU2NyaXB0KiBzY3JpcHQgPSB1c2VyU2NyaXB0c1tp
XS5nZXQoKTsKKyAgICAgICAgaWYgKHNjcmlwdC0+aW5qZWN0ZWRGcmFtZXMoKSA9PSBJbmplY3RJ
blRvcEZyYW1lT25seSAmJiBvd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CiAgICAgICAgIGlmIChzY3JpcHQtPmluamVjdGlvblRpbWUoKSA9PSBpbmplY3Rpb25UaW1lICYm
IFVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGRvYy0+dXJsKCksIHNjcmlw
dC0+d2hpdGVsaXN0KCksIHNjcmlwdC0+YmxhY2tsaXN0KCkpKQogICAgICAgICAgICAgbV9zY3Jp
cHQuZXZhbHVhdGVJbldvcmxkKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT5zb3VyY2UoKSwgc2Ny
aXB0LT51cmwoKSksIHdvcmxkKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IGY2Yzc0NmRkOGZj
OWExYmExYWNkMDRlNGE2Y2NmNDFlZDYzMzlmYmMuLjRjOWJjNzEzOWI1YjUzZGQxNThiNGQzNTJm
NGNlZjlhMzIxYWJmMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0yMTMsMTIgKzIxMywxMyBAQCBJbmRl
eGVkRGF0YWJhc2UqIFBhZ2VHcm91cDo6aW5kZXhlZERhdGFiYXNlKCkKIH0KICNlbmRpZgogCi12
b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwgIFBhc3NPd25QdHI8VmVj
dG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwgVXNlclNjcmlwdElu
amVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKK3ZvaWQgUGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0
VG9Xb3JsZChET01XcmFwcGVyV29ybGQqIHdvcmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29u
c3QgS1VSTCYgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNl
clNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewogICAgIEFTU0VSVF9BUkcod29ybGQsIHdvcmxkKTsKIAot
ICAgIE93blB0cjxVc2VyU2NyaXB0PiB1c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwg
dXJsLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSkpOworICAgIE93blB0cjxV
c2VyU2NyaXB0PiB1c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwgdXJsLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSwgaW5qZWN0ZWRGcmFtZXMpKTsKICAgICBpZiAo
IW1fdXNlclNjcmlwdHMpCiAgICAgICAgIG1fdXNlclNjcmlwdHMuc2V0KG5ldyBVc2VyU2NyaXB0
TWFwKTsKICAgICBVc2VyU2NyaXB0VmVjdG9yKiYgc2NyaXB0c0luV29ybGQgPSBtX3VzZXJTY3Jp
cHRzLT5hZGQod29ybGQsIDApLmZpcnN0LT5zZWNvbmQ7CkBAIC0yMjcsMTkgKzIyOCwyMCBAQCB2
b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCwgY29uc3QgU3RyaW5nJiBzb3VyYwogICAgIHNjcmlwdHNJbldvcmxkLT5hcHBlbmQodXNlclNj
cmlwdC5yZWxlYXNlKCkpOwogfQogCi12b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRU
b1dvcmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBLVVJMJiB1cmwsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBibGFja2xpc3QpCit2b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRUb1dv
cmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBL
VVJMJiB1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBBU1NFUlRf
QVJHKHdvcmxkLCB3b3JsZCk7CiAKLSAgICBPd25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHls
ZVNoZWV0KG5ldyBVc2VyU3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xp
c3QpKTsKKyAgICBPd25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0KG5ldyBVc2Vy
U3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIGluamVjdGVkRnJh
bWVzKSk7CiAgICAgaWYgKCFtX3VzZXJTdHlsZVNoZWV0cykKICAgICAgICAgbV91c2VyU3R5bGVT
aGVldHMuc2V0KG5ldyBVc2VyU3R5bGVTaGVldE1hcCk7CiAgICAgVXNlclN0eWxlU2hlZXRWZWN0
b3IqJiBzdHlsZVNoZWV0c0luV29ybGQgPSBtX3VzZXJTdHlsZVNoZWV0cy0+YWRkKHdvcmxkLCAw
KS5maXJzdC0+c2Vjb25kOwogICAgIGlmICghc3R5bGVTaGVldHNJbldvcmxkKQogICAgICAgICBz
dHlsZVNoZWV0c0luV29ybGQgPSBuZXcgVXNlclN0eWxlU2hlZXRWZWN0b3I7CiAgICAgc3R5bGVT
aGVldHNJbldvcmxkLT5hcHBlbmQodXNlclN0eWxlU2hlZXQucmVsZWFzZSgpKTsKLSAgICAKKwog
ICAgIC8vIENsZWFyIG91ciBjYWNoZWQgc2hlZXRzIGFuZCBoYXZlIHRoZW0ganVzdCByZXBhcnNl
LgogICAgIEhhc2hTZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VzLmVuZCgp
OwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlcy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuaCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCBhNDA5NDk0ZWZjMmI5Nzc5
M2VhMGFjNTAzZmUyZGUxYjg1MDI5NWRjLi4wNzEwMmRmNzk3NGZmNmJiZTJlMmZjNDgwOGQ0MjUz
YmNiYTUxZDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2Vi
Q29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC03NCwyMCArNzQsMjEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBJbmRleGVkRGF0YWJhc2UqIGluZGV4ZWREYXRhYmFzZSgpOwogI2VuZGlm
CiAKLSAgICAgICAgdm9pZCBhZGRVc2VyU2NyaXB0VG9Xb3JsZChET01XcmFwcGVyV29ybGQqLCBj
b25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYsIAorICAgICAgICB2b2lkIGFkZFVzZXJT
Y3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25z
dCBLVVJMJiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZl
Y3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxh
Y2tsaXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKICAgICAgICAgdm9pZCBh
ZGRVc2VyU3R5bGVTaGVldFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBz
b3VyY2UsIGNvbnN0IEtVUkwmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QpOwotICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0
cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKKwogICAgICAgICB2b2lkIHJl
bW92ZVVzZXJTY3JpcHRGcm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgS1VSTCYpOwog
ICAgICAgICB2b2lkIHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbVdvcmxkKERPTVdyYXBwZXJXb3Js
ZCosIGNvbnN0IEtVUkwmKTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCByZW1vdmVVc2VyU2Ny
aXB0c0Zyb21Xb3JsZChET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdm9pZCByZW1vdmVVc2Vy
U3R5bGVTaGVldHNGcm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKik7Ci0gICAgCisKICAgICAgICAg
dm9pZCByZW1vdmVBbGxVc2VyQ29udGVudCgpOwotICAgICAgICAKKwogICAgICAgICBjb25zdCBV
c2VyU2NyaXB0TWFwKiB1c2VyU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclNjcmlwdHMu
Z2V0KCk7IH0KICAgICAgICAgY29uc3QgVXNlclN0eWxlU2hlZXRNYXAqIHVzZXJTdHlsZVNoZWV0
cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclN0eWxlU2hlZXRzLmdldCgpOyB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmggYi9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5o
CmluZGV4IDhiMzcwM2Y5MzcyZjdjMzlhYjMwMDYyYjc4OTU1NjdkYzAwMjMwNGUuLmVhNjk5YjBk
MTU5YjAxNmNkYWMwZDQ3Mzg4NjJiMzAwOWUyODc1MWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFn
ZS9Vc2VyU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaApAQCAtMzgsMTIg
KzM4LDEzIEBAIGNsYXNzIFVzZXJTY3JpcHQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGlj
OgogICAgIFVzZXJTY3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwK
ICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBh
c3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xpc3QsCi0gICAgICAgICAgICAgICBVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKQorICAgICAgICAgICAgICAgVXNlclNj
cmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVz
IGluamVjdGVkRnJhbWVzKQogICAgICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBt
X3VybCh1cmwpCiAgICAgICAgICwgbV93aGl0ZWxpc3Qod2hpdGVsaXN0KQogICAgICAgICAsIG1f
YmxhY2tsaXN0KGJsYWNrbGlzdCkKICAgICAgICAgLCBtX2luamVjdGlvblRpbWUoaW5qZWN0aW9u
VGltZSkKKyAgICAgICAgLCBtX2luamVjdGVkRnJhbWVzKGluamVjdGVkRnJhbWVzKQogICAgIHsK
ICAgICB9CiAKQEAgLTUyLDE1ICs1MywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFN0
cmluZz4qIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0LmdldCgpOyB9CiAg
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxh
Y2tsaXN0LmdldCgpOyB9CiAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0aW9uVGltZTsgfQotICAgIAorICAgIFVzZXJTY3Jp
cHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0
ZWRGcmFtZXM7IH0KKwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgS1VSTCBt
X3VybDsKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3doaXRlbGlzdDsKICAgICBPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBtX2JsYWNrbGlzdDsKICAgICBVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSBtX2luamVjdGlvblRpbWU7CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIG1faW5q
ZWN0ZWRGcmFtZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0gCisKICNlbmRpZiAv
LyBVc2VyU2NyaXB0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMu
aCBiL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaAppbmRleCBhZDI3ZTc5Yjk4MjlmOTEx
ZTVhNmNjM2QzNWMwNDU5NTQ4OWJmZmFlLi45ZjNiZmUwZmExMjk5YzJhZjc4YzM0MGExNzY5YTBj
OTIzZWYzYjBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdFR5cGVzLmgKKysr
IGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHRUeXBlcy5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gVXNlclNjcmlwdEluamVjdGlvblRpbWUgeyBJbmplY3RB
dERvY3VtZW50U3RhcnQsIEluamVjdEF0RG9jdW1lbnRFbmQgfTsKK2VudW0gVXNlclNjcmlwdElu
amVjdGVkRnJhbWVzIHsgSW5qZWN0SW5BbGxGcmFtZXMsIEluamVjdEluVG9wRnJhbWVPbmx5IH07
CiAKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIFVzZXJTY3JpcHQ7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXQuaCBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVT
aGVldC5oCmluZGV4IDYxMDc3OGYzZDdiNTcyNzkzNzRhMGNkZTdmY2NhMzUwZmJlZjgyNzQuLmJj
YTZiZWFiYTE5YTRmYzRjYjAzYTc2NzAyMmQ1NmIwMzNjY2Q5MTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9Vc2VyU3R5bGVTaGVldC5oCisrKyBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVl
dC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFVzZXJTdHlsZVNoZWV0X2gKIAogI2luY2x1
ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJVc2VyU2NyaXB0VHlwZXMuaCIKICNpbmNsdWRlICJVc2Vy
U3R5bGVTaGVldFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CkBAIC0zNywxMSArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgVXNlclN0eWxlU2hlZXQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAg
IFVzZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmwsCi0g
ICAgICAgICAgICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwg
UGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCkKKyAgICAgICAgICAgICAgICAg
ICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAg
ICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fd2hpdGVsaXN0KHdoaXRlbGlzdCkKICAg
ICAgICAgLCBtX2JsYWNrbGlzdChibGFja2xpc3QpCisgICAgICAgICwgbV9pbmplY3RlZEZyYW1l
cyhpbmplY3RlZEZyYW1lcykKICAgICB7CiAgICAgfQogCkBAIC00OSwxMiArNTIsMTQgQEAgcHVi
bGljOgogICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4qIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVs
aXN0LmdldCgpOyB9CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0
IHsgcmV0dXJuIG1fYmxhY2tsaXN0LmdldCgpOyB9CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEZyYW1lczsgfQog
CiBwcml2YXRlOgogICAgIFN0cmluZyBtX3NvdXJjZTsKICAgICBLVVJMIG1fdXJsOwogICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fd2hpdGVsaXN0OwogICAgIE93blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IG1fYmxhY2tsaXN0OworICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBtX2luamVj
dGVkRnJhbWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
YTI4ZmM4OGFkNGZjNWE0ZjQwOTUxMDc5MzQ5MWEyODA5YWYwYjQxYy4uMzA1MDI2MTI3MTNkODFk
NjNiZjM4ZDYzODE0ZTBiZGQxZjI0YmE4MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDctMDIgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3OjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6YWRkVXNlclN0
eWxlU2hlZXQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXc6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojph
ZGRVc2VyU3R5bGVTaGVldCk6CisKIDIwMTAtMDctMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMWVmZDc1MmU1MzBhNGU2YjJiYTVmZjEzMDQ5MjJj
YWE5NWIxZDZiMC4uNzlmMzlkYWY4OTA2YjJiOGViYWMxNWJiNjc1NjRiMjA2OTk0ZTQ2MCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTU0LDYgKzU0LDE4IEBAIHN0cnVjdCBXZWJQb2lu
dDsKIAogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBXZWJXaWRnZXQgewogcHVibGljOgorICAgIC8v
IENvbnRyb2xzIHRoZSB0aW1lIHRoYXQgdXNlciBzY3JpcHRzIGluamVjdGVkIGludG8gdGhlIGRv
Y3VtZW50IHJ1bi4KKyAgICBlbnVtIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIHsKKyAgICAg
ICAgV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0LAorICAgICAgICBXZWJJbmplY3RBdERvY3VtZW50
RW5kCisgICAgfTsKKworICAgIC8vIENvbnRyb2xzIHdoaWNoIGZyYW1lcyB1c2VyIHNjcmlwdHMg
YXJlIGluamVjdGVkIGludG8uCisgICAgZW51bSBXZWJVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMg
eworICAgICAgICBXZWJJbmplY3RJbkFsbEZyYW1lcywKKyAgICAgICAgV2ViSW5qZWN0SW5Ub3BG
cmFtZU9ubHkKKyAgICB9OworCiAgICAgLy8gSW5pdGlhbGl6YXRpb24gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBDcmVhdGVz
IGEgV2ViVmlldyB0aGF0IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ugd2lsbCBuZWVkIHRv
CkBAIC0yODYsMTggKzI5OCwyMiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRoZXNlIHR3byBt
ZXRob2RzIGFyZSBERVBSRUNBVEVELiBSZW1vdmUgb25jZSBDaHJvbWl1bSBoYXMgYmVlbiByb2xs
ZWQuCiAgICAgdmlydHVhbCB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBib29sIHJ1bkF0U3RhcnQpCiAgICAgewotICAgICAgICBhZGRVc2VyU2NyaXB0KHNv
dXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksIHJ1bkF0U3RhcnQpOworICAgICAgICBh
ZGRVc2VyU2NyaXB0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksCisgICAgICAg
ICAgICAgICAgICAgICAgcnVuQXRTdGFydCA/IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdl
YkluamVjdEF0RG9jdW1lbnRFbmQsCisgICAgICAgICAgICAgICAgICAgICAgV2ViSW5qZWN0SW5B
bGxGcmFtZXMpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29u
c3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgYWRkVXNlclN0eWxlU2hl
ZXQoc291cmNlQ29kZSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSk7CisgICAgICAgIGFkZFVzZXJT
dHlsZVNoZWV0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksIFdlYkluamVjdElu
QWxsRnJhbWVzKTsKICAgICB9CiAKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGFkZFVzZXJT
Y3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcnVuQXRTdGFy
dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1l
cyk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBX
ZWJTdHJpbmcmIHNvdXJjZUNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnMpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdl
YlN0cmluZz4mIHBhdHRlcm5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVzKTsKICAg
ICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CiAKICAgICAv
LyBNb2RhbCBkaWFsb2cgc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0
Y2hpbmdFbnVtcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMu
Y3BwCmluZGV4IDU3MzZjYTAwNjE3ZWNhZTI0YzMwYjcwNmU5ODg1Nzg3MWUxMjE3MzIuLmZlNGNi
ZjkzZjUwYzczMTViMzU4ZjNkZGMxZTkzNzI0MTdlYWJlZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgIlRleHRBZmZp
bml0eS5oIgorI2luY2x1ZGUgIlVzZXJTY3JpcHRUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFjY2Vz
c2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgog
I2luY2x1ZGUgIldlYkNsaXBib2FyZC5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIldl
YlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2Vi
VGV4dENhc2VTZW5zaXRpdml0eS5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogCiAjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
d2Via2l0X25hbWUsIHdlYmNvcmVfbmFtZSkgXApAQCAtMzEyLDMgKzMxNCw4IEBAIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dEFmZmluaXR5RG93bnN0cmVhbSwgRE9XTlNUUkVB
TSk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dENhc2VTZW5zaXRpdmUs
IFRleHRDYXNlU2Vuc2l0aXZlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4
dENhc2VJbnNlbnNpdGl2ZSwgVGV4dENhc2VJbnNlbnNpdGl2ZSk7CisKK0NPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViVmlldzo6V2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0LCBJbmplY3RB
dERvY3VtZW50U3RhcnQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJWaWV3OjpX
ZWJJbmplY3RBdERvY3VtZW50RW5kLCBJbmplY3RBdERvY3VtZW50RW5kKTsKK0NPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6V2ViSW5qZWN0SW5BbGxGcmFtZXMsIEluamVjdElu
QWxsRnJhbWVzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6V2ViSW5q
ZWN0SW5Ub3BGcmFtZU9ubHksIEluamVjdEluVG9wRnJhbWVPbmx5KTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggYjAwMTA3NjBlMDExZjE1MDFkY2RlZDU2YzZkZmQzNjQ2NWIy
MGQ2My4uYWRkMjY5MDVmNjg3ZmM2NDA2YjM4ZDNiNGM5NWNiYWM3MDQ5ZTljNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTE5MjQsNyArMTkyNCwxMCBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRTZWxlY3Rpb25Db2xvcnModW5zaWduZWQgYWN0aXZlQmFja2dyb3VuZENvbG9y
LAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViVmlldzo6YWRkVXNlclNjcmlwdChjb25zdCBXZWJTdHJp
bmcmIHNvdXJjZUNvZGUsIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBwYXR0ZXJuc0luLCBi
b29sIHJ1bkF0U3RhcnQpCit2b2lkIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3Ry
aW5nJiBzb3VyY2VDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZl
Y3RvcjxXZWJTdHJpbmc+JiBwYXR0ZXJuc0luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYlZpZXc6OldlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmlldzo6V2ViVXNlclNjcmlwdEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewogICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRl
cm5zKG5ldyBWZWN0b3I8U3RyaW5nPik7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0
ZXJuc0luLnNpemUoKTsgKytpKQpAQCAtMTkzMywxMCArMTkzNiwxMyBAQCB2b2lkIFdlYlZpZXc6
OmFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0
b3I8V2ViU3RyaQogICAgIFBhZ2VHcm91cCogcGFnZUdyb3VwID0gUGFnZUdyb3VwOjpwYWdlR3Jv
dXAocGFnZUdyb3VwTmFtZSk7CiAgICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQoRE9N
V3JhcHBlcldvcmxkOjpjcmVhdGUoKSk7CiAgICAgcGFnZUdyb3VwLT5hZGRVc2VyU2NyaXB0VG9X
b3JsZCh3b3JsZC5nZXQoKSwgc291cmNlQ29kZSwgV2ViVVJMKCksIHBhdHRlcm5zLnJlbGVhc2Uo
KSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkF0U3RhcnQgPyBJ
bmplY3RBdERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50RW5kKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFVzZXJTY3JpcHRJbmplY3Rpb25U
aW1lPihpbmplY3Rpb25UaW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcz4oaW5qZWN0ZWRGcmFtZXMpKTsK
IH0KIAotdm9pZCBXZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNv
dXJjZUNvZGUsIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBwYXR0ZXJuc0luKQordm9pZCBX
ZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+
JiBwYXR0ZXJuc0luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJWaWV3OjpX
ZWJVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCiB7CiAgICAgT3duUHRy
PFZlY3RvcjxTdHJpbmc+ID4gcGF0dGVybnMobmV3IFZlY3RvcjxTdHJpbmc+KTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHBhdHRlcm5zSW4uc2l6ZSgpOyArK2kpCkBAIC0xOTQ0LDcgKzE5
NTAsOCBAQCB2b2lkIFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IFdlYlN0cmluZyYg
c291cmNlQ29kZSwgY29uc3QgV2ViVmVjdG9yPFdlYgogCiAgICAgUGFnZUdyb3VwKiBwYWdlR3Jv
dXAgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXBOYW1lKTsKICAgICBSZWZQdHI8RE9N
V3JhcHBlcldvcmxkPiB3b3JsZChET01XcmFwcGVyV29ybGQ6OmNyZWF0ZSgpKTsKLSAgICBwYWdl
R3JvdXAtPmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZCh3b3JsZC5nZXQoKSwgc291cmNlQ29kZSwg
V2ViVVJMKCksIHBhdHRlcm5zLnJlbGVhc2UoKSwgMCk7CisgICAgcGFnZUdyb3VwLT5hZGRVc2Vy
U3R5bGVTaGVldFRvV29ybGQod29ybGQuZ2V0KCksIHNvdXJjZUNvZGUsIFdlYlVSTCgpLCBwYXR0
ZXJucy5yZWxlYXNlKCksIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8VXNlclNjcmlwdEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZyYW1lcykp
OwogfQogCiB2b2lkIFdlYlZpZXc6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTRhM2I2
OTRiY2QwNzE2OTExNGJjNjcwZjc3NDE0MzFiNGRjMzdjYi4uNTM3ODU2NmMwMzllMTgzY2QzMDYz
MmQ4MjAzZTE3MWJiMDRhNmE1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNy0wMiAgQWFy
b24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2NyaXB0cyBh
bmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclNjcmlwdFRv
R3JvdXA6d29ybGQ6c291cmNlOnVybDp3aGl0ZWxpc3Q6YmxhY2tsaXN0OmluamVjdGlvblRpbWU6
aW5qZWN0ZWRGcmFtZXM6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX2FkZFVzZXJTdHlsZVNoZWV0
VG9Hcm91cDp3b3JsZDpzb3VyY2U6dXJsOndoaXRlbGlzdDpibGFja2xpc3Q6aW5qZWN0ZWRGcmFt
ZXM6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEwLTA3LTAx
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRl
IGEgV2ViVmlldyBwcmVmZXJlbmNlIHRvIGRpc2FibGUgRE5TIHByZWZldGNoaW5nLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBmNGQ0MzQ4ODM3Y2Y0YjU0MDQ3ZmNlMzEwYjMyNDVhYWQ4ODk4M2Y0
Li5mMGJkYmIwZGY5MDY0MmM0YjRhNmZkZTE2YjUxYzZhMGE4ZDgzYzdjIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMjM0OCw2ICsyMzQ4LDcgQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJucykKIAogKyAodm9pZClfYWRk
VXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRX
b3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybAog
ICAgICAgICAgICAgICAgICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2ts
aXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUKKyAgICAgICAgICAgICAgIGluamVjdGVkRnJhbWVzOihX
ZWJVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMKIHsKICAgICBTdHJpbmcg
Z3JvdXAoZ3JvdXBOYW1lKTsKICAgICBpZiAoZ3JvdXAuaXNFbXB0eSgpKQpAQCAtMjM1OCwxMSAr
MjM1OSwxMyBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVj
dG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgcGFnZUdy
b3VwLT5hZGRVc2VyU2NyaXB0VG9Xb3JsZChjb3JlKHdvcmxkKSwgc291cmNlLCB1cmwsIHRvU3Ry
aW5nVmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlzdCksIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0aW9uVGltZSA9PSBXZWJJbmplY3RB
dERvY3VtZW50U3RhcnQgPyBJbmplY3RBdERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50
RW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWUg
PT0gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogSW5q
ZWN0QXREb2N1bWVudEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
amVjdGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gSW5qZWN0SW5BbGxGcmFtZXMg
OiBJbmplY3RJblRvcEZyYW1lT25seSk7CiB9CiAKICsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0
VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29y
bGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsCiAgICAgICAgICAg
ICAgICAgICAgICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihO
U0FycmF5ICopYmxhY2tsaXN0CisgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXM6KFdl
YlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lcwogewogICAgIFN0cmluZyBn
cm91cChncm91cE5hbWUpOwogICAgIGlmIChncm91cC5pc0VtcHR5KCkpCkBAIC0yMzcyLDcgKzIz
NzUsOCBAQCBzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9y
KE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIGlmICghcGFnZUdyb3VwKQogICAgICAgICByZXR1cm47
CiAKLSAgICBwYWdlR3JvdXAtPmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZChjb3JlKHdvcmxkKSwg
c291cmNlLCB1cmwsIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJs
YWNrbGlzdCkpOworICAgIHBhZ2VHcm91cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKGNvcmUo
d29ybGQpLCBzb3VyY2UsIHVybCwgdG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdW
ZWN0b3IoYmxhY2tsaXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJh
bWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiArICh2b2lkKV9yZW1vdmVVc2VyU2Ny
aXB0RnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQg
Kil3b3JsZCB1cmw6KE5TVVJMICopdXJsCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IGNlZGM2MmM3NjU4NzRiZWFmZWU2ZjRkZjIzYThhZTEyNDJhYjE2OWEuLmVhYjQ4OGY0NDdl
MWFlODdjMGRhNzkyNzlhOTA0Mzc0NmU4MjVlZWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oCkBAIC04OCw2ICs4OCwxMSBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYkluamVjdEF0
RG9jdW1lbnRFbmQsCiB9IFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOwogCit0eXBlZGVmIGVu
dW0geworICAgIFdlYkluamVjdEluQWxsRnJhbWVzLAorICAgIFdlYkluamVjdEluVG9wRnJhbWVP
bmx5Cit9IFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lczsKKwogQGludGVyZmFjZSBXZWJDb250
cm9sbGVyIDogTlNUcmVlQ29udHJvbGxlciB7CiAgICAgSUJPdXRsZXQgV2ViVmlldyAqd2ViVmll
dzsKIH0KQEAgLTUwNCw4ICs1MDksOCBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcgdG8gdGhlIEFQ
SS4KIC8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX2FkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KICsgKHZvaWQpX3Jlc2V0
T3JpZ2luQWNjZXNzV2hpdGVsaXN0czsKIAotKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6
KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5TQXJyYXkg
Kil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6
KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWU7Ci0rICh2b2lkKV9hZGRV
c2VyU3R5bGVTaGVldFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3Jp
cHRXb3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVy
bCB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxh
Y2tsaXN0OworKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBO
YW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3Vy
Y2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2ts
aXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJTY3JpcHRJbmpl
Y3RlZEZyYW1lcylpbmplY3RlZEZyYW1lczsKKysgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9H
cm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQg
c291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdoaXRlbGlzdDooTlNB
cnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QgaW5qZWN0ZWRG
cmFtZXM6KFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lczsKICsgKHZv
aWQpX3JlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxk
OihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHVybDooTlNVUkwgKil1cmw7CiArICh2b2lkKV9yZW1v
dmVVc2VyU3R5bGVTaGVldEZyb21Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdl
YlNjcmlwdFdvcmxkICopd29ybGQgdXJsOihOU1VSTCAqKXVybDsKICsgKHZvaWQpX3JlbW92ZVVz
ZXJTY3JpcHRzRnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKaW5kZXggMzA0ZmI4MDQ5YWFjYWRiMGJmMmMyNWQ4ZTBhZTQzMWQyYTU0
MzJlMS4uMmE4NTJmNzM0NWE5YTY0NWEwNzVhNTc4OWVmMjM4Zjc4ZjBjNDhjNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMC0wNy0wMiAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhl
IGFiaWxpdHkgZm9yIHVzZXIgc2NyaXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3Qg
dGhlIHRvcCBmcmFtZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE1MjkKKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlk
bDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmFkZFVzZXJTY3Jp
cHRUb0dyb3VwKToKKyAgICAgICAgKFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cCk6
CisgICAgICAgICogV2ViVmlldy5oOgorCiAyMDEwLTA3LTAxICBTdGV2ZSBGYWxrZW5idXJnICA8
c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24u
CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbCBi
L1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCmluZGV4IDM1MmFlN2U1
NGI2YjBlMjAwYWI0NTk5YTNjYTFjZDM4MmUzN2JlZTEuLmMwYmFiMWNiZTg0NDVhYWE4YzMzOWJh
NmM1YmJjNzkzYjgwZjFhNTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
Vmlld1ByaXZhdGUuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZh
dGUuaWRsCkBAIC0xODcsMTAgKzE4NywxMiBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlIDog
SVVua25vd24KICAgICBIUkVTVUxUIGFkZFVzZXJTY3JpcHRUb0dyb3VwKFtpbl0gQlNUUiBncm91
cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2luXSBCU1RS
IHVybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgd2hp
dGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxpc3RDb3VudCldIEJTVFIqIHdoaXRlbGlz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgYmxhY2ts
aXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJTVFIqIGJsYWNrbGlzdCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlwdEluamVj
dGlvblRpbWUgaW5qZWN0aW9uVGltZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1l
cyBpbmplY3RlZEZyYW1lcyk7CiAgICAgSFJFU1VMVCBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAo
W2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291
cmNlLCBbaW5dIEJTVFIgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtpbl0gdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxpc3RDb3Vu
dCldIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbaW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291
bnQpXSBCU1RSKiBibGFja2xpc3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RD
b3VudCldIEJTVFIqIGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7CiAg
ICAgSFJFU1VMVCByZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKFtpbl0gQlNUUiBncm91cE5hbWUs
IFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJFU1VMVCByZW1v
dmVVc2VyU3R5bGVTaGVldEZyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJT
Y3JpcHRXb3JsZCosIFtpbl0gQlNUUiB1cmwpOwogICAgIEhSRVNVTFQgcmVtb3ZlVXNlclNjcmlw
dHNGcm9tR3JvdXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IDYyMDRmZDIzZjljZGRmNjEyOGExYTVjZjk2YTFlYzBhNDQ0ZTk1MTYuLmNiNWJk
M2QzY2U5MGVmOWZhZmUzNGJmYTk5ZmY1ZGI2OGU0MzVhZDggMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vV2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjAwMCw3ICs2
MDAwLDggQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3Rv
cih1bnNpZ25lZCBwYXR0ZXJuc0NvdW50LCBCU1RSKgogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2Vy
U2NyaXB0VG9Hcm91cChCU1RSIGdyb3VwTmFtZSwgSVdlYlNjcmlwdFdvcmxkKiBpV29ybGQsIEJT
VFIgc291cmNlLCBCU1RSIHVybCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBCU1RSKiB3aGl0ZWxpc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBCU1RS
KiBibGFja2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRp
bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJ
bmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBDT01QdHI8V2ViU2NyaXB0V29y
bGQ+IHdvcmxkKFF1ZXJ5LCBpV29ybGQpOwogICAgIGlmICghd29ybGQpCkBAIC02MDE3LDE0ICs2
MDE4LDE2IEBAIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclNjcmlwdFRvR3JvdXAoQlNUUiBncm91
cE5hbWUsIElXZWJTY3JpcHRXb3JsZCogaVdvcmxkLCBCCiAKICAgICBwYWdlR3JvdXAtPmFkZFVz
ZXJTY3JpcHRUb1dvcmxkKHdvcmxkLT53b3JsZCgpLCB0b1N0cmluZyhzb3VyY2UpLCB0b0tVUkwo
dXJsKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nVmVjdG9y
KHdoaXRlbGlzdENvdW50LCB3aGl0ZWxpc3QpLCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3RDb3Vu
dCwgYmxhY2tsaXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVj
dGlvblRpbWUgPT0gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0
YXJ0IDogSW5qZWN0QXREb2N1bWVudEVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA/IEluamVj
dEF0RG9jdW1lbnRTdGFydCA6IEluamVjdEF0RG9jdW1lbnRFbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1l
cyA/IEluamVjdEluQWxsRnJhbWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogCiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dyb3Vw
KEJTVFIgZ3JvdXBOYW1lLCBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgQlNUUiBzb3VyY2UsIEJT
VFIgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgd2hpdGVsaXN0Q291bnQsIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBCU1RSKiBibGFj
a2xpc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBibGFja2xpc3RDb3VudCwgQlNUUiogYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKQogewogICAgIENPTVB0cjxXZWJTY3JpcHRXb3JsZD4gd29ybGQoUXVlcnksIGlXb3Js
ZCk7CiAgICAgaWYgKCF3b3JsZCkKQEAgLTYwNDAsNyArNjA0Myw4IEBAIEhSRVNVTFQgV2ViVmll
dzo6YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJTVFIgZ3JvdXBOYW1lLCBJV2ViU2NyaXB0V29y
bGQqIGlXb3JsCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKICAgICBwYWdlR3JvdXAtPmFkZFVz
ZXJTdHlsZVNoZWV0VG9Xb3JsZCh3b3JsZC0+d29ybGQoKSwgdG9TdHJpbmcoc291cmNlKSwgdG9L
VVJMKHVybCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TdHJp
bmdWZWN0b3Iod2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNr
bGlzdENvdW50LCBibGFja2xpc3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3RDb3VudCwgd2hpdGVsaXN0KSwgdG9TdHJp
bmdWZWN0b3IoYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFt
ZXMgPyBJbmplY3RJbkFsbEZyYW1lcyA6IEluamVjdEluVG9wRnJhbWVPbmx5KTsKIAogICAgIHJl
dHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9XZWJLaXQv
d2luL1dlYlZpZXcuaAppbmRleCA1MTRmMzc2MGQ4MzEzNWFlNzIxYWE1NjI0YzNiZmVlNjc4YTBk
OGNmLi40ODRmNjI5ZDljYmZlMTEwMmYyY2RkZDUwNDM0YzRkNzk1YTE3NGMyIDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtNzYz
LDEwICs3NjMsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBhZGRVc2VyU2NyaXB0VG9Hcm91cChCU1RSIGdyb3VwTmFtZSwgSVdlYlNjcmlwdFdvcmxk
KiwgQlNUUiBzb3VyY2UsIEJTVFIgdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgQlNU
Uiogd2hpdGVsaXN0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIEJTVFIqIGJsYWNrbGlz
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJTVFIgZ3Jv
dXBOYW1lLCBJV2ViU2NyaXB0V29ybGQqLCBCU1RSIHNvdXJjZSwgQlNUUiB1cmwsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgQlNUUiogd2hpdGVsaXN0LCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGJsYWNrbGlzdENvdW50LCBCU1RSKiBibGFja2xpc3QpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYmxhY2ts
aXN0Q291bnQsIEJTVFIqIGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlVzZXJTY3JpcHRJbmplY3RlZEZy
YW1lcyk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZVVzZXJT
Y3JpcHRGcm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCosIEJTVFIgdXJs
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclN0eWxl
U2hlZXRGcm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCosIEJTVFIgdXJs
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclNjcmlw
dHNGcm9tR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCopOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEx
MGU0ZTFiMzZlNGIyMjJmNDNlOTgxMWMwMTE1NTlmNmZjNmJlZDUuLmIzMjBmMmM0ZDEzYTBlODg4
ZWUxYTk0YzBmMjFmNDlmNzg0OTE5OGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wNy0w
MiAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2Ny
aXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KGFkZFVzZXJTY3JpcHRDYWxsYmFjayk6CisgICAgICAgIChhZGRVc2VyU3R5bGVTaGVldENhbGxi
YWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFk
ZFVzZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHls
ZVNoZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxl
cld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisKIDIw
MTAtMDYtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZGFiMjll
MmIzYjBhMmE0MGE1NGVkZjY5OWM3M2JkNDhjMGE2N2QyLi40OTc3ZGE1OGE3M2YzYzg3OGU4YTg2
ZjRmNDJkODg0YmEwY2IxMTE3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDk5LDI4ICsxNDk5LDMxIEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIHNldFNjcm9sbGJhclBvbGljeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiwKIAogc3RhdGljIEpTVmFsdWVSZWYgYWRkVXNlclNjcmlwdENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAyKQor
ICAgIGlmIChhcmd1bWVudENvdW50ICE9IDMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291
cmNlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhj
ZXB0aW9uKSk7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKICAgICBib29sIHJ1bkF0U3RhcnQg
PSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sxXSk7CisgICAgYm9vbCBydW5J
bkFsbEZyYW1lcyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzJdKTsKICAg
ICAKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExh
eW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAg
ICBjb250cm9sbGVyLT5hZGRVc2VyU2NyaXB0KHNvdXJjZS5nZXQoKSwgcnVuQXRTdGFydCk7Cisg
ICAgY29udHJvbGxlci0+YWRkVXNlclNjcmlwdChzb3VyY2UuZ2V0KCksIHJ1bkF0U3RhcnQsIHJ1
bkluQWxsRnJhbWVzKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAgCiBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRVc2VyU3R5bGVTaGVldENhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAxKQorICAgIGlmIChh
cmd1bWVudENvdW50ICE9IDIpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291cmNlKEFkb3B0
LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7
CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKICAgIAorICAgIGJvb2wgcnVuSW5BbGxGcmFtZXMg
PSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sxXSk7CisKICAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9s
bGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5h
ZGRVc2VyU3R5bGVTaGVldChzb3VyY2UuZ2V0KCkpOworICAgIGNvbnRyb2xsZXItPmFkZFVzZXJT
dHlsZVNoZWV0KHNvdXJjZS5nZXQoKSwgcnVuSW5BbGxGcmFtZXMpOwogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYmU3OTQ3MzlkNTY3NDNmYjJl
YzE1NTY1NDk5NmY3MjA3ODhmZGUwZi4uMTA5OGVjYWMzMTdhNDQ5ZGI2MzIyZjU3YTA4YzQxZGNj
ZTdmZTkyZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCkBAIC0yNDEsOCArMjQxLDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCi0gICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3Ry
aW5nUmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0KTsKLSAgICB2b2lkIGFkZFVzZXJTdHlsZVNo
ZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSk7CisgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5n
UmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0LCBib29sIHJ1bkluQWxsRnJhbWVzKTsKKyAgICB2
b2lkIGFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5JbkFsbEZy
YW1lcyk7CiAKICAgICB2b2lkIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KTsK
ICAgICBib29sIGlzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9p
c0dlb2xvY2F0aW9uUGVybWlzc2lvblNldDsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDliYTY0MjE2MTNlOTQ4NjM3Nzg2OTU5MjY1Y2YzOWM1YmEyNGJjZjcuLjQ3ZWQzNjllYTkwZGUz
ZWU3MWE3ODdhZWI0MmIxMmQ5NzE1OGQyMzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAg
LTEyNjUsMTcgKzEyNjUsMjIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRT
ZWxlY3Rpb25Db2xvcnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWUKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKLSAg
ICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpIHx8
ICFhcmd1bWVudHNbMV0uaXNCb29sKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAzIHx8
ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9vbCgpIHx8ICFh
cmd1bWVudHNbMl0uaXNCb29sKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJW
aWV3KCktPmFkZFVzZXJTY3JpcHQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSks
IGFyZ3VtZW50c1sxXS50b0Jvb2xlYW4oKSk7CisgICAgV2ViVmlldzo6YWRkVXNlclNjcmlwdCgK
KyAgICAgICAgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIFdlYlZlY3RvcjxX
ZWJTdHJpbmc+KCksCisgICAgICAgIGFyZ3VtZW50c1sxXS50b0Jvb2xlYW4oKSA/IFdlYlZpZXc6
OldlYkluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYlZpZXc6OldlYkluamVjdEF0RG9jdW1lbnRF
bmQsCisgICAgICAgIGFyZ3VtZW50c1syXS50b0Jvb2xlYW4oKSA/IFdlYlZpZXc6OldlYkluamVj
dEluQWxsRnJhbWVzIDogV2ViVmlldzo6V2ViSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+
c2V0TnVsbCgpOwotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBd
LmlzU3RyaW5nKCkpCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVudHNb
MF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9vbCgpKQogICAgICAgICByZXR1cm47
Ci0gICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2VyU3R5bGVTaGVldChjcHBWYXJpYW50VG9X
ZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7CisgICAgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQo
CisgICAgICAgIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBXZWJWZWN0b3I8
V2ViU3RyaW5nPigpLAorICAgICAgICBhcmd1bWVudHNbMl0udG9Cb29sZWFuKCkgPyBXZWJWaWV3
OjpXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYlZpZXc6OldlYkluamVjdEluVG9wRnJhbWVPbmx5
KTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHRzKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29u
dHJvbGxlckd0ay5jcHAKaW5kZXggMTgxNDkzM2QyMTNiZTg1YzdmMTUyNDRmN2ExMWYxYWU2YWMz
YmIwNS4uOWU4Zjc5MWJlZDY5YjU1ZjQyMGU3ZTg2ODdkM2RiZmZlNmM2YjEyOCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwCkBAIC02MjQsMTIgKzYyNCwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYga2V5LCBKU1N0cmluZ1JlZiB2YWx1
ZQogICAgIGdfZnJlZShzdHJWYWx1ZSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQpCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwg
Ym9vbCBydW5BdFN0YXJ0LCBib29sIHJ1bkluQWxsRnJhbWVzKQogewogICAgIHByaW50ZigiTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQgbm90IGltcGxlbWVudGVkLlxuIik7CiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5n
UmVmIHNvdXJjZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0
KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5JbkFsbEZyYW1lcykKIHsKICAgICBwcmludGYo
IkxheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCBub3QgaW1wbGVtZW50ZWQu
XG4iKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCA5YjA0NGMzODU0MjdiNjc1YWJlNTE5ZGE5
Y2EyNmU1YWExMzEwNTExLi43Y2IyNmY2YTE5MjU3ZjQ0NjBmZDdmMmE5NzcwM2RmODA4MmE0ZGY0
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC02MjcsMTggKzYyNywxOCBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRpb24s
IEpTU3RyaW5nUgogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRT
dGFydCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoSlNTdHJpbmdS
ZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgcnVuSW5BbGxGcmFtZXMpCiB7CiAgICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0
cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzb3VyY2UpKTsKICAgICBOU1N0cmluZyAqc291cmNl
TlMgPSAoTlNTdHJpbmcgKilzb3VyY2VDRi5nZXQoKTsKLSAgICBbV2ViVmlldyBfYWRkVXNlclNj
cmlwdFRvR3JvdXA6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIiB3b3JsZDpbV2ViU2NyaXB0
V29ybGQgd29ybGRdIHNvdXJjZTpzb3VyY2VOUyB1cmw6bmlsIHdoaXRlbGlzdDpuaWwgYmxhY2ts
aXN0Om5pbCBpbmplY3Rpb25UaW1lOihydW5BdFN0YXJ0ID8gV2ViSW5qZWN0QXREb2N1bWVudFN0
YXJ0IDogV2ViSW5qZWN0QXREb2N1bWVudEVuZCldOworICAgIFtXZWJWaWV3IF9hZGRVc2VyU2Ny
aXB0VG9Hcm91cDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3JpcHRX
b3JsZCB3b3JsZF0gc291cmNlOnNvdXJjZU5TIHVybDpuaWwgd2hpdGVsaXN0Om5pbCBibGFja2xp
c3Q6bmlsIGluamVjdGlvblRpbWU6KHJ1bkF0U3RhcnQgPyBXZWJJbmplY3RBdERvY3VtZW50U3Rh
cnQgOiBXZWJJbmplY3RBdERvY3VtZW50RW5kKSBpbmplY3RlZEZyYW1lczoocnVuSW5BbGxGcmFt
ZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5KV07CiB9
CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5n
UmVmIHNvdXJjZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0
KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBydW5JbkFsbEZyYW1lcykKIHsKICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHNvdXJjZUNGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHNvdXJjZSkpOwogICAgIE5TU3RyaW5nICpzb3VyY2VOUyA9IChO
U1N0cmluZyAqKXNvdXJjZUNGLmdldCgpOwotICAgIFtXZWJWaWV3IF9hZGRVc2VyU3R5bGVTaGVl
dFRvR3JvdXA6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIiB3b3JsZDpbV2ViU2NyaXB0V29y
bGQgd29ybGRdIHNvdXJjZTpzb3VyY2VOUyB1cmw6bmlsIHdoaXRlbGlzdDpuaWwgYmxhY2tsaXN0
Om5pbF07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJr
aXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3JpcHRXb3JsZCB3b3JsZF0gc291cmNlOnNv
dXJjZU5TIHVybDpuaWwgd2hpdGVsaXN0Om5pbCBibGFja2xpc3Q6bmlsIGluamVjdGVkRnJhbWVz
OihydW5JbkFsbEZyYW1lcyA/IFdlYkluamVjdEluQWxsRnJhbWVzIDogV2ViSW5qZWN0SW5Ub3BG
cmFtZU9ubHkpXTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBkOTU1
NTM5OTc0OTRlMzA4ZmJjZGJmNzJjODUwNzc0YTM0MGU5ZDlhLi43MTg2NjdhYzZlNTFiODFmZDc4
YmI1ZDllYzBkZTZiOTgxMWE2YTUyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTEwMzQsNyAr
MTAzNCw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShK
U1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSCiAgICAgLy8gRklYTUU6IGltcGxlbWVu
dAogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5n
UmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0KQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBp
bmplY3RJbkFsbEZyYW1lcykKIHsKICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3
OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2YoV2ViVmlldyks
IDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJndlYlZpZXcp
KSkpCkBAIC0xMDQ0LDExICsxMDQ0LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFk
ZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQpCiAgICAgaWYg
KEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJTY3JpcHRXb3JsZCksIDAs
IF9fdXVpZG9mKHdvcmxkKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3b3JsZCkpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgd2ViVmlldy0+YWRkVXNlclNjcmlwdFRvR3JvdXAoX2JzdHJf
dChMIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiKS5HZXRCU1RSKCksIHdvcmxkLmdldCgpLCBi
c3RyVChzb3VyY2UpLkdldEJTVFIoKSwgMCwgMCwgMCwgMCwgMCwgcnVuQXRTdGFydCA/IFdlYklu
amVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYkluamVjdEF0RG9jdW1lbnRFbmQpOworICAgIHdlYlZp
ZXctPmFkZFVzZXJTY3JpcHRUb0dyb3VwKF9ic3RyX3QoTCJvcmcud2Via2l0LkR1bXBSZW5kZXJU
cmVlIikuR2V0QlNUUigpLCB3b3JsZC5nZXQoKSwgYnN0clQoc291cmNlKS5HZXRCU1RSKCksIDAs
IDAsIDAsIDAsIDAsIHJ1bkF0U3RhcnQgPyBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgOiBXZWJJ
bmplY3RBdERvY3VtZW50RW5kLCBpbmplY3RJbkFsbEZyYW1lcyA/IFdlYkluamVjdEluQWxsRnJh
bWVzIDogV2ViSW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiAKLXZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSkKK3ZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwg
Ym9vbCBpbmplY3RJbkFsbEZyYW1lcykKIHsKICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3
ZWJWaWV3OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2YoV2Vi
VmlldyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJndl
YlZpZXcpKSkpCkBAIC0xMDU4LDcgKzEwNTgsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UpCiAgICAgaWYgKEZBSUxFRChX
ZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJTY3JpcHRXb3JsZCksIDAsIF9fdXVpZG9m
KHdvcmxkKSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3b3JsZCkpKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgd2ViVmlldy0+YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKF9ic3RyX3QoTCJv
cmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIikuR2V0QlNUUigpLCB3b3JsZC5nZXQoKSwgYnN0clQo
c291cmNlKS5HZXRCU1RSKCksIDAsIDAsIDAsIDAsIDApOworICAgIHdlYlZpZXctPmFkZFVzZXJT
dHlsZVNoZWV0VG9Hcm91cChfYnN0cl90KEwib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIpLkdl
dEJTVFIoKSwgd29ybGQuZ2V0KCksIGJzdHJUKHNvdXJjZSkuR2V0QlNUUigpLCAwLCAwLCAwLCAw
LCAwLCBpbmplY3RJbkFsbEZyYW1lcyA/IFdlYkluamVjdEluQWxsRnJhbWVzIDogV2ViSW5qZWN0
SW5Ub3BGcmFtZU9ubHkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggNTEx
ZWI4MWVjNTVmYzQxM2NjMTFiNTlhNTA5NWJmYjI4NDUzZGNhYy4uYTRkNDljN2NiNWZkNzVkYWVl
NjYzMGQzYjgwYmQ3YWU4N2ZhM2I5MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTMyNywxMiArMzI3
LDEyIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0
cmluZ1JlZiAvKiBrZXkgKi8sIEpTU3RyaW5nUmVmCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAog
fQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVm
IHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0KQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRk
VXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBydW5J
bkFsbEZyYW1lcykKIHsKICAgICBwcmludGYoIkxheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2Vy
U2NyaXB0IG5vdCBpbXBsZW1lbnRlZC5cbiIpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UpCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wg
cnVuSW5BbGxGcmFtZXMpCiB7CiAgICAgcHJpbnRmKCJMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRk
VXNlclN0eWxlU2hlZXQgbm90IGltcGxlbWVudGVkLlxuIik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60774</attachid>
            <date>2010-07-07 14:00:12 -0700</date>
            <delta_ts>2010-07-07 15:11:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41529-20100707140011.patch</filename>
            <type>text/plain</type>
            <size>42442</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYmFkN2E4ODg3NTkwYTBkNWFmNWE2ZjI3MmUyZmZiZTU2MmQxODEyLi5mY2ZkOTAw
MzBkOGE4NWRhMTAzNTk3MWExZDA3MjQyYzM1MWRhODk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMDctMDcgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy10aWdlci9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorICAgICAg
ICAqIHVzZXJzY3JpcHRzL21peGVkLWNhc2Utc3R5bGVzaGVldC5odG1sOgorICAgICAgICAqIHVz
ZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTEuaHRtbDogQWRkZWQuCisgICAgICAgICogdXNlcnNj
cmlwdHMvcmVzb3VyY2VzL2ZyYW1lMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0
cy9zY3JpcHQtbm90LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWw6CisgICAgICAgICogdXNlcnNjcmlw
dHMvc2NyaXB0LXJ1bi1hdC1lbmQuaHRtbDoKKyAgICAgICAgKiB1c2Vyc2NyaXB0cy9zY3JpcHQt
cnVuLWF0LXN0YXJ0Lmh0bWw6CisgICAgICAgICogdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hl
ZXQuaHRtbDoKKyAgICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxs
LWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10
b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRz
L3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHVzZXJz
Y3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5o
dG1sOiBBZGRlZC4KKwogMjAxMC0wNi0yNCAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAppbmRleCA1YzhiYTcxMDJmODk4
NmY1YWNmMzU4NmExZTliY2UwOTMxZTk3NmMyLi5lYjI5NDU0NjBjNGEzOWExMjBjNTI2MzFjMDU5
MmNmZTFlOWI1NzA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFy
ZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQK
QEAgLTc2LDMgKzc2LDkgQEAgc3RvcmFnZS9pbmRleGVkZGIKICMgRGlzYWJsZSB0aGUgdGVzdCB1
bnRpbCB0aGUgbWVzYSByZW5kZXJlciBpcyBpbnRlZ3JhdGVkLgogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkxMjgKIGZhc3QvY2FudmFzL3dlYmdsL3RleHR1cmUt
bnBvdC5odG1sCisKKyMgRGlzYWJsZSB1bnRpbCB0aGUgbWFjIFdlYktpdCBBUEkgc3VwcG9ydHMg
aW5qZWN0aW5nIGluIHRoZSB0b3AgZnJhbWUgb25seS4KK3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0
LWFsbC1mcmFtZXMuaHRtbAordXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHku
aHRtbAordXNlcnNjcmlwdHMvdXNlci1zdHlsZS1hbGwtZnJhbWVzLmh0bWwKK3VzZXJzY3JpcHRz
L3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtc25vd2xlb3BhcmQvU2tpcHBlZAppbmRleCAzNGE5MDc4OWNhZjkxNDczNTgyMDJhMWZkNTQx
Mzk1ZDIyODlkZGYzLi5kMTQ0ZGM1MzAyODEwYzliNWI3NGIzZDQxYTNlZGY5ODc0YzA2MzYxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvU2tpcHBlZApAQCAtMTM3
LDMgKzEzNyw5IEBAIHN0b3JhZ2UvaW5kZXhlZGRiCiAjIFBoaWxpcCdzIGNhbnZhcyB0ZXN0cyB0
aGF0IGZhaWwgb24gU25vd0xlb3BhcmQgb25seQogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5ncmFk
aWVudC5pbnRlcnBvbGF0ZS5vdmVybGFwLmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3Jh
ZGllbnQuaW50ZXJwb2xhdGUub3ZlcmxhcDIuaHRtbAorCisjIERpc2FibGUgdW50aWwgdGhlIG1h
YyBXZWJLaXQgQVBJIHN1cHBvcnRzIGluamVjdGluZyBpbiB0aGUgdG9wIGZyYW1lIG9ubHkuCit1
c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKK3VzZXJzY3JpcHRzL3VzZXIt
c2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZy
YW1lcy5odG1sCit1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKaW5kZXggOTJjYTVlODM4YzAzY2MyMzM5
MDc4ZDYwZmJlZjI1N2EzYTQ5MDhhOC4uNzQyYjQzMGIzYTkxYTFiM2YzM2QyMWExNWZlNzg0NzBi
ZWUwYmZlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIwNiwz
ICsyMDYsOSBAQCBmYXN0L2VuY29kaW5nL2phcGFuZXNlLWVuY29kaW5nLW1peC5odG1sCiAjIFRl
c3RzIGludHJvZHVjZWQgaW4gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjE1OTku
CiBmYXN0L2V2ZW50cy9zaG93LW1vZGFsLWRpYWxvZy1vbmJsdXItb25mb2N1cy5odG1sCiBmYXN0
L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAorCisjIERpc2FibGUgdW50aWwgdGhlIG1h
YyBXZWJLaXQgQVBJIHN1cHBvcnRzIGluamVjdGluZyBpbiB0aGUgdG9wIGZyYW1lIG9ubHkuCit1
c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKK3VzZXJzY3JpcHRzL3VzZXIt
c2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZy
YW1lcy5odG1sCit1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNWRjZmE3MzI2ZDhiMTA5NThhZTZiZjdiNGIxNDRj
NTA3ZWJkYTNmOS4uYzRlYTQ4OTYxOTcwNTUzZjYxMTE1N2VhMWU4OTljYzMzMjI5YjZhYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk0MSwzICs5NDEsOCBAQCBmYXN0L2Zvcm1zL2lu
cHV0LWFwcGVhcmFuY2UtbnVtYmVyYW5kc3BlZWNoLmh0bWwKIGZhc3QvZm9ybXMvaW5wdXQtYXBw
ZWFyYW5jZS1zZWFyY2hhbmRzcGVlY2guaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBlYXJhbmNl
LXNwZWVjaGJ1dHRvbi5odG1sCiAKKyMgRGlzYWJsZSB1bnRpbCB0aGUgd2luZG93cyBXZWJLaXQg
QVBJIHN1cHBvcnRzIGluamVjdGluZyBpbiB0aGUgdG9wIGZyYW1lIG9ubHkuCit1c2Vyc2NyaXB0
cy91c2VyLXNjcmlwdC1hbGwtZnJhbWVzLmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRv
cC1mcmFtZS1vbmx5Lmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1s
Cit1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL21peGVkLWNhc2Utc3R5bGVzaGVldC5odG1sIGIvTGF5
b3V0VGVzdHMvdXNlcnNjcmlwdHMvbWl4ZWQtY2FzZS1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggNzkz
N2Q2ZjdjNGEwZjZjNDc1ZmQzOTFiZDBiYThlYWMwYjUyODExYi4uZDQxY2JhYzk2ZjIzM2Q1MWRj
ZjNhZjU0Mzg2NDFjZWUyMzIxYmU1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvbWl4ZWQtY2FzZS1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvbWl4ZWQtY2FzZS1zdHlsZXNoZWV0Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0Pgog
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LmFkZFVzZXJTdHlsZVNoZWV0KCIjbWl4ZWRDYXNlIHsgZGlzcGxheTogbm9uZSB9Iik7CisgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIjbWl4ZWRDYXNl
IHsgZGlzcGxheTogbm9uZSB9IiwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTEuaHRtbCBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTEuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
OTE4ZjdjNjQ4N2Y2YWI5ZGFkNzEzN2I0NWU3N2UwNmI5ZjViYWEzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvcmVzb3VyY2VzL2ZyYW1lMS5odG1sCkBAIC0wLDAg
KzEsNiBAQAorPGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8L2Rpdj4K
KzxpZnJhbWUgc3JjPSJmcmFtZTIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUyLmh0bWwg
Yi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWNkMTViMzllYmJhMjEwNDMwNmRmZjU2OTUyNTA2ZWU1NDIyZWVmOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbApAQCAt
MCwwICsxLDExIEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzxkaXYg
aWQ9InRoaW5nZXIiPnRoaW5nZXI8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZvci1mcmFnbWVudHMuaHRt
bCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZvci1mcmFnbWVudHMu
aHRtbAppbmRleCA4ZDY5MTcyZWY1NWRmMmVhMDc2NGZjMDJkNWVjZDBiNTkwY2Y0YTRmLi5jNzNl
ZmMzMzk0Yzc2OTY4ZWM2Yzk1NGFhMGM1ZTEwYjlkMTZiOTc2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtbm90LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1s
CkBAIC01LDcgKzUsNyBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNj
cmlwdCgiY29uc29sZS5sb2coJ2luamVjdGVkJyk7IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsgZGl2LmlubmVySFRNTCA9ICc8cD5oaTwvcD4nOyIsIHRydWUpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImNvbnNvbGUubG9nKCdpbmplY3Rl
ZCcpOyB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5pbm5lckhU
TUwgPSAnPHA+aGk8L3A+JzsiLCB0cnVlLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LXJ1bi1hdC1lbmQuaHRt
bCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWwKaW5kZXgg
ODIxYjFjOGQ4MWI0ODcwYWVlM2NiNmViMjA5NDhiOGRiNTE4Yzc4Zi4uNDYyZGE4OGFlNDg5MzEz
OTBlMDNkY2Q2NDdlM2U2OTg0NzdjNmRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvc2NyaXB0LXJ1bi1hdC1lbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9zY3JpcHQtcnVuLWF0LWVuZC5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9ICdQQVNTJyIsIGZhbHNl
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gJ1BBU1MnIiwgZmFsc2UsIHRydWUpOwog
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy9zY3JpcHQtcnVuLWF0LXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3Jp
cHQtcnVuLWF0LXN0YXJ0Lmh0bWwKaW5kZXggYTkxYjYxYzUzOGE2ZGU2ZTVjNTQ4ZGYxNmUzYjJi
ZGE5MjE0ZGMzYy4uNGFhMmYzNWJlN2Q5M2VhZGQ1MDIwN2RlZWM5ZjY3OTg4YjAzM2I2MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LXJ1bi1hdC1zdGFydC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbApA
QCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImlmICh3aW5kb3cubG9jYXRpb24gPT0gJ2Fib3V0
OmJsYW5rJykgY29uc29sZS5sb2coJ1NVQ0NFU1MnKTsiLCB0cnVlKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJpZiAod2luZG93LmxvY2F0aW9uID09ICdhYm91dDpi
bGFuaycpIGNvbnNvbGUubG9nKCdTVUNDRVNTJyk7IiwgdHJ1ZSwgdHJ1ZSk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NpbXBsZS1z
dHlsZXNoZWV0Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zaW1wbGUtc3R5bGVzaGVl
dC5odG1sCmluZGV4IDM5MTRjNzIxNTg5MmMwNzg2ZDU5ZmEzYjNjZWM4NGU0MjFiYmE5ZmQuLmRh
MDA0ZDAyY2EyYmIyMjYyYTdjNTE2MzM1ZTg2OGE4OWNmMzE3NWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3NpbXBsZS1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hlZXQuaHRtbApAQCAtNCw3ICs0LDcgQEAKIDxz
Y3JpcHQ+CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVz
ZXJTdHlsZVNoZWV0KCJkaXYgeyB3aWR0aDowOyB9Iik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuYWRkVXNlclN0eWxlU2hlZXQoImRpdiB7IHdpZHRoOjA7IH0iLCB0cnVlKTsKIH0KIDwvc2Ny
aXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1z
Y3JpcHQtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91
c2VyLXNjcmlwdC1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDE2NDI4Mzg3
MTIyYmQ2ZjE2MWZlNTA4MmU4YzI5YWZmZDE5N2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0
ZXN0IGhhcyBmYWlsZWQuIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1l
UGF0aCAvLzwhLS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRt
bCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kODUwZTU4OGZjZmVjNmM5N2I0NzAzZmJkOTg3NTZmMjA4NWFhYzJiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZy
YW1lcy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoaW5nZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUn
OyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2Us
IHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK0lmIGFueSB0aGluZ2VycyBh
cHBlYXIgb24gdGhpcyBwYWdlLCB0aGUgdGVzdCBoYXMgZmFpbGVkLgorPERpdiBpZD0idGhpbmdl
ciI+dGhpbmdlcjwvZGl2PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9mcmFtZTEuaHRtbCI+PC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjMxZmNjYjJiMjNiNDdmYTI5ZjgwOWE4ZjQwZDdlZmE3Y2YzNWY3MQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFt
ZS1vbmx5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUd28gdGhpbmdlcnMgc2hvdWxk
IGFwcGVhciBvbiB0aGlzIHBhZ2UuIE90aGVyd2lzZSB0aGUgdGVzdCBoYXMgZmFpbGVkLiAKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0t
LS0tLQordGhpbmdlcgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhpbmdlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRt
bCBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjlkNGY2NjNkYmE0MjBhODU5N2M5NjhlNzUzMmVkNmRhMmNhZjc2Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRv
cC1mcmFtZS1vbmx5Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2Vy
U2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicpLnN0eWxlLmRpc3BsYXkg
PSAnbm9uZSc7IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmYWxzZSwgZmFsc2UpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1R3byB0aGlu
Z2VycyBzaG91bGQgYXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRoZSB0ZXN0IGhhcyBm
YWlsZWQuCis8RGl2IGlkPSJ0aGluZ2VyIj50aGluZ2VyPC9kaXY+Cis8aWZyYW1lIHNyYz0icmVz
b3VyY2VzL2ZyYW1lMS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5MWUxOTliYzNlMmJhNmNjN2VkODdiYTRmMGY1ODI1NTA0
N2RmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0lmIGFueSB0aGlu
Z2VycyBhcHBlYXIgb24gdGhpcyBwYWdlLCB0aGUgdGVzdCBoYXMgZmFpbGVkLiAgCisKKy0tLS0t
LS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0K
KworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi88IS0t
ZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvdXNlci1zdHlsZS1hbGwtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0
cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzYxZmY1ZWY4M2ZhMjZm
NGIxOGEzNmQwMWIyNDBiMGNiOWRlMzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
dXNlcnNjcmlwdHMvdXNlci1zdHlsZS1hbGwtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxNyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5bGVTaGVldCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7
IH0iLCB0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitJZiBhbnkgdGhpbmdl
cnMgYXBwZWFyIG9uIHRoaXMgcGFnZSwgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKzxEaXYgaWQ9InRo
aW5nZXIiPnRoaW5nZXI8L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZnJhbWUxLmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41OGM3ZjVhMTJjYmU5MDQ5Njk0MTM3MDJlMTc3ZWE2ZDVjZGRkMGQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJh
bWUtb25seS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorMiB0aGluZ2VycyBzaG91bGQg
YXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRoZSB0ZXN0IGhhcyBmYWlsZWQuICAKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0t
LS0tLQordGhpbmdlcgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhpbmdlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1s
IGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY3Yzc1MWM4NjBkNGI2ODljYmIyM2E2MTQ1ZGJmMmRmYWQ5YzQyMjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1m
cmFtZS1vbmx5Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5
bGVTaGVldCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCBmYWxzZSk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorMiB0aGluZ2VycyBzaG91bGQgYXBwZWFyIG9uIHRoaXMgcGFn
ZS4gT3RoZXJ3aXNlIHRoZSB0ZXN0IGhhcyBmYWlsZWQuCis8RGl2IGlkPSJ0aGluZ2VyIj50aGlu
Z2VyPC9kaXY+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ZyYW1lMS5odG1sIj48L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMTU3ZTY3MGQ5ZGZlMzAzYzMwNmU2ZDgzNzMxMDU1YjJhZmE3NGI3
ZC4uOWEyMDA3OTE4ZTMxY2M3ZTQyMzI2ZGU2ZjNmYWJlMjk3NDU0MjUyNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBA
QAorMjAxMC0wNy0wNyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkg
Zm9yIHVzZXIgc2NyaXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBm
cmFtZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDE1MjkKKworICAgICAgICBUZXN0czogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1l
cy5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUt
b25seS5odG1sCisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFt
ZXMuaHRtbAorICAgICAgICAgICAgICAgdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUt
b25seS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGFnZUdyb3VwVXNlclNo
ZWV0cyk6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6aW5qZWN0VXNlclNjcmlwdHNGb3JXb3JsZCk6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0VG9Xb3JsZCk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6OmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZCk6
CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKyAgICAgICAgKiBwYWdlL1VzZXJTY3JpcHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQpOgorICAgICAgICAo
V2ViQ29yZTo6VXNlclNjcmlwdDo6aW5qZWN0ZWRGcmFtZXMpOgorICAgICAgICAqIHBhZ2UvVXNl
clNjcmlwdFR5cGVzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAqIHBhZ2UvVXNl
clN0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0OjpVc2VyU3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyU3R5bGVTaGVldDo6aW5qZWN0ZWRGcmFt
ZXMpOgorCiAyMDEwLTA2LTI0ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cCBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApp
bmRleCA3MGYwNzczNWNhZjE2NmZkNzU0ZDEwMWEzMmNhZGE0ZjZhODliYWQyLi5lOGNlMWE1ZDU0
M2JjZTI0ZmYwODFmZTcxYmQxMWE5ZjFmZTAzYjE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuYmFzZS5leHAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCkBAIC03NzIsMTAgKzc3
MiwxMCBAQCBfX1pON1dlYkNvcmU5UGFnZUNhY2hlMTFzZXRDYXBhY2l0eUVpCiBfX1pON1dlYkNv
cmU5UGFnZUNhY2hlMjdyZWxlYXNlQXV0b3JlbGVhc2VkUGFnZXNOb3dFdgogX19aTjdXZWJDb3Jl
OVBhZ2VHcm91cDE0YWRkVmlzaXRlZExpbmtFUEt0bQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDE3
Y2xvc2VMb2NhbFN0b3JhZ2VFdgotX19aTjdXZWJDb3JlOVBhZ2VHcm91cDIwYWRkVXNlclNjcmlw
dFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4z
V1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVFU0RfTlNfMjNVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZUUKK19fWk43V2ViQ29yZTlQYWdlR3JvdXAyMGFkZFVzZXJTY3JpcHRUb1dv
cmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS05TXzZTdHJpbmdFUktOU180S1VSTEVOM1dURjEw
UGFzc093blB0cklOUzlfNlZlY3RvcklTM19MbTBFRUVFRVNEX05TXzIzVXNlclNjcmlwdEluamVj
dGlvblRpbWVFTlNfMjRVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXNFCiBfX1pON1dlYkNvcmU5UGFn
ZUdyb3VwMjByZW1vdmVBbGxVc2VyQ29udGVudEV2CiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjFy
ZW1vdmVBbGxWaXNpdGVkTGlua3NFdgotX19aTjdXZWJDb3JlOVBhZ2VHcm91cDI0YWRkVXNlclN0
eWxlU2hlZXRUb1dvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS05TXzZTdHJpbmdFUktOU180
S1VSTEVOM1dURjEwUGFzc093blB0cklOUzlfNlZlY3RvcklTM19MbTBFRUVFRVNEXworX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI0YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkRVBOU18xNURPTVdyYXBw
ZXJXb3JsZEVSS05TXzZTdHJpbmdFUktOU180S1VSTEVOM1dURjEwUGFzc093blB0cklOUzlfNlZl
Y3RvcklTM19MbTBFRUVFRVNEX05TXzI0VXNlclNjcmlwdEluamVjdGVkRnJhbWVzRQogX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI1cmVtb3ZlVXNlclNjcmlwdEZyb21Xb3JsZEVQTlNfMTVET01XcmFw
cGVyV29ybGRFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAyNnJlbW92ZVVzZXJT
Y3JpcHRzRnJvbVdvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEUKIF9fWk43V2ViQ29yZTlQYWdl
R3JvdXAyNnNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzRWIKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0MjFjM2Nl
YTJjZTFhMmZmNjkwYjJhMzhhMGNkNjBlMGIxMTRhNmZiLi40OGVlMWE1NzlhZWU5ZjI2Mzk2MTFm
MTE3NmI2MGJlMGQ0NGJhZTNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMTUzLDYgKzIxNTMsOCBAQCBjb25z
dCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4qIERvY3VtZW50OjpwYWdlR3JvdXBVc2Vy
U2hlZXRzKCkgY29uc3QKICAgICAgICAgY29uc3QgVXNlclN0eWxlU2hlZXRWZWN0b3IqIHNoZWV0
cyA9IGl0LT5zZWNvbmQ7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaGVldHMt
PnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldCogc2hlZXQg
PSBzaGVldHMtPmF0KGkpLmdldCgpOworICAgICAgICAgICAgaWYgKHNoZWV0LT5pbmplY3RlZEZy
YW1lcygpID09IEluamVjdEluVG9wRnJhbWVPbmx5ICYmIG93bmVyRWxlbWVudCgpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKCFVc2VyQ29udGVudFVSTFBhdHRl
cm46Om1hdGNoZXNQYXR0ZXJucyh1cmwoKSwgc2hlZXQtPndoaXRlbGlzdCgpLCBzaGVldC0+Ymxh
Y2tsaXN0KCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgUmVmUHRy
PENTU1N0eWxlU2hlZXQ+IHBhcnNlZFNoZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlSW5saW5l
KGNvbnN0X2Nhc3Q8RG9jdW1lbnQqPih0aGlzKSwgc2hlZXQtPnVybCgpKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGZl
ZTA3ZGRkZTU3MTE0YjZmZTM0Y2VjZjhkMDJmZjU1NjM2ZWZkNmEuLmVmMDBjMjI2OGUyNjg1ZjYx
MmY0MzUwNzJhZDlkZmZjNWYzYjliOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNjkwLDYgKzY5MCw5IEBAIHZvaWQg
RnJhbWU6OmluamVjdFVzZXJTY3JpcHRzRm9yV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwg
Y29uc3QgVXNlclNjcmlwdFZlCiAgICAgdW5zaWduZWQgY291bnQgPSB1c2VyU2NyaXB0cy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAg
VXNlclNjcmlwdCogc2NyaXB0ID0gdXNlclNjcmlwdHNbaV0uZ2V0KCk7CisgICAgICAgIGlmIChz
Y3JpcHQtPmluamVjdGVkRnJhbWVzKCkgPT0gSW5qZWN0SW5Ub3BGcmFtZU9ubHkgJiYgb3duZXJF
bGVtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICBpZiAoc2NyaXB0LT5p
bmplY3Rpb25UaW1lKCkgPT0gaW5qZWN0aW9uVGltZSAmJiBVc2VyQ29udGVudFVSTFBhdHRlcm46
Om1hdGNoZXNQYXR0ZXJucyhkb2MtPnVybCgpLCBzY3JpcHQtPndoaXRlbGlzdCgpLCBzY3JpcHQt
PmJsYWNrbGlzdCgpKSkKICAgICAgICAgICAgIG1fc2NyaXB0LmV2YWx1YXRlSW5Xb3JsZChTY3Jp
cHRTb3VyY2VDb2RlKHNjcmlwdC0+c291cmNlKCksIHNjcmlwdC0+dXJsKCkpLCB3b3JsZCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgYi9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmNwcAppbmRleCBmNmM3NDZkZDhmYzlhMWJhMWFjZDA0ZTRhNmNjZjQxZWQ2
MzM5ZmJjLi40YzliYzcxMzliNWI1M2RkMTU4YjRkMzUyZjRjZWY5YTMyMWFiZjIwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZUdy
b3VwLmNwcApAQCAtMjEzLDEyICsyMTMsMTMgQEAgSW5kZXhlZERhdGFiYXNlKiBQYWdlR3JvdXA6
OmluZGV4ZWREYXRhYmFzZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBQYWdlR3JvdXA6OmFkZFVzZXJT
Y3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBLVVJMJiB1cmwsICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiBibGFja2xpc3QsIFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRp
bWUpCit2b2lkIFBhZ2VHcm91cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxk
KiB3b3JsZCwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
d2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxhY2tsaXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGlu
amVjdGlvblRpbWUsIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsK
ICAgICBBU1NFUlRfQVJHKHdvcmxkLCB3b3JsZCk7CiAKLSAgICBPd25QdHI8VXNlclNjcmlwdD4g
dXNlclNjcmlwdChuZXcgVXNlclNjcmlwdChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xp
c3QsIGluamVjdGlvblRpbWUpKTsKKyAgICBPd25QdHI8VXNlclNjcmlwdD4gdXNlclNjcmlwdChu
ZXcgVXNlclNjcmlwdChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIGluamVjdGlv
blRpbWUsIGluamVjdGVkRnJhbWVzKSk7CiAgICAgaWYgKCFtX3VzZXJTY3JpcHRzKQogICAgICAg
ICBtX3VzZXJTY3JpcHRzLnNldChuZXcgVXNlclNjcmlwdE1hcCk7CiAgICAgVXNlclNjcmlwdFZl
Y3RvciomIHNjcmlwdHNJbldvcmxkID0gbV91c2VyU2NyaXB0cy0+YWRkKHdvcmxkLCAwKS5maXJz
dC0+c2Vjb25kOwpAQCAtMjI3LDE5ICsyMjgsMjAgQEAgdm9pZCBQYWdlR3JvdXA6OmFkZFVzZXJT
Y3JpcHRUb1dvcmxkKERPTVdyYXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmMK
ICAgICBzY3JpcHRzSW5Xb3JsZC0+YXBwZW5kKHVzZXJTY3JpcHQucmVsZWFzZSgpKTsKIH0KIAot
dm9pZCBQYWdlR3JvdXA6OmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZChET01XcmFwcGVyV29ybGQq
IHdvcmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsLCBQYXNzT3duUHRy
PFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxhY2tsaXN0KQordm9p
ZCBQYWdlR3JvdXA6OmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZChET01XcmFwcGVyV29ybGQqIHdv
cmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
d2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxhY2tsaXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0ZWRGcmFt
ZXMgaW5qZWN0ZWRGcmFtZXMpCiB7CiAgICAgQVNTRVJUX0FSRyh3b3JsZCwgd29ybGQpOwogCi0g
ICAgT3duUHRyPFVzZXJTdHlsZVNoZWV0PiB1c2VyU3R5bGVTaGVldChuZXcgVXNlclN0eWxlU2hl
ZXQoc291cmNlLCB1cmwsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KSk7CisgICAgT3duUHRyPFVzZXJT
dHlsZVNoZWV0PiB1c2VyU3R5bGVTaGVldChuZXcgVXNlclN0eWxlU2hlZXQoc291cmNlLCB1cmws
IHdoaXRlbGlzdCwgYmxhY2tsaXN0LCBpbmplY3RlZEZyYW1lcykpOwogICAgIGlmICghbV91c2Vy
U3R5bGVTaGVldHMpCiAgICAgICAgIG1fdXNlclN0eWxlU2hlZXRzLnNldChuZXcgVXNlclN0eWxl
U2hlZXRNYXApOwogICAgIFVzZXJTdHlsZVNoZWV0VmVjdG9yKiYgc3R5bGVTaGVldHNJbldvcmxk
ID0gbV91c2VyU3R5bGVTaGVldHMtPmFkZCh3b3JsZCwgMCkuZmlyc3QtPnNlY29uZDsKICAgICBp
ZiAoIXN0eWxlU2hlZXRzSW5Xb3JsZCkKICAgICAgICAgc3R5bGVTaGVldHNJbldvcmxkID0gbmV3
IFVzZXJTdHlsZVNoZWV0VmVjdG9yOwogICAgIHN0eWxlU2hlZXRzSW5Xb3JsZC0+YXBwZW5kKHVz
ZXJTdHlsZVNoZWV0LnJlbGVhc2UoKSk7Ci0gICAgCisKICAgICAvLyBDbGVhciBvdXIgY2FjaGVk
IHNoZWV0cyBhbmQgaGF2ZSB0aGVtIGp1c3QgcmVwYXJzZS4KICAgICBIYXNoU2V0PFBhZ2UqPjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wYWdlcy5lbmQoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFn
ZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmggYi9XZWJDb3JlL3BhZ2Uv
UGFnZUdyb3VwLmgKaW5kZXggYTQwOTQ5NGVmYzJiOTc3OTNlYTBhYzUwM2ZlMmRlMWI4NTAyOTVk
Yy4uMDcxMDJkZjc5NzRmZjZiYmUyZTJmYzQ4MDhkNDI1M2JjYmE1MWQ0MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaApA
QCAtNzQsMjAgKzc0LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW5kZXhlZERh
dGFiYXNlKiBpbmRleGVkRGF0YWJhc2UoKTsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgYWRkVXNl
clNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNv
bnN0IEtVUkwmLCAKKyAgICAgICAgdm9pZCBhZGRVc2VyU2NyaXB0VG9Xb3JsZChET01XcmFwcGVy
V29ybGQqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlz
dCwgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFVzZXJTY3Jp
cHRJbmplY3RlZEZyYW1lcyk7CiAgICAgICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXRUb1dvcmxk
KERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
d2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxhY2tsaXN0KTsKLSAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVj
dG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFj
a2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJ
bmplY3RlZEZyYW1lcyk7CisKICAgICAgICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0RnJvbVdvcmxk
KERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IEtVUkwmKTsKICAgICAgICAgdm9pZCByZW1vdmVVc2Vy
U3R5bGVTaGVldEZyb21Xb3JsZChET01XcmFwcGVyV29ybGQqLCBjb25zdCBLVVJMJik7Ci0gICAg
ICAgIAorCiAgICAgICAgIHZvaWQgcmVtb3ZlVXNlclNjcmlwdHNGcm9tV29ybGQoRE9NV3JhcHBl
cldvcmxkKik7CiAgICAgICAgIHZvaWQgcmVtb3ZlVXNlclN0eWxlU2hlZXRzRnJvbVdvcmxkKERP
TVdyYXBwZXJXb3JsZCopOwotICAgIAorCiAgICAgICAgIHZvaWQgcmVtb3ZlQWxsVXNlckNvbnRl
bnQoKTsKLSAgICAgICAgCisKICAgICAgICAgY29uc3QgVXNlclNjcmlwdE1hcCogdXNlclNjcmlw
dHMoKSBjb25zdCB7IHJldHVybiBtX3VzZXJTY3JpcHRzLmdldCgpOyB9CiAgICAgICAgIGNvbnN0
IFVzZXJTdHlsZVNoZWV0TWFwKiB1c2VyU3R5bGVTaGVldHMoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXJTdHlsZVNoZWV0cy5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvVXNlclNj
cmlwdC5oIGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaAppbmRleCA4YjM3MDNmOTM3MmY3YzM5
YWIzMDA2MmI3ODk1NTY3ZGMwMDIzMDRlLi5lYTY5OWIwZDE1OWIwMTZjZGFjMGQ0NzM4ODYyYjMw
MDllMjg3NTFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5oCisrKyBiL1dl
YkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmgKQEAgLTM4LDEyICszOCwxMyBAQCBjbGFzcyBVc2VyU2Ny
aXB0IDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBVc2VyU2NyaXB0KGNvbnN0
IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmwsCiAgICAgICAgICAgICAgICBQYXNzT3du
UHRyPFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+
ID4gYmxhY2tsaXN0LAotICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5q
ZWN0aW9uVGltZSkKKyAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVj
dGlvblRpbWUsIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKICAgICAg
ICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1f
d2hpdGVsaXN0KHdoaXRlbGlzdCkKICAgICAgICAgLCBtX2JsYWNrbGlzdChibGFja2xpc3QpCiAg
ICAgICAgICwgbV9pbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpCisgICAgICAgICwgbV9pbmpl
Y3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lcykKICAgICB7CiAgICAgfQogCkBAIC01MiwxNSArNTMs
MTcgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB3aGl0ZWxpc3QoKSBjb25z
dCB7IHJldHVybiBtX3doaXRlbGlzdC5nZXQoKTsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+
KiBibGFja2xpc3QoKSBjb25zdCB7IHJldHVybiBtX2JsYWNrbGlzdC5nZXQoKTsgfQogICAgIFVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUoKSBjb25zdCB7IHJldHVybiBtX2lu
amVjdGlvblRpbWU7IH0KLSAgICAKKyAgICBVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMgaW5qZWN0
ZWRGcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2luamVjdGVkRnJhbWVzOyB9CisKIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fc291cmNlOwogICAgIEtVUkwgbV91cmw7CiAgICAgT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gbV93aGl0ZWxpc3Q7CiAgICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gbV9i
bGFja2xpc3Q7CiAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgbV9pbmplY3Rpb25UaW1lOwor
ICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBtX2luamVjdGVkRnJhbWVzOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotIAorCiAjZW5kaWYgLy8gVXNlclNjcmlwdF9oCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdFR5cGVzLmggYi9XZWJDb3JlL3BhZ2UvVXNlclNj
cmlwdFR5cGVzLmgKaW5kZXggYWQyN2U3OWI5ODI5ZjkxMWU1YTZjYzNkMzVjMDQ1OTU0ODliZmZh
ZS4uOWYzYmZlMGZhMTI5OWMyYWY3OGMzNDBhMTc2OWEwYzkyM2VmM2IwYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL1VzZXJTY3JpcHRUeXBlcy5oCisrKyBiL1dlYkNvcmUvcGFnZS9Vc2VyU2Ny
aXB0VHlwZXMuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVt
IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIHsgSW5qZWN0QXREb2N1bWVudFN0YXJ0LCBJbmplY3RB
dERvY3VtZW50RW5kIH07CitlbnVtIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyB7IEluamVjdElu
QWxsRnJhbWVzLCBJbmplY3RJblRvcEZyYW1lT25seSB9OwogCiBjbGFzcyBET01XcmFwcGVyV29y
bGQ7CiBjbGFzcyBVc2VyU2NyaXB0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1VzZXJTdHls
ZVNoZWV0LmggYi9XZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXQuaAppbmRleCA2MTA3NzhmM2Q3
YjU3Mjc5Mzc0YTBjZGU3ZmNjYTM1MGZiZWY4Mjc0Li5iY2E2YmVhYmExOWE0ZmM0Y2IwM2E3Njcw
MjJkNTZiMDMzY2NkOTE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXQu
aAorKysgYi9XZWJDb3JlL3BhZ2UvVXNlclN0eWxlU2hlZXQuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBVc2VyU3R5bGVTaGVldF9oCiAKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAi
VXNlclNjcmlwdFR5cGVzLmgiCiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXRUeXBlcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtMzcs
MTEgKzM4LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFVzZXJTdHlsZVNoZWV0IDog
cHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBVc2VyU3R5bGVTaGVldChjb25zdCBT
dHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJsLAotICAgICAgICAgICAgICAgICAgIFBhc3NP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBibGFja2xpc3QpCisgICAgICAgICAgICAgICAgICAgUGFzc093blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwK
KyAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFt
ZXMpCiAgICAgICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAgICAgICAsIG1fdXJsKHVybCkKICAg
ICAgICAgLCBtX3doaXRlbGlzdCh3aGl0ZWxpc3QpCiAgICAgICAgICwgbV9ibGFja2xpc3QoYmxh
Y2tsaXN0KQorICAgICAgICAsIG1faW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRGcmFtZXMpCiAgICAg
ewogICAgIH0KIApAQCAtNDksMTIgKzUyLDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBLVVJMJiB1
cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB3
aGl0ZWxpc3QoKSBjb25zdCB7IHJldHVybiBtX3doaXRlbGlzdC5nZXQoKTsgfQogICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+KiBibGFja2xpc3QoKSBjb25zdCB7IHJldHVybiBtX2JsYWNrbGlzdC5n
ZXQoKTsgfQorICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcygpIGNv
bnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRGcmFtZXM7IH0KIAogcHJpdmF0ZToKICAgICBTdHJpbmcg
bV9zb3VyY2U7CiAgICAgS1VSTCBtX3VybDsKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBt
X3doaXRlbGlzdDsKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX2JsYWNrbGlzdDsKKyAg
ICBVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMgbV9pbmplY3RlZEZyYW1lczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGEyOGZjODhhZDRmYzVhNGY0MDk1MTA3
OTM0OTFhMjgwOWFmMGI0MWMuLjUyZmZhYzZmMDRmMDZiZmYyYzk2ZjE0MGRiMWRjOTVjZDMxNGVh
ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA3LTA3ICBBYXJvbiBCb29k
bWFuICA8YWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgdXNlciBzY3JpcHRzIGFuZCB1c2Vy
IHN0eWxlcyB0byBhZmZlY3QganVzdCB0aGUgdG9wIGZyYW1lLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTUyOQorCisgICAgICAgICogcHVibGlj
L1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6YWRkVXNlclNjcmlwdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjphZGRVc2VyU2Ny
aXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQpOgorCiAy
MDEwLTA3LTAyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXcuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmlu
ZGV4IDFlZmQ3NTJlNTMwYTRlNmIyYmE1ZmYxMzA0OTIyY2FhOTViMWQ2YjAuLmI2Zjk2ZDFmZjhh
ZmRhMWY2ZmM4MWM0NDFmNWM3MzNlNGM4NWY4NDggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CkBAIC01NCw2ICs1NCwxOCBAQCBzdHJ1Y3QgV2ViUG9pbnQ7CiAKIGNsYXNzIFdlYlZpZXcgOiBw
dWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKKyAgICAvLyBDb250cm9scyB0aGUgdGltZSB0aGF0
IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBpbnRvIHRoZSBkb2N1bWVudCBydW4uCisgICAgZW51bSBV
c2VyU2NyaXB0SW5qZWN0QXQgeworICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudFN0
YXJ0LAorICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudEVuZAorICAgIH07CisKKyAg
ICAvLyBDb250cm9scyB3aGljaCBmcmFtZXMgdXNlciBzY3JpcHRzIGFyZSBpbmplY3RlZCBpbnRv
LgorICAgIGVudW0gVXNlclNjcmlwdEluamVjdEluIHsKKyAgICAgICAgVXNlclNjcmlwdEluamVj
dEluQWxsRnJhbWVzLAorICAgICAgICBVc2VyU2NyaXB0SW5qZWN0SW5Ub3BGcmFtZU9ubHkKKyAg
ICB9OworCiAgICAgLy8gSW5pdGlhbGl6YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBDcmVhdGVzIGEgV2ViVmlldyB0
aGF0IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ugd2lsbCBuZWVkIHRvCkBAIC0yODYsMTgg
KzI5OCwyMiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRoZXNlIHR3byBtZXRob2RzIGFyZSBE
RVBSRUNBVEVELiBSZW1vdmUgb25jZSBDaHJvbWl1bSBoYXMgYmVlbiByb2xsZWQuCiAgICAgdmly
dHVhbCB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBib29s
IHJ1bkF0U3RhcnQpCiAgICAgewotICAgICAgICBhZGRVc2VyU2NyaXB0KHNvdXJjZUNvZGUsIFdl
YlZlY3RvcjxXZWJTdHJpbmc+KCksIHJ1bkF0U3RhcnQpOworICAgICAgICBhZGRVc2VyU2NyaXB0
KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksCisgICAgICAgICAgICAgICAgICAg
ICAgcnVuQXRTdGFydCA/IFVzZXJTY3JpcHRJbmplY3RBdERvY3VtZW50U3RhcnQgOiBVc2VyU2Ny
aXB0SW5qZWN0QXREb2N1bWVudEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0
SW5qZWN0SW5BbGxGcmFtZXMpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgYWRkVXNlclN0eWxl
U2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgYWRkVXNl
clN0eWxlU2hlZXQoc291cmNlQ29kZSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSk7CisgICAgICAg
IGFkZFVzZXJTdHlsZVNoZWV0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksIFVz
ZXJTY3JpcHRJbmplY3RJbkFsbEZyYW1lcyk7CiAgICAgfQogCiAgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCBhZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29kZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0
cmluZz4mIHBhdHRlcm5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIHJ1bkF0U3RhcnQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBVc2VyU2NyaXB0SW5qZWN0QXQgaW5qZWN0QXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmplY3RJbiBpbmplY3RJbik7CiAgICAgV0VC
S0lUX0FQSSBzdGF0aWMgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNv
dXJjZUNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnMpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHBh
dHRlcm5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNl
clNjcmlwdEluamVjdEluIGluamVjdEluKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIHJl
bW92ZUFsbFVzZXJDb250ZW50KCk7CiAKICAgICAvLyBNb2RhbCBkaWFsb2cgc3VwcG9ydCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDU3MzZjYTAwNjE3ZWNhZTI0
YzMwYjcwNmU5ODg1Nzg3MWUxMjE3MzIuLjQwZDJmZDJhZmMwN2EyMjQwNDc0ZGEwMWI1ODIyNDA5
ZGNjNzY4ZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3Ry
aW5nSW1wbC5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgorI2luY2x1ZGUgIlVzZXJTY3Jp
cHRUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRl
ICJXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIldlYkNsaXBib2FyZC5oIgpA
QCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2Vi
VGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENhc2VTZW5zaXRpdml0eS5oIgorI2lu
Y2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiAjZGVmaW5l
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0od2Via2l0X25hbWUsIHdlYmNvcmVfbmFtZSkg
XApAQCAtMzEyLDMgKzMxNCw4IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4
dEFmZmluaXR5RG93bnN0cmVhbSwgRE9XTlNUUkVBTSk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViVGV4dENhc2VTZW5zaXRpdmUsIFRleHRDYXNlU2Vuc2l0aXZlKTsKIENPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dENhc2VJbnNlbnNpdGl2ZSwgVGV4dENhc2VJ
bnNlbnNpdGl2ZSk7CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNl
clNjcmlwdEluamVjdEF0RG9jdW1lbnRTdGFydCwgSW5qZWN0QXREb2N1bWVudFN0YXJ0KTsKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEF0RG9j
dW1lbnRFbmQsIEluamVjdEF0RG9jdW1lbnRFbmQpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0SW5BbGxGcmFtZXMsIEluamVjdEluQWxsRnJh
bWVzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmlldzo6VXNlclNjcmlwdElu
amVjdEluVG9wRnJhbWVPbmx5LCBJbmplY3RJblRvcEZyYW1lT25seSk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IGIwMDEwNzYwZTAxMWYxNTAxZGNkZWQ1NmM2ZGZkMzY0NjVi
MjBkNjMuLjdhOGQ3MTRkMDhmNDIyNDQ3MmNjNWUwOTcxZmQxMmE0YjU0Zjk4ZDIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xOTI0LDcgKzE5MjQsMTAgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKHVuc2lnbmVkIGFjdGl2ZUJhY2tncm91bmRDb2xv
ciwKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3Ry
aW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwg
Ym9vbCBydW5BdFN0YXJ0KQordm9pZCBXZWJWaWV3OjphZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0
cmluZyYgc291cmNlQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0QXQgaW5qZWN0QXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEluIGluamVjdEluKQogewogICAg
IE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zKG5ldyBWZWN0b3I8U3RyaW5nPik7CiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0ZXJuc0luLnNpemUoKTsgKytpKQpAQCAtMTkz
MywxMCArMTkzNiwxMyBAQCB2b2lkIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHQoY29uc3QgV2ViU3Ry
aW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaQogICAgIFBhZ2VHcm91cCog
cGFnZUdyb3VwID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwTmFtZSk7CiAgICAgUmVm
UHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQoRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoKSk7CiAg
ICAgcGFnZUdyb3VwLT5hZGRVc2VyU2NyaXB0VG9Xb3JsZCh3b3JsZC5nZXQoKSwgc291cmNlQ29k
ZSwgV2ViVVJMKCksIHBhdHRlcm5zLnJlbGVhc2UoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bkF0U3RhcnQgPyBJbmplY3RBdERvY3VtZW50U3RhcnQgOiBJbmpl
Y3RBdERvY3VtZW50RW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lPihpbmplY3RBdCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxVc2VyU2NyaXB0SW5qZWN0ZWRG
cmFtZXM+KGluamVjdEluKSk7CiB9CiAKLXZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQo
Y29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYg
cGF0dGVybnNJbikKK3ZvaWQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3Ry
aW5nJiBzb3VyY2VDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEluIGluamVjdEluKQogewogICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zKG5ldyBWZWN0b3I8U3RyaW5nPik7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0ZXJuc0luLnNpemUoKTsgKytpKQpAQCAtMTk0NCw3
ICsxOTUwLDggQEAgdm9pZCBXZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBXZWJTdHJp
bmcmIHNvdXJjZUNvZGUsIGNvbnN0IFdlYlZlY3RvcjxXZWIKIAogICAgIFBhZ2VHcm91cCogcGFn
ZUdyb3VwID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwTmFtZSk7CiAgICAgUmVmUHRy
PERPTVdyYXBwZXJXb3JsZD4gd29ybGQoRE9NV3JhcHBlcldvcmxkOjpjcmVhdGUoKSk7Ci0gICAg
cGFnZUdyb3VwLT5hZGRVc2VyU3R5bGVTaGVldFRvV29ybGQod29ybGQuZ2V0KCksIHNvdXJjZUNv
ZGUsIFdlYlVSTCgpLCBwYXR0ZXJucy5yZWxlYXNlKCksIDApOworICAgIHBhZ2VHcm91cC0+YWRk
VXNlclN0eWxlU2hlZXRUb1dvcmxkKHdvcmxkLmdldCgpLCBzb3VyY2VDb2RlLCBXZWJVUkwoKSwg
cGF0dGVybnMucmVsZWFzZSgpLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRpY19jYXN0PFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcz4oaW5qZWN0SW4pKTsK
IH0KIAogdm9pZCBXZWJWaWV3OjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDU0YTNiNjk0
YmNkMDcxNjkxMTRiYzY3MGY3NzQxNDMxYjRkYzM3Y2IuLjg1NTIyODkyMGFhZWM4NjVhMWNmNzRk
OWYzZmI5NTQ2NmIwNzkwNjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDctMDcgIEFhcm9u
IEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZvciB1c2VyIHNjcmlwdHMgYW5k
IHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJhbWUuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTI5CisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgrW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dy
b3VwOndvcmxkOnNvdXJjZTp1cmw6d2hpdGVsaXN0OmJsYWNrbGlzdDppbmplY3Rpb25UaW1lOmlu
amVjdGVkRnJhbWVzOl0pOgorICAgICAgICAoK1tXZWJWaWV3IF9hZGRVc2VyU3R5bGVTaGVldFRv
R3JvdXA6d29ybGQ6c291cmNlOnVybDp3aGl0ZWxpc3Q6YmxhY2tsaXN0OmluamVjdGVkRnJhbWVz
Ol0pOgorCiAyMDEwLTA3LTAxICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
IAogICAgICAgICBQcm92aWRlIGEgV2ViVmlldyBwcmVmZXJlbmNlIHRvIGRpc2FibGUgRE5TIHBy
ZWZldGNoaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBmNGQ0MzQ4ODM3Y2Y0YjU0MDQ3ZmNl
MzEwYjMyNDVhYWQ4ODk4M2Y0Li4wMTIwODFhM2QxNGE1NzkzY2JlYjg4OTE5ODNkNWFmZjE0OThl
YzU5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjM1OCw3ICsyMzU4LDggQEAgc3RhdGljIFBh
c3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJu
cykKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHBhZ2VHcm91cC0+YWRkVXNlclNjcmlwdFRv
V29ybGQoY29yZSh3b3JsZCksIHNvdXJjZSwgdXJsLCB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3Qp
LCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3QpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluamVjdGlvblRpbWUgPT0gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gSW5q
ZWN0QXREb2N1bWVudFN0YXJ0IDogSW5qZWN0QXREb2N1bWVudEVuZCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9jdW1l
bnRTdGFydCA/IEluamVjdEF0RG9jdW1lbnRTdGFydCA6IEluamVjdEF0RG9jdW1lbnRFbmQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmplY3RJbkFsbEZyYW1lcyk7CiB9
CiAKICsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5h
bWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJj
ZSB1cmw6KE5TVVJMICopdXJsCkBAIC0yMzcyLDcgKzIzNzMsNyBAQCBzdGF0aWMgUGFzc093blB0
cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAg
IGlmICghcGFnZUdyb3VwKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlR3JvdXAtPmFkZFVz
ZXJTdHlsZVNoZWV0VG9Xb3JsZChjb3JlKHdvcmxkKSwgc291cmNlLCB1cmwsIHRvU3RyaW5nVmVj
dG9yKHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlzdCkpOworICAgIHBhZ2VHcm91
cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKGNvcmUod29ybGQpLCBzb3VyY2UsIHVybCwgdG9T
dHJpbmdWZWN0b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0KSwgSW5qZWN0
SW5BbGxGcmFtZXMpOwogfQogCiArICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwOihO
U1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCB1cmw6KE5T
VVJMICopdXJsCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4v
Q2hhbmdlTG9nCmluZGV4IDMwNGZiODA0OWFhY2FkYjBiZjJjMjVkOGUwYWU0MzFkMmE1NDMyZTEu
LjAxOGQ1ZDliMTRjMDI0NjY0ZGM0YmQ3ODM5NWJmMjI3OGMxNmIzYzggMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDctMDcgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmls
aXR5IGZvciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0
b3AgZnJhbWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNTI5CisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGw6Cisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjphZGRVc2VyU2NyaXB0VG9H
cm91cCk6CisgICAgICAgIChXZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVldFRvR3JvdXApOgorCiAy
MDEwLTA3LTAxICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA2MjA0ZmQyM2Y5Y2RkZjYx
MjhhMWE1Y2Y5NmExZWMwYTQ0NGU5NTE2Li5iYzExNmJhODk2OWU3MGZjYTc3MjU0ZTI4MjNkMjlk
M2QwZDcyNGY1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKQEAgLTYwMTcsNyArNjAxNyw4IEBAIEhSRVNVTFQgV2ViVmlldzo6
YWRkVXNlclNjcmlwdFRvR3JvdXAoQlNUUiBncm91cE5hbWUsIElXZWJTY3JpcHRXb3JsZCogaVdv
cmxkLCBCCiAKICAgICBwYWdlR3JvdXAtPmFkZFVzZXJTY3JpcHRUb1dvcmxkKHdvcmxkLT53b3Js
ZCgpLCB0b1N0cmluZyhzb3VyY2UpLCB0b0tVUkwodXJsKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdENvdW50LCB3aGl0ZWxpc3Qp
LCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3RDb3VudCwgYmxhY2tsaXN0KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWUgPT0gV2ViSW5qZWN0QXREb2N1
bWVudFN0YXJ0ID8gSW5qZWN0QXREb2N1bWVudFN0YXJ0IDogSW5qZWN0QXREb2N1bWVudEVuZCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmplY3Rpb25UaW1lID09IFdl
YkluamVjdEF0RG9jdW1lbnRTdGFydCA/IEluamVjdEF0RG9jdW1lbnRTdGFydCA6IEluamVjdEF0
RG9jdW1lbnRFbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmplY3RJ
bkFsbEZyYW1lcyk7CiAKICAgICByZXR1cm4gU19PSzsKIH0KQEAgLTYwNDAsNyArNjA0MSw4IEBA
IEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKEJTVFIgZ3JvdXBOYW1l
LCBJV2ViU2NyaXB0V29ybGQqIGlXb3JsCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKICAgICBw
YWdlR3JvdXAtPmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZCh3b3JsZC0+d29ybGQoKSwgdG9TdHJp
bmcoc291cmNlKSwgdG9LVVJMKHVybCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCksIHRvU3Ry
aW5nVmVjdG9yKGJsYWNrbGlzdENvdW50LCBibGFja2xpc3QpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3RDb3VudCwgd2hp
dGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5qZWN0SW5BbGxGcmFtZXMpOwog
CiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYTEwZTRlMWIzNmU0YjIyMmY0M2U5ODExYzAx
MTU1OWY2ZmM2YmVkNS4uNjMxOGFmYzcxMGQ1OTU3NDUyMjRhNmJmNjQyM2NiNDM3OTQwNzA1MCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA3LTA3ICBBYXJvbiBCb29kbWFuICA8YWFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgdXNlciBzY3JpcHRzIGFuZCB1c2VyIHN0eWxlcyB0byBh
ZmZlY3QganVzdCB0aGUgdG9wIGZyYW1lLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MTUyOQorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoYWRkVXNlclNjcmlwdENhbGxiYWNrKToK
KyAgICAgICAgKGFkZFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2spOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisKIDIwMTAtMDYtMjMgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZGFiMjllMmIzYjBhMmE0MGE1NGVkZjY5OWM3M2Jk
NDhjMGE2N2QyLi5jYWY3OTI0YjNkYWRkYjlkNjgwMGI4OTY3ODEyYjFiNmUzYjE3Y2JkIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC0xNDk5LDcgKzE0OTksNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTY3JvbGxiYXJQ
b2xpY3lDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsCiAKIHN0YXRp
YyBKU1ZhbHVlUmVmIGFkZFVzZXJTY3JpcHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMikKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDIp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICAKICAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291cmNlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CkBAIC0xNTEzLDcgKzE1MTMs
NyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRVc2VyU2NyaXB0Q2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iagogIAogc3RhdGljIEpTVmFsdWVSZWYgYWRkVXNl
clN0eWxlU2hlZXRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7Ci0gICAgaWYgKGFyZ3Vt
ZW50Q291bnQgIT0gMSkKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gc291cmNlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFy
Z3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWJh
NjQyMTYxM2U5NDg2Mzc3ODY5NTkyNjVjZjM5YzViYTI0YmNmNy4uN2QxMGQxY2IyYjM4ZWQ3YTQ1
Yjk4MTJmOTc2MDVjMDM4NjUwNWJlNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTI2
NSwxNyArMTI2NSwyMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmb3JjZVJlZFNlbGVj
dGlvbkNvbG9ycyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotICAgIGlm
IChhcmd1bWVudHMuc2l6ZSgpIDwgMiB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkgfHwgIWFy
Z3VtZW50c1sxXS5pc0Jvb2woKSkKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDMgfHwgIWFy
Z3VtZW50c1swXS5pc1N0cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNCb29sKCkgfHwgIWFyZ3Vt
ZW50c1syXS5pc0Jvb2woKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPndlYlZpZXco
KS0+YWRkVXNlclNjcmlwdChjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgYXJn
dW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKKyAgICBXZWJWaWV3OjphZGRVc2VyU2NyaXB0KAorICAg
ICAgICBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgV2ViVmVjdG9yPFdlYlN0
cmluZz4oKSwKKyAgICAgICAgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpID8gV2ViVmlldzo6VXNl
clNjcmlwdEluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYlZpZXc6OlVzZXJTY3JpcHRJbmplY3RB
dERvY3VtZW50RW5kLAorICAgICAgICBhcmd1bWVudHNbMl0udG9Cb29sZWFuKCkgPyBXZWJWaWV3
OjpVc2VyU2NyaXB0SW5qZWN0SW5BbGxGcmFtZXMgOiBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0
SW5Ub3BGcmFtZU9ubHkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2Vy
U3R5bGVTaGVldChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCisgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPCAyIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlz
Qm9vbCgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2Vy
U3R5bGVTaGVldChjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSk7CisgICAgV2Vi
Vmlldzo6YWRkVXNlclN0eWxlU2hlZXQoCisgICAgICAgIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhh
cmd1bWVudHNbMF0pLCBXZWJWZWN0b3I8V2ViU3RyaW5nPigpLAorICAgICAgICBhcmd1bWVudHNb
Ml0udG9Cb29sZWFuKCkgPyBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0SW5BbGxGcmFtZXMgOiBX
ZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdHMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60786</attachid>
            <date>2010-07-07 15:11:55 -0700</date>
            <delta_ts>2010-07-08 10:36:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41529-20100707151154.patch</filename>
            <type>text/plain</type>
            <size>52495</size>
            <attacher name="Aaron Boodman">aa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYmFkN2E4ODg3NTkwYTBkNWFmNWE2ZjI3MmUyZmZiZTU2MmQxODEyLi45MzJjZTcw
YWYwOGQwY2EwZjJmN2EyYzFmNmViMGUwZTMzMDc4NWI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMDctMDcgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZv
ciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJh
bWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NTI5CisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogU2tpcHBlZCB0ZXN0IGJlY2F1
c2UgV2ViS2l0IEFQSSBuZWVkcyB1cGRhdGluZy4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy9taXhl
ZC1jYXNlLXN0eWxlc2hlZXQuaHRtbDogQWRkZWQgbmV3IGFsbEZyYW1lcyBwYXJhbS4KKyAgICAg
ICAgKiB1c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUxLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHVzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogdXNl
cnNjcmlwdHMvc2NyaXB0LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sOiBBZGRlZCBuZXcgYWxs
RnJhbWVzIHBhcmFtLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0
bWw6IERpdHRvLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRt
bDogRGl0dG8uCisgICAgICAgICogdXNlcnNjcmlwdHMvc2ltcGxlLXN0eWxlc2hlZXQuaHRtbDog
RGl0dG8uCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1lcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1m
cmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtdG9w
LWZyYW1lLW9ubHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2NyaXB0cy91
c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB1c2Vyc2Ny
aXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHVzZXJzY3JpcHRzL3VzZXItc3R5bGUtdG9wLWZyYW1lLW9ubHkuaHRt
bDogQWRkZWQuCisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA1ZGNmYTczMjZkOGIxMDk1OGFlNmJmN2I0YjE0NGM1
MDdlYmRhM2Y5Li45Zjc5NzhkY2Y3MjRlZjBlNWFmMzEyNzhhODA5MDY3YmZiMDlkMmE0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTQxLDMgKzk0MSw5IEBAIGZhc3QvZm9ybXMvaW5w
dXQtYXBwZWFyYW5jZS1udW1iZXJhbmRzcGVlY2guaHRtbAogZmFzdC9mb3Jtcy9pbnB1dC1hcHBl
YXJhbmNlLXNlYXJjaGFuZHNwZWVjaC5odG1sCiBmYXN0L2Zvcm1zL2lucHV0LWFwcGVhcmFuY2Ut
c3BlZWNoYnV0dG9uLmh0bWwKIAorIyBEaXNhYmxlIHVudGlsIHRoZSB3aW5kb3dzIFdlYktpdCBB
UEkgc3VwcG9ydHMgaW5qZWN0aW5nIGluIHRoZSB0b3AgZnJhbWUgb25seS4KKyMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxODAwCit1c2Vyc2NyaXB0cy91c2VyLXNj
cmlwdC1hbGwtZnJhbWVzLmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1v
bmx5Lmh0bWwKK3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCit1c2Vyc2Ny
aXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3VzZXJzY3JpcHRzL21peGVkLWNhc2Utc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMv
dXNlcnNjcmlwdHMvbWl4ZWQtY2FzZS1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggNzkzN2Q2ZjdjNGEw
ZjZjNDc1ZmQzOTFiZDBiYThlYWMwYjUyODExYi4uZDQxY2JhYzk2ZjIzM2Q1MWRjZjNhZjU0Mzg2
NDFjZWUyMzIxYmU1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvbWl4ZWQt
Y2FzZS1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvbWl4ZWQt
Y2FzZS1zdHlsZXNoZWV0Lmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0PgogaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJT
dHlsZVNoZWV0KCIjbWl4ZWRDYXNlIHsgZGlzcGxheTogbm9uZSB9Iik7CisgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNoZWV0KCIjbWl4ZWRDYXNlIHsgZGlzcGxh
eTogbm9uZSB9IiwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTEuaHRtbCBiL0xheW91dFRlc3Rz
L3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTE4ZjdjNjQ4
N2Y2YWI5ZGFkNzEzN2I0NWU3N2UwNmI5ZjViYWEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvcmVzb3VyY2VzL2ZyYW1lMS5odG1sCkBAIC0wLDAgKzEsNiBAQAor
PGh0bWw+Cis8Ym9keT4KKzxkaXYgaWQ9InRoaW5nZXIiPnRoaW5nZXI8L2Rpdj4KKzxpZnJhbWUg
c3JjPSJmcmFtZTIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUyLmh0bWwgYi9MYXlvdXRU
ZXN0cy91c2Vyc2NyaXB0cy9yZXNvdXJjZXMvZnJhbWUyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNkMTVi
MzllYmJhMjEwNDMwNmRmZjU2OTUyNTA2ZWU1NDIyZWVmOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3Jlc291cmNlcy9mcmFtZTIuaHRtbApAQCAtMCwwICsxLDEx
IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigp
IHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzxkaXYgaWQ9InRoaW5n
ZXIiPnRoaW5nZXI8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZvci1mcmFnbWVudHMuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ub3QtcnVuLWZvci1mcmFnbWVudHMuaHRtbAppbmRl
eCA4ZDY5MTcyZWY1NWRmMmVhMDc2NGZjMDJkNWVjZDBiNTkwY2Y0YTRmLi5jNzNlZmMzMzk0Yzc2
OTY4ZWM2Yzk1NGFhMGM1ZTEwYjlkMTZiOTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy9zY3JpcHQtbm90LXJ1bi1mb3ItZnJhZ21lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvdXNlcnNjcmlwdHMvc2NyaXB0LW5vdC1ydW4tZm9yLWZyYWdtZW50cy5odG1sCkBAIC01LDcg
KzUsNyBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiY29u
c29sZS5sb2coJ2luamVjdGVkJyk7IHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsgZGl2LmlubmVySFRNTCA9ICc8cD5oaTwvcD4nOyIsIHRydWUpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmFkZFVzZXJTY3JpcHQoImNvbnNvbGUubG9nKCdpbmplY3RlZCcpOyB2YXIg
ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7IGRpdi5pbm5lckhUTUwgPSAnPHA+
aGk8L3A+JzsiLCB0cnVlLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LXJ1bi1hdC1lbmQuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtZW5kLmh0bWwKaW5kZXggODIxYjFjOGQ4
MWI0ODcwYWVlM2NiNmViMjA5NDhiOGRiNTE4Yzc4Zi4uNDYyZGE4OGFlNDg5MzEzOTBlMDNkY2Q2
NDdlM2U2OTg0NzdjNmRmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2Ny
aXB0LXJ1bi1hdC1lbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQt
cnVuLWF0LWVuZC5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRNTCA9ICdQQVNTJyIsIGZhbHNlKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gJ1BBU1MnIiwgZmFsc2UsIHRydWUpOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQt
cnVuLWF0LXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zY3JpcHQtcnVuLWF0
LXN0YXJ0Lmh0bWwKaW5kZXggYTkxYjYxYzUzOGE2ZGU2ZTVjNTQ4ZGYxNmUzYjJiZGE5MjE0ZGMz
Yy4uNGFhMmYzNWJlN2Q5M2VhZGQ1MDIwN2RlZWM5ZjY3OTg4YjAzM2I2MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvc2NyaXB0LXJ1bi1hdC1zdGFydC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3NjcmlwdC1ydW4tYXQtc3RhcnQuaHRtbApAQCAtNCw3ICs0
LDcgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmFkZFVzZXJTY3JpcHQoImlmICh3aW5kb3cubG9jYXRpb24gPT0gJ2Fib3V0OmJsYW5rJykg
Y29uc29sZS5sb2coJ1NVQ0NFU1MnKTsiLCB0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5hZGRVc2VyU2NyaXB0KCJpZiAod2luZG93LmxvY2F0aW9uID09ICdhYm91dDpibGFuaycpIGNv
bnNvbGUubG9nKCdTVUNDRVNTJyk7IiwgdHJ1ZSwgdHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3NpbXBsZS1zdHlsZXNoZWV0
Lmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy9zaW1wbGUtc3R5bGVzaGVldC5odG1sCmlu
ZGV4IDM5MTRjNzIxNTg5MmMwNzg2ZDU5ZmEzYjNjZWM4NGU0MjFiYmE5ZmQuLmRhMDA0ZDAyY2Ey
YmIyMjYyYTdjNTE2MzM1ZTg2OGE4OWNmMzE3NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Vz
ZXJzY3JpcHRzL3NpbXBsZS1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNj
cmlwdHMvc2ltcGxlLXN0eWxlc2hlZXQuaHRtbApAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZFVzZXJTdHlsZVNo
ZWV0KCJkaXYgeyB3aWR0aDowOyB9Iik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNl
clN0eWxlU2hlZXQoImRpdiB7IHdpZHRoOjA7IH0iLCB0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxs
LWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXNjcmlw
dC1hbGwtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDE2NDI4Mzg3MTIyYmQ2ZjE2
MWZlNTA4MmU4YzI5YWZmZDE5N2FhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNl
cnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MSBAQAorSWYgYW55IHRoaW5nZXJzIGFwcGVhciBvbiB0aGlzIHBhZ2UsIHRoZSB0ZXN0IGhhcyBm
YWlsZWQuIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0t
Pi0tPicKKy0tLS0tLS0tCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LWFsbC1mcmFtZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kODUwZTU4OGZjZmVjNmM5N2I0NzAzZmJkOTg3NTZmMjA4NWFhYzJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1lcy5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkVXNlclNjcmlwdCgiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RoaW5nZXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIHRydWUpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK0lmIGFueSB0aGluZ2VycyBhcHBlYXIgb24g
dGhpcyBwYWdlLCB0aGUgdGVzdCBoYXMgZmFpbGVkLgorPERpdiBpZD0idGhpbmdlciI+dGhpbmdl
cjwvZGl2PgorPGlmcmFtZSBzcmM9InJlc291cmNlcy9mcmFtZTEuaHRtbCI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2Vy
LXNjcmlwdC10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vyc2Ny
aXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjMxZmNjYjJiMjNiNDdmYTI5ZjgwOWE4ZjQwZDdlZmE3Y2YzNWY3MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUd28gdGhpbmdlcnMgc2hvdWxkIGFwcGVhciBv
biB0aGlzIHBhZ2UuIE90aGVyd2lzZSB0aGUgdGVzdCBoYXMgZmFpbGVkLiAKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhp
bmdlcgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhpbmdlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbCBiL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1vbmx5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjlkNGY2NjNkYmE0MjBhODU5N2M5NjhlNzUzMmVkNmRhMmNhZjc2NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc2NyaXB0LXRvcC1mcmFtZS1v
bmx5Lmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU2NyaXB0KCJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhpbmdlcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwg
ZmFsc2UpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1R3byB0aGluZ2VycyBzaG91
bGQgYXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRoZSB0ZXN0IGhhcyBmYWlsZWQuCis8
RGl2IGlkPSJ0aGluZ2VyIj50aGluZ2VyPC9kaXY+Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2Zy
YW1lMS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3VzZXJzY3JpcHRzL3VzZXItc3R5bGUtYWxsLWZyYW1lcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA5MWUxOTliYzNlMmJhNmNjN2VkODdiYTRmMGY1ODI1NTA0N2RmYmEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1m
cmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0lmIGFueSB0aGluZ2VycyBhcHBl
YXIgb24gdGhpcyBwYWdlLCB0aGUgdGVzdCBoYXMgZmFpbGVkLiAgCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKworCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+
LS0+JworLS0tLS0tLS0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNl
ci1zdHlsZS1hbGwtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0
eWxlLWFsbC1mcmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzYxZmY1ZWY4M2ZhMjZmNGIxOGEzNmQw
MWIyNDBiMGNiOWRlMzhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlw
dHMvdXNlci1zdHlsZS1hbGwtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5hZGRVc2VyU3R5bGVTaGVldCgiI3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCB0cnVl
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitJZiBhbnkgdGhpbmdlcnMgYXBwZWFy
IG9uIHRoaXMgcGFnZSwgdGhlIHRlc3QgaGFzIGZhaWxlZC4KKzxEaXYgaWQ9InRoaW5nZXIiPnRo
aW5nZXI8L2Rpdj4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZnJhbWUxLmh0bWwiPjwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMv
dXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy91c2Vy
c2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41OGM3ZjVhMTJjYmU5MDQ5Njk0MTM3MDJlMTc3ZWE2ZDVjZGRkMGQ2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorMiB0aGluZ2VycyBzaG91bGQgYXBwZWFyIG9u
IHRoaXMgcGFnZS4gT3RoZXJ3aXNlIHRoZSB0ZXN0IGhhcyBmYWlsZWQuICAKKworLS0tLS0tLS0K
K0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhp
bmdlcgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+
LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQordGhpbmdlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1sIGIvTGF5b3V0
VGVzdHMvdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY3Yzc1MWM4NjBkNGI2ODljYmIyM2E2MTQ1ZGJmMmRmYWQ5YzQyMjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy91c2Vyc2NyaXB0cy91c2VyLXN0eWxlLXRvcC1mcmFtZS1vbmx5
Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5hZGRVc2VyU3R5bGVTaGVldCgi
I3RoaW5nZXIgeyBkaXNwbGF5Om5vbmU7IH0iLCBmYWxzZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorMiB0aGluZ2VycyBzaG91bGQgYXBwZWFyIG9uIHRoaXMgcGFnZS4gT3RoZXJ3
aXNlIHRoZSB0ZXN0IGhhcyBmYWlsZWQuCis8RGl2IGlkPSJ0aGluZ2VyIj50aGluZ2VyPC9kaXY+
Cis8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ZyYW1lMS5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMTU3ZTY3MGQ5ZGZlMzAzYzMwNmU2ZDgzNzMxMDU1YjJhZmE3NGI3ZC4uOGI3Njgw
ZTgzOTc1Yjk2Mjk3MjYyN2E3N2ViYzg4Nzk4M2M2ZmFmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMC0w
Ny0wNyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIg
c2NyaXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKwor
ICAgICAgICBUZXN0czogdXNlcnNjcmlwdHMvdXNlci1zY3JpcHQtYWxsLWZyYW1lcy5odG1sCisg
ICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC10b3AtZnJhbWUtb25seS5odG1s
CisgICAgICAgICAgICAgICB1c2Vyc2NyaXB0cy91c2VyLXN0eWxlLWFsbC1mcmFtZXMuaHRtbAor
ICAgICAgICAgICAgICAgdXNlcnNjcmlwdHMvdXNlci1zdHlsZS10b3AtZnJhbWUtb25seS5odG1s
CisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOiBVcGRhdGUgUGFnZUdyb3VwIG1ldGhvZCBz
aWduYXR1cmVzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cGFnZUdyb3VwVXNlclNoZWV0cyk6IENoZWNrIGFsbEZyYW1lcyBiZWZvcmUg
aW5qZWN0aW5nLgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWU6OmluamVjdFVzZXJTY3JpcHRzRm9yV29ybGQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdl
L1BhZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6OmFkZFVzZXJTY3Jp
cHRUb1dvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hl
ZXRUb1dvcmxkKToKKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5oOgorICAgICAgICAqIHBhZ2Uv
VXNlclNjcmlwdC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlclNjcmlwdDo6VXNlclNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpVc2VyU2NyaXB0OjppbmplY3RlZEZyYW1lcyk6CisgICAgICAg
ICogcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAg
ICogcGFnZS9Vc2VyU3R5bGVTaGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6VXNlclN0eWxlU2hl
ZXQ6OlVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Ojpp
bmplY3RlZEZyYW1lcyk6CisKIDIwMTAtMDYtMjQgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3Jl
LmJhc2UuZXhwCmluZGV4IDcwZjA3NzM1Y2FmMTY2ZmQ3NTRkMTAxYTMyY2FkYTRmNmE4OWJhZDIu
LmU4Y2UxYTVkNTQzYmNlMjRmZjA4MWZlNzFiZDExYTlmMWZlMDNiMTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAg
LTc3MiwxMCArNzcyLDEwIEBAIF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUxMXNldENhcGFjaXR5RWkK
IF9fWk43V2ViQ29yZTlQYWdlQ2FjaGUyN3JlbGVhc2VBdXRvcmVsZWFzZWRQYWdlc05vd0V2CiBf
X1pON1dlYkNvcmU5UGFnZUdyb3VwMTRhZGRWaXNpdGVkTGlua0VQS3RtCiBfX1pON1dlYkNvcmU5
UGFnZUdyb3VwMTdjbG9zZUxvY2FsU3RvcmFnZUV2Ci1fX1pON1dlYkNvcmU5UGFnZUdyb3VwMjBh
ZGRVc2VyU2NyaXB0VG9Xb3JsZEVQTlNfMTVET01XcmFwcGVyV29ybGRFUktOU182U3RyaW5nRVJL
TlNfNEtVUkxFTjNXVEYxMFBhc3NPd25QdHJJTlM5XzZWZWN0b3JJUzNfTG0wRUVFRUVTRF9OU18y
M1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lRQorX19aTjdXZWJDb3JlOVBhZ2VHcm91cDIwYWRkVXNl
clNjcmlwdFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0cmluZ0VSS05TXzRL
VVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVFU0RfTlNfMjNVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZUVOU18yNFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lc0UKIF9fWk43
V2ViQ29yZTlQYWdlR3JvdXAyMHJlbW92ZUFsbFVzZXJDb250ZW50RXYKIF9fWk43V2ViQ29yZTlQ
YWdlR3JvdXAyMXJlbW92ZUFsbFZpc2l0ZWRMaW5rc0V2Ci1fX1pON1dlYkNvcmU5UGFnZUdyb3Vw
MjRhZGRVc2VyU3R5bGVTaGVldFRvV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0
cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3duUHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVF
U0RfCitfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjRhZGRVc2VyU3R5bGVTaGVldFRvV29ybGRFUE5T
XzE1RE9NV3JhcHBlcldvcmxkRVJLTlNfNlN0cmluZ0VSS05TXzRLVVJMRU4zV1RGMTBQYXNzT3du
UHRySU5TOV82VmVjdG9ySVMzX0xtMEVFRUVFU0RfTlNfMjRVc2VyU2NyaXB0SW5qZWN0ZWRGcmFt
ZXNFCiBfX1pON1dlYkNvcmU5UGFnZUdyb3VwMjVyZW1vdmVVc2VyU2NyaXB0RnJvbVdvcmxkRVBO
U18xNURPTVdyYXBwZXJXb3JsZEVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDI2
cmVtb3ZlVXNlclNjcmlwdHNGcm9tV29ybGRFUE5TXzE1RE9NV3JhcHBlcldvcmxkRQogX19aTjdX
ZWJDb3JlOVBhZ2VHcm91cDI2c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3NFYgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDQyMWMzY2VhMmNlMWEyZmY2OTBiMmEzOGEwY2Q2MGUwYjExNGE2ZmIuLjQ4ZWUxYTU3OWFl
ZTlmMjYzOTYxMWYxMTc2YjYwYmUwZDQ0YmFlM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxNTMsNiArMjE1
Myw4IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiogRG9jdW1lbnQ6OnBh
Z2VHcm91cFVzZXJTaGVldHMoKSBjb25zdAogICAgICAgICBjb25zdCBVc2VyU3R5bGVTaGVldFZl
Y3Rvciogc2hlZXRzID0gaXQtPnNlY29uZDsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHNoZWV0cy0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0IFVzZXJTdHlsZVNo
ZWV0KiBzaGVldCA9IHNoZWV0cy0+YXQoaSkuZ2V0KCk7CisgICAgICAgICAgICBpZiAoc2hlZXQt
PmluamVjdGVkRnJhbWVzKCkgPT0gSW5qZWN0SW5Ub3BGcmFtZU9ubHkgJiYgb3duZXJFbGVtZW50
KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoIVVzZXJDb250
ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKHVybCgpLCBzaGVldC0+d2hpdGVsaXN0KCks
IHNoZWV0LT5ibGFja2xpc3QoKSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFyc2VkU2hlZXQgPSBDU1NTdHlsZVNoZWV0Ojpj
cmVhdGVJbmxpbmUoY29uc3RfY2FzdDxEb2N1bWVudCo+KHRoaXMpLCBzaGVldC0+dXJsKCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKaW5kZXggZmVlMDdkZGRlNTcxMTRiNmZlMzRjZWNmOGQwMmZmNTU2MzZlZmQ2YS4uZWYwMGMy
MjY4ZTI2ODVmNjEyZjQzNTA3MmFkOWRmZmM1ZjNiOWI4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC02OTAsNiArNjkw
LDkgQEAgdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdHNGb3JXb3JsZChET01XcmFwcGVyV29y
bGQqIHdvcmxkLCBjb25zdCBVc2VyU2NyaXB0VmUKICAgICB1bnNpZ25lZCBjb3VudCA9IHVzZXJT
Y3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkg
ewogICAgICAgICBVc2VyU2NyaXB0KiBzY3JpcHQgPSB1c2VyU2NyaXB0c1tpXS5nZXQoKTsKKyAg
ICAgICAgaWYgKHNjcmlwdC0+aW5qZWN0ZWRGcmFtZXMoKSA9PSBJbmplY3RJblRvcEZyYW1lT25s
eSAmJiBvd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgIGlm
IChzY3JpcHQtPmluamVjdGlvblRpbWUoKSA9PSBpbmplY3Rpb25UaW1lICYmIFVzZXJDb250ZW50
VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGRvYy0+dXJsKCksIHNjcmlwdC0+d2hpdGVsaXN0
KCksIHNjcmlwdC0+YmxhY2tsaXN0KCkpKQogICAgICAgICAgICAgbV9zY3JpcHQuZXZhbHVhdGVJ
bldvcmxkKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT5zb3VyY2UoKSwgc2NyaXB0LT51cmwoKSks
IHdvcmxkKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBi
L1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IGY2Yzc0NmRkOGZjOWExYmExYWNkMDRl
NGE2Y2NmNDFlZDYzMzlmYmMuLjRjOWJjNzEzOWI1YjUzZGQxNThiNGQzNTJmNGNlZjlhMzIxYWJm
MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuY3BwCkBAIC0yMTMsMTIgKzIxMywxMyBAQCBJbmRleGVkRGF0YWJhc2Uq
IFBhZ2VHcm91cDo6aW5kZXhlZERhdGFiYXNlKCkKIH0KICNlbmRpZgogCi12b2lkIFBhZ2VHcm91
cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4g
PiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFzc093
blB0cjxWZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCwgVXNlclNjcmlwdEluamVjdGlvblRpbWUg
aW5qZWN0aW9uVGltZSkKK3ZvaWQgUGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0VG9Xb3JsZChET01X
cmFwcGVyV29ybGQqIHdvcmxkLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgS1VSTCYgdXJs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xp
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVj
dGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKQogewogICAgIEFTU0VSVF9BUkcod29ybGQsIHdvcmxkKTsKIAotICAgIE93blB0cjxV
c2VyU2NyaXB0PiB1c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwgdXJsLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSkpOworICAgIE93blB0cjxVc2VyU2NyaXB0PiB1
c2VyU2NyaXB0KG5ldyBVc2VyU2NyaXB0KHNvdXJjZSwgdXJsLCB3aGl0ZWxpc3QsIGJsYWNrbGlz
dCwgaW5qZWN0aW9uVGltZSwgaW5qZWN0ZWRGcmFtZXMpKTsKICAgICBpZiAoIW1fdXNlclNjcmlw
dHMpCiAgICAgICAgIG1fdXNlclNjcmlwdHMuc2V0KG5ldyBVc2VyU2NyaXB0TWFwKTsKICAgICBV
c2VyU2NyaXB0VmVjdG9yKiYgc2NyaXB0c0luV29ybGQgPSBtX3VzZXJTY3JpcHRzLT5hZGQod29y
bGQsIDApLmZpcnN0LT5zZWNvbmQ7CkBAIC0yMjcsMTkgKzIyOCwyMCBAQCB2b2lkIFBhZ2VHcm91
cDo6YWRkVXNlclNjcmlwdFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwgY29uc3QgU3Ry
aW5nJiBzb3VyYwogICAgIHNjcmlwdHNJbldvcmxkLT5hcHBlbmQodXNlclNjcmlwdC5yZWxlYXNl
KCkpOwogfQogCi12b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKERPTVdy
YXBwZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmws
IFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFj
a2xpc3QpCit2b2lkIFBhZ2VHcm91cDo6YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKERPTVdyYXBw
ZXJXb3JsZCogd29ybGQsIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xp
c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJ
bmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcykKIHsKICAgICBBU1NFUlRfQVJHKHdvcmxkLCB3
b3JsZCk7CiAKLSAgICBPd25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0KG5ldyBV
c2VyU3R5bGVTaGVldChzb3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QpKTsKKyAgICBP
d25QdHI8VXNlclN0eWxlU2hlZXQ+IHVzZXJTdHlsZVNoZWV0KG5ldyBVc2VyU3R5bGVTaGVldChz
b3VyY2UsIHVybCwgd2hpdGVsaXN0LCBibGFja2xpc3QsIGluamVjdGVkRnJhbWVzKSk7CiAgICAg
aWYgKCFtX3VzZXJTdHlsZVNoZWV0cykKICAgICAgICAgbV91c2VyU3R5bGVTaGVldHMuc2V0KG5l
dyBVc2VyU3R5bGVTaGVldE1hcCk7CiAgICAgVXNlclN0eWxlU2hlZXRWZWN0b3IqJiBzdHlsZVNo
ZWV0c0luV29ybGQgPSBtX3VzZXJTdHlsZVNoZWV0cy0+YWRkKHdvcmxkLCAwKS5maXJzdC0+c2Vj
b25kOwogICAgIGlmICghc3R5bGVTaGVldHNJbldvcmxkKQogICAgICAgICBzdHlsZVNoZWV0c0lu
V29ybGQgPSBuZXcgVXNlclN0eWxlU2hlZXRWZWN0b3I7CiAgICAgc3R5bGVTaGVldHNJbldvcmxk
LT5hcHBlbmQodXNlclN0eWxlU2hlZXQucmVsZWFzZSgpKTsKLSAgICAKKwogICAgIC8vIENsZWFy
IG91ciBjYWNoZWQgc2hlZXRzIGFuZCBoYXZlIHRoZW0ganVzdCByZXBhcnNlLgogICAgIEhhc2hT
ZXQ8UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VzLmVuZCgpOwogICAgIGZvciAo
SGFzaFNldDxQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlcy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBiL1dl
YkNvcmUvcGFnZS9QYWdlR3JvdXAuaAppbmRleCBhNDA5NDk0ZWZjMmI5Nzc5M2VhMGFjNTAzZmUy
ZGUxYjg1MDI5NWRjLi4wNzEwMmRmNzk3NGZmNmJiZTJlMmZjNDgwOGQ0MjUzYmNiYTUxZDQyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cC5oCkBAIC03NCwyMCArNzQsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBJbmRleGVkRGF0YWJhc2UqIGluZGV4ZWREYXRhYmFzZSgpOwogI2VuZGlmCiAKLSAgICAgICAg
dm9pZCBhZGRVc2VyU2NyaXB0VG9Xb3JsZChET01XcmFwcGVyV29ybGQqLCBjb25zdCBTdHJpbmcm
IHNvdXJjZSwgY29uc3QgS1VSTCYsIAorICAgICAgICB2b2lkIGFkZFVzZXJTY3JpcHRUb1dvcmxk
KERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+
ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gYmxhY2tsaXN0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKICAgICAgICAgdm9pZCBhZGRVc2VyU3R5bGVT
aGVldFRvV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IEtVUkwmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NPd25QdHI8VmVjdG9y
PFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBibGFja2xp
c3QpOwotICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFz
c093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VXNlclNjcmlwdEluamVjdGVkRnJhbWVzKTsKKwogICAgICAgICB2b2lkIHJlbW92ZVVzZXJTY3Jp
cHRGcm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKiwgY29uc3QgS1VSTCYpOwogICAgICAgICB2b2lk
IHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbVdvcmxkKERPTVdyYXBwZXJXb3JsZCosIGNvbnN0IEtV
UkwmKTsKLSAgICAgICAgCisKICAgICAgICAgdm9pZCByZW1vdmVVc2VyU2NyaXB0c0Zyb21Xb3Js
ZChET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdm9pZCByZW1vdmVVc2VyU3R5bGVTaGVldHNG
cm9tV29ybGQoRE9NV3JhcHBlcldvcmxkKik7Ci0gICAgCisKICAgICAgICAgdm9pZCByZW1vdmVB
bGxVc2VyQ29udGVudCgpOwotICAgICAgICAKKwogICAgICAgICBjb25zdCBVc2VyU2NyaXB0TWFw
KiB1c2VyU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlclNjcmlwdHMuZ2V0KCk7IH0KICAg
ICAgICAgY29uc3QgVXNlclN0eWxlU2hlZXRNYXAqIHVzZXJTdHlsZVNoZWV0cygpIGNvbnN0IHsg
cmV0dXJuIG1fdXNlclN0eWxlU2hlZXRzLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9Vc2VyU2NyaXB0LmggYi9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5oCmluZGV4IDhiMzcw
M2Y5MzcyZjdjMzlhYjMwMDYyYjc4OTU1NjdkYzAwMjMwNGUuLmVhNjk5YjBkMTU5YjAxNmNkYWMw
ZDQ3Mzg4NjJiMzAwOWUyODc1MWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0
LmgKKysrIGIvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuaApAQCAtMzgsMTIgKzM4LDEzIEBAIGNs
YXNzIFVzZXJTY3JpcHQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIFVzZXJT
Y3JpcHQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IEtVUkwmIHVybCwKICAgICAgICAgICAg
ICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB3aGl0ZWxpc3QsIFBhc3NPd25QdHI8VmVj
dG9yPFN0cmluZz4gPiBibGFja2xpc3QsCi0gICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZSBpbmplY3Rpb25UaW1lKQorICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdGlv
blRpbWUgaW5qZWN0aW9uVGltZSwgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJh
bWVzKQogICAgICAgICA6IG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX3VybCh1cmwpCiAg
ICAgICAgICwgbV93aGl0ZWxpc3Qod2hpdGVsaXN0KQogICAgICAgICAsIG1fYmxhY2tsaXN0KGJs
YWNrbGlzdCkKICAgICAgICAgLCBtX2luamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSkKKyAgICAg
ICAgLCBtX2luamVjdGVkRnJhbWVzKGluamVjdGVkRnJhbWVzKQogICAgIHsKICAgICB9CiAKQEAg
LTUyLDE1ICs1MywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIHdoaXRl
bGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0LmdldCgpOyB9CiAgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxhY2tsaXN0LmdldCgp
OyB9CiAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSgpIGNvbnN0IHsg
cmV0dXJuIG1faW5qZWN0aW9uVGltZTsgfQotICAgIAorICAgIFVzZXJTY3JpcHRJbmplY3RlZEZy
YW1lcyBpbmplY3RlZEZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRGcmFtZXM7IH0K
KwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9zb3VyY2U7CiAgICAgS1VSTCBtX3VybDsKICAgICBP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3doaXRlbGlzdDsKICAgICBPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBtX2JsYWNrbGlzdDsKICAgICBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBtX2luamVj
dGlvblRpbWU7CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIG1faW5qZWN0ZWRGcmFtZXM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0gCisKICNlbmRpZiAvLyBVc2VyU2NyaXB0
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0VHlwZXMuaCBiL1dlYkNvcmUv
cGFnZS9Vc2VyU2NyaXB0VHlwZXMuaAppbmRleCBhZDI3ZTc5Yjk4MjlmOTExZTVhNmNjM2QzNWMw
NDU5NTQ4OWJmZmFlLi45ZjNiZmUwZmExMjk5YzJhZjc4YzM0MGExNzY5YTBjOTIzZWYzYjBhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdFR5cGVzLmgKKysrIGIvV2ViQ29yZS9w
YWdlL1VzZXJTY3JpcHRUeXBlcy5oCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGVudW0gVXNlclNjcmlwdEluamVjdGlvblRpbWUgeyBJbmplY3RBdERvY3VtZW50U3Rh
cnQsIEluamVjdEF0RG9jdW1lbnRFbmQgfTsKK2VudW0gVXNlclNjcmlwdEluamVjdGVkRnJhbWVz
IHsgSW5qZWN0SW5BbGxGcmFtZXMsIEluamVjdEluVG9wRnJhbWVPbmx5IH07CiAKIGNsYXNzIERP
TVdyYXBwZXJXb3JsZDsKIGNsYXNzIFVzZXJTY3JpcHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvVXNlclN0eWxlU2hlZXQuaCBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVldC5oCmluZGV4
IDYxMDc3OGYzZDdiNTcyNzkzNzRhMGNkZTdmY2NhMzUwZmJlZjgyNzQuLmJjYTZiZWFiYTE5YTRm
YzRjYjAzYTc2NzAyMmQ1NmIwMzNjY2Q5MTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9Vc2Vy
U3R5bGVTaGVldC5oCisrKyBiL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVldC5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFVzZXJTdHlsZVNoZWV0X2gKIAogI2luY2x1ZGUgIktVUkwuaCIK
KyNpbmNsdWRlICJVc2VyU2NyaXB0VHlwZXMuaCIKICNpbmNsdWRlICJVc2VyU3R5bGVTaGVldFR5
cGVzLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CkBAIC0zNywxMSArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgVXNlclN0
eWxlU2hlZXQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIFVzZXJTdHlsZVNo
ZWV0KGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBLVVJMJiB1cmwsCi0gICAgICAgICAgICAg
ICAgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHdoaXRlbGlzdCwgUGFzc093blB0cjxW
ZWN0b3I8U3RyaW5nPiA+IGJsYWNrbGlzdCkKKyAgICAgICAgICAgICAgICAgICBQYXNzT3duUHRy
PFZlY3RvcjxTdHJpbmc+ID4gd2hpdGVsaXN0LCBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
YmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBp
bmplY3RlZEZyYW1lcykKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICwgbV91
cmwodXJsKQogICAgICAgICAsIG1fd2hpdGVsaXN0KHdoaXRlbGlzdCkKICAgICAgICAgLCBtX2Js
YWNrbGlzdChibGFja2xpc3QpCisgICAgICAgICwgbV9pbmplY3RlZEZyYW1lcyhpbmplY3RlZEZy
YW1lcykKICAgICB7CiAgICAgfQogCkBAIC00OSwxMiArNTIsMTQgQEAgcHVibGljOgogICAgIGNv
bnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3QgVmVjdG9y
PFN0cmluZz4qIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0LmdldCgpOyB9
CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4qIGJsYWNrbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmxhY2tsaXN0LmdldCgpOyB9CisgICAgVXNlclNjcmlwdEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEZyYW1lczsgfQogCiBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3NvdXJjZTsKICAgICBLVVJMIG1fdXJsOwogICAgIE93blB0cjxWZWN0b3I8
U3RyaW5nPiA+IG1fd2hpdGVsaXN0OwogICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fYmxh
Y2tsaXN0OworICAgIFVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcyBtX2luamVjdGVkRnJhbWVzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTI4ZmM4OGFkNGZj
NWE0ZjQwOTUxMDc5MzQ5MWEyODA5YWYwYjQxYy4uMTFmNTA2YzE4M2JiNDMxN2JjZGJiMDk3ODcw
M2I4MGU0OWIwYTQwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDctMDcg
IEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IGZvciB1c2VyIHNjcmlw
dHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0b3AgZnJhbWUuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTI5CisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjopOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3OjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXQpOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3OjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6
YWRkVXNlclN0eWxlU2hlZXQpOgorCiAyMDEwLTA3LTAyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDFlZmQ3NTJlNTMwYTRlNmIyYmE1ZmYxMzA0OTIy
Y2FhOTViMWQ2YjAuLmI2Zjk2ZDFmZjhhZmRhMWY2ZmM4MWM0NDFmNWM3MzNlNGM4NWY4NDggMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC01NCw2ICs1NCwxOCBAQCBzdHJ1Y3QgV2ViUG9p
bnQ7CiAKIGNsYXNzIFdlYlZpZXcgOiBwdWJsaWMgV2ViV2lkZ2V0IHsKIHB1YmxpYzoKKyAgICAv
LyBDb250cm9scyB0aGUgdGltZSB0aGF0IHVzZXIgc2NyaXB0cyBpbmplY3RlZCBpbnRvIHRoZSBk
b2N1bWVudCBydW4uCisgICAgZW51bSBVc2VyU2NyaXB0SW5qZWN0QXQgeworICAgICAgICBVc2Vy
U2NyaXB0SW5qZWN0QXREb2N1bWVudFN0YXJ0LAorICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXRE
b2N1bWVudEVuZAorICAgIH07CisKKyAgICAvLyBDb250cm9scyB3aGljaCBmcmFtZXMgdXNlciBz
Y3JpcHRzIGFyZSBpbmplY3RlZCBpbnRvLgorICAgIGVudW0gVXNlclNjcmlwdEluamVjdEluIHsK
KyAgICAgICAgVXNlclNjcmlwdEluamVjdEluQWxsRnJhbWVzLAorICAgICAgICBVc2VyU2NyaXB0
SW5qZWN0SW5Ub3BGcmFtZU9ubHkKKyAgICB9OworCiAgICAgLy8gSW5pdGlhbGl6YXRpb24gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAg
ICAvLyBDcmVhdGVzIGEgV2ViVmlldyB0aGF0IGlzIE5PVCB5ZXQgaW5pdGlhbGl6ZWQuICBZb3Ug
d2lsbCBuZWVkIHRvCkBAIC0yODYsMTggKzI5OCwyMiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFRoZXNlIHR3byBtZXRob2RzIGFyZSBERVBSRUNBVEVELiBSZW1vdmUgb25jZSBDaHJvbWl1bSBo
YXMgYmVlbiByb2xsZWQuCiAgICAgdmlydHVhbCB2b2lkIGFkZFVzZXJTY3JpcHQoY29uc3QgV2Vi
U3RyaW5nJiBzb3VyY2VDb2RlLCBib29sIHJ1bkF0U3RhcnQpCiAgICAgewotICAgICAgICBhZGRV
c2VyU2NyaXB0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+KCksIHJ1bkF0U3RhcnQp
OworICAgICAgICBhZGRVc2VyU2NyaXB0KHNvdXJjZUNvZGUsIFdlYlZlY3RvcjxXZWJTdHJpbmc+
KCksCisgICAgICAgICAgICAgICAgICAgICAgcnVuQXRTdGFydCA/IFVzZXJTY3JpcHRJbmplY3RB
dERvY3VtZW50U3RhcnQgOiBVc2VyU2NyaXB0SW5qZWN0QXREb2N1bWVudEVuZCwKKyAgICAgICAg
ICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0SW5BbGxGcmFtZXMpOwogICAgIH0KICAgICB2
aXJ0dWFsIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2Rl
KQogICAgIHsKLSAgICAgICAgYWRkVXNlclN0eWxlU2hlZXQoc291cmNlQ29kZSwgV2ViVmVjdG9y
PFdlYlN0cmluZz4oKSk7CisgICAgICAgIGFkZFVzZXJTdHlsZVNoZWV0KHNvdXJjZUNvZGUsIFdl
YlZlY3RvcjxXZWJTdHJpbmc+KCksIFVzZXJTY3JpcHRJbmplY3RJbkFsbEZyYW1lcyk7CiAgICAg
fQogCiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBhZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0
cmluZyYgc291cmNlQ29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIHBhdHRlcm5zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJ1bkF0U3RhcnQpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyU2NyaXB0SW5qZWN0QXQgaW5qZWN0QXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJTY3JpcHRJbmpl
Y3RJbiBpbmplY3RJbik7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBhZGRVc2VyU3R5bGVT
aGVldChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVy
bnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViVmVjdG9yPFdlYlN0cmluZz4mIHBhdHRlcm5zLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVXNlclNjcmlwdEluamVjdEluIGluamVjdEluKTsKICAgICBX
RUJLSVRfQVBJIHN0YXRpYyB2b2lkIHJlbW92ZUFsbFVzZXJDb250ZW50KCk7CiAKICAgICAvLyBN
b2RhbCBkaWFsb2cgc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
CmluZGV4IDU3MzZjYTAwNjE3ZWNhZTI0YzMwYjcwNmU5ODg1Nzg3MWUxMjE3MzIuLjQwZDJmZDJh
ZmMwN2EyMjQwNDc0ZGEwMWI1ODIyNDA5ZGNjNzY4ZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0
eS5oIgorI2luY2x1ZGUgIlVzZXJTY3JpcHRUeXBlcy5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2lu
Y2x1ZGUgIldlYkNsaXBib2FyZC5oIgpAQCAtNTYsNiArNTcsNyBAQAogI2luY2x1ZGUgIldlYlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4
dENhc2VTZW5zaXRpdml0eS5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCiAjZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0od2Vi
a2l0X25hbWUsIHdlYmNvcmVfbmFtZSkgXApAQCAtMzEyLDMgKzMxNCw4IEBAIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViVGV4dEFmZmluaXR5RG93bnN0cmVhbSwgRE9XTlNUUkVBTSk7
CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dENhc2VTZW5zaXRpdmUsIFRl
eHRDYXNlU2Vuc2l0aXZlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dENh
c2VJbnNlbnNpdGl2ZSwgVGV4dENhc2VJbnNlbnNpdGl2ZSk7CisKK0NPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEF0RG9jdW1lbnRTdGFydCwgSW5q
ZWN0QXREb2N1bWVudFN0YXJ0KTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVmll
dzo6VXNlclNjcmlwdEluamVjdEF0RG9jdW1lbnRFbmQsIEluamVjdEF0RG9jdW1lbnRFbmQpOwor
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0SW5B
bGxGcmFtZXMsIEluamVjdEluQWxsRnJhbWVzKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEluVG9wRnJhbWVPbmx5LCBJbmplY3RJblRvcEZy
YW1lT25seSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGIwMDEwNzYwZTAx
MWYxNTAxZGNkZWQ1NmM2ZGZkMzY0NjViMjBkNjMuLjdhOGQ3MTRkMDhmNDIyNDQ3MmNjNWUwOTcx
ZmQxMmE0YjU0Zjk4ZDIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xOTI0
LDcgKzE5MjQsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKHVuc2ln
bmVkIGFjdGl2ZUJhY2tncm91bmRDb2xvciwKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXc6OmFk
ZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwgYm9vbCBydW5BdFN0YXJ0KQordm9pZCBXZWJWaWV3Ojph
ZGRVc2VyU2NyaXB0KGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0QXQgaW5q
ZWN0QXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmlldzo6VXNlclNjcmlwdElu
amVjdEluIGluamVjdEluKQogewogICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5z
KG5ldyBWZWN0b3I8U3RyaW5nPik7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0ZXJu
c0luLnNpemUoKTsgKytpKQpAQCAtMTkzMywxMCArMTkzNiwxMyBAQCB2b2lkIFdlYlZpZXc6OmFk
ZFVzZXJTY3JpcHQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaQogICAgIFBhZ2VHcm91cCogcGFnZUdyb3VwID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAo
cGFnZUdyb3VwTmFtZSk7CiAgICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQoRE9NV3Jh
cHBlcldvcmxkOjpjcmVhdGUoKSk7CiAgICAgcGFnZUdyb3VwLT5hZGRVc2VyU2NyaXB0VG9Xb3Js
ZCh3b3JsZC5nZXQoKSwgc291cmNlQ29kZSwgV2ViVVJMKCksIHBhdHRlcm5zLnJlbGVhc2UoKSwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkF0U3RhcnQgPyBJbmpl
Y3RBdERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50RW5kKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
PihpbmplY3RBdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXM+KGluamVjdEluKSk7CiB9CiAKLXZvaWQgV2Vi
Vmlldzo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBjb25z
dCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbikKK3ZvaWQgV2ViVmlldzo6YWRkVXNl
clN0eWxlU2hlZXQoY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgcGF0dGVybnNJbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViVmlldzo6VXNlclNjcmlwdEluamVj
dEluIGluamVjdEluKQogewogICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IHBhdHRlcm5zKG5l
dyBWZWN0b3I8U3RyaW5nPik7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXR0ZXJuc0lu
LnNpemUoKTsgKytpKQpAQCAtMTk0NCw3ICsxOTUwLDggQEAgdm9pZCBXZWJWaWV3OjphZGRVc2Vy
U3R5bGVTaGVldChjb25zdCBXZWJTdHJpbmcmIHNvdXJjZUNvZGUsIGNvbnN0IFdlYlZlY3RvcjxX
ZWIKIAogICAgIFBhZ2VHcm91cCogcGFnZUdyb3VwID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFn
ZUdyb3VwTmFtZSk7CiAgICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQoRE9NV3JhcHBl
cldvcmxkOjpjcmVhdGUoKSk7Ci0gICAgcGFnZUdyb3VwLT5hZGRVc2VyU3R5bGVTaGVldFRvV29y
bGQod29ybGQuZ2V0KCksIHNvdXJjZUNvZGUsIFdlYlVSTCgpLCBwYXR0ZXJucy5yZWxlYXNlKCks
IDApOworICAgIHBhZ2VHcm91cC0+YWRkVXNlclN0eWxlU2hlZXRUb1dvcmxkKHdvcmxkLmdldCgp
LCBzb3VyY2VDb2RlLCBXZWJVUkwoKSwgcGF0dGVybnMucmVsZWFzZSgpLCAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFVzZXJTY3JpcHRJbmpl
Y3RlZEZyYW1lcz4oaW5qZWN0SW4pKTsKIH0KIAogdm9pZCBXZWJWaWV3OjpyZW1vdmVBbGxVc2Vy
Q29udGVudCgpCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDU0YTNiNjk0YmNkMDcxNjkxMTRiYzY3MGY3NzQxNDMxYjRkYzM3Y2Iu
LmRjNTBmNTBjYTZiMjA4MjBmZTBjNjlhYzYzZGUwNTI5MDdhMzRmMzMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDctMDcgIEFhcm9uIEJvb2RtYW4gIDxhYUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRoZSBhYmls
aXR5IGZvciB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIHRvIGFmZmVjdCBqdXN0IHRoZSB0
b3AgZnJhbWUuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQxNTI5CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgrW1dl
YlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOndvcmxkOnNvdXJjZTp1cmw6d2hpdGVsaXN0OmJs
YWNrbGlzdDppbmplY3Rpb25UaW1lOl0pOgorICAgICAgICAoK1tXZWJWaWV3IF9hZGRVc2VyU2Ny
aXB0VG9Hcm91cDp3b3JsZDpzb3VyY2U6dXJsOndoaXRlbGlzdDpibGFja2xpc3Q6aW5qZWN0aW9u
VGltZTppbmplY3RlZEZyYW1lczpdKToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclN0eWxl
U2hlZXRUb0dyb3VwOndvcmxkOnNvdXJjZTp1cmw6d2hpdGVsaXN0OmJsYWNrbGlzdDpdKToKKyAg
ICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOndvcmxkOnNvdXJjZTp1
cmw6d2hpdGVsaXN0OmJsYWNrbGlzdDppbmplY3RlZEZyYW1lczpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdQcml2YXRlLmg6CisKIDIwMTAtMDctMDEgIFRpbW90aHkgSGF0Y2hlciAgPHRp
bW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBXZWJWaWV3IHByZWZlcmVuY2Ug
dG8gZGlzYWJsZSBETlMgcHJlZmV0Y2hpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGY0ZDQz
NDg4MzdjZjRiNTQwNDdmY2UzMTBiMzI0NWFhZDg4OTgzZjQuLmNiNzJjYzJlZWZiMGVhYTJiNDNk
MjJkODc1OWRiNDEyNjVhZWRjZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzQ3LDcgKzIz
NDcsMTYgQEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3Rv
cihOU0FycmF5KiBwYXR0ZXJucykKIH0KIAogKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6
KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybAotICAgICAgICAgICAgICAgICAg
ICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxh
Y2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlv
blRpbWUKKyAgICAgICAgICAgICAgICAgICAgd2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0
IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdAorICAgICAgICAgICAgICAgIGluamVjdGlv
blRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUKK3sKKyAgICBb
V2ViVmlldyBfYWRkVXNlclNjcmlwdFRvR3JvdXA6Z3JvdXBOYW1lIHdvcmxkOndvcmxkIHNvdXJj
ZTpzb3VyY2UgdXJsOnVybCB3aGl0ZWxpc3Q6d2hpdGVsaXN0IGJsYWNrbGlzdDpibGFja2xpc3Qg
aW5qZWN0aW9uVGltZTppbmplY3Rpb25UaW1lIGluamVjdGVkRnJhbWVzOldlYkluamVjdEluQWxs
RnJhbWVzXTsKK30KKworKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICop
Z3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcg
Kilzb3VyY2UgdXJsOihOU1VSTCAqKXVybAorICAgICAgICAgICAgICAgICAgICB3aGl0ZWxpc3Q6
KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0CisgICAg
ICAgICAgICAgICAgaW5qZWN0aW9uVGltZTooV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5q
ZWN0aW9uVGltZQorICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJTY3JpcHRJ
bmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lcwogewogICAgIFN0cmluZyBncm91cChncm91cE5h
bWUpOwogICAgIGlmIChncm91cC5pc0VtcHR5KCkpCkBAIC0yMzU4LDExICsyMzY3LDE5IEBAIHN0
YXRpYyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSog
cGF0dGVybnMpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBwYWdlR3JvdXAtPmFkZFVzZXJT
Y3JpcHRUb1dvcmxkKGNvcmUod29ybGQpLCBzb3VyY2UsIHVybCwgdG9TdHJpbmdWZWN0b3Iod2hp
dGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0KSwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9jdW1lbnRTdGFy
dCA/IEluamVjdEF0RG9jdW1lbnRTdGFydCA6IEluamVjdEF0RG9jdW1lbnRFbmQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0aW9uVGltZSA9PSBXZWJJbmplY3RB
dERvY3VtZW50U3RhcnQgPyBJbmplY3RBdERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50
RW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXMg
PT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMgPyBJbmplY3RJbkFsbEZyYW1lcyA6IEluamVjdEluVG9w
RnJhbWVPbmx5KTsKK30KKworKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0
cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHdoaXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFj
a2xpc3QKK3sKKyAgICBbV2ViVmlldyBfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOmdyb3VwTmFt
ZSB3b3JsZDp3b3JsZCBzb3VyY2U6c291cmNlIHVybDp1cmwgd2hpdGVsaXN0OndoaXRlbGlzdCBi
bGFja2xpc3Q6YmxhY2tsaXN0IGluamVjdGVkRnJhbWVzOldlYkluamVjdEluQWxsRnJhbWVzXTsK
IH0KIAogKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3Vw
TmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291
cmNlIHVybDooTlNVUkwgKil1cmwKICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlbGlzdDoo
TlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QKKyAgICAg
ICAgICAgICAgICAgICBpbmplY3RlZEZyYW1lczooV2ViVXNlclNjcmlwdEluamVjdGVkRnJhbWVz
KWluamVjdGVkRnJhbWVzCiB7CiAgICAgU3RyaW5nIGdyb3VwKGdyb3VwTmFtZSk7CiAgICAgaWYg
KGdyb3VwLmlzRW1wdHkoKSkKQEAgLTIzNzIsNyArMjM4OSw3IEBAIHN0YXRpYyBQYXNzT3duUHRy
PFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAg
aWYgKCFwYWdlR3JvdXApCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2VHcm91cC0+YWRkVXNl
clN0eWxlU2hlZXRUb1dvcmxkKGNvcmUod29ybGQpLCBzb3VyY2UsIHVybCwgdG9TdHJpbmdWZWN0
b3Iod2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0KSk7CisgICAgcGFnZUdyb3Vw
LT5hZGRVc2VyU3R5bGVTaGVldFRvV29ybGQoY29yZSh3b3JsZCksIHNvdXJjZSwgdXJsLCB0b1N0
cmluZ1ZlY3Rvcih3aGl0ZWxpc3QpLCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3QpLCBpbmplY3Rl
ZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJhbWVzIDogSW5q
ZWN0SW5Ub3BGcmFtZU9ubHkpOwogfQogCiArICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0RnJvbUdy
b3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCB1
cmw6KE5TVVJMICopdXJsCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1By
aXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGNlZGM2
MmM3NjU4NzRiZWFmZWU2ZjRkZjIzYThhZTEyNDJhYjE2OWEuLmZiMDlkNGVmZDgyZDJlNjIxYTZh
YmY2N2E5ZjNiZjg5ZWJmMzc2NTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCkBA
IC04OCw2ICs4OCwxMSBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYkluamVjdEF0RG9jdW1lbnRF
bmQsCiB9IFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOwogCit0eXBlZGVmIGVudW0geworICAg
IFdlYkluamVjdEluQWxsRnJhbWVzLAorICAgIFdlYkluamVjdEluVG9wRnJhbWVPbmx5Cit9IFdl
YlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lczsKKwogQGludGVyZmFjZSBXZWJDb250cm9sbGVyIDog
TlNUcmVlQ29udHJvbGxlciB7CiAgICAgSUJPdXRsZXQgV2ViVmlldyAqd2ViVmlldzsKIH0KQEAg
LTUwNCw4ICs1MDksMTIgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiAvLyBS
ZW1vdmVzIGFsbCB3aGl0ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3aXRoIF9hZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW4uCiArICh2b2lkKV9yZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHM7CiAKKy8vIEZJWE1FOiBUaGUgZm9sbG93aW5nIHR3byBtZXRob2RzIGFy
ZSBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSBvdmVybG9hZHMgYmVsb3cgdGhhdCB0YWtlIHRo
ZSBXZWJVc2VyU2NyaXB0SW5qZWN0ZWRGcmFtZXMgYXJndW1lbnQuIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgwMC4KICsgKHZvaWQpX2FkZFVzZXJTY3JpcHRUb0dy
b3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBz
b3VyY2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0Fy
cmF5ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdCBpbmplY3Rpb25U
aW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lOwogKyAodm9pZClf
YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2Vi
U2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwg
Kil1cmwgd2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAq
KWJsYWNrbGlzdDsKKworKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nICop
Z3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHNvdXJjZTooTlNTdHJpbmcg
Kilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3Qg
YmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlvblRpbWU6KFdlYlVzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJTY3Jp
cHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lczsKKysgKHZvaWQpX2FkZFVzZXJTdHlsZVNo
ZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICop
d29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdoaXRlbGlz
dDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QgaW5q
ZWN0ZWRGcmFtZXM6KFdlYlVzZXJTY3JpcHRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lczsK
ICsgKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1l
IHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkIHVybDooTlNVUkwgKil1cmw7CiArICh2b2lk
KV9yZW1vdmVVc2VyU3R5bGVTaGVldEZyb21Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29y
bGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgdXJsOihOU1VSTCAqKXVybDsKICsgKHZvaWQpX3Jl
bW92ZVVzZXJTY3JpcHRzRnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2Vi
U2NyaXB0V29ybGQgKil3b3JsZDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMzA0ZmI4MDQ5YWFjYWRiMGJmMmMyNWQ4ZTBhZTQz
MWQyYTU0MzJlMS4uMWMwMWUwODEyMDI3ZDdkZTExZWQ3NTBjYzQzN2ZkYWFlOTA3MTk0NyAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0wNyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2NyaXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0
IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAo
V2ViVmlldzo6YWRkVXNlclNjcmlwdFRvR3JvdXApOgorICAgICAgICAoV2ViVmlldzo6YWRkVXNl
clN0eWxlU2hlZXRUb0dyb3VwKToKKwogMjAxMC0wNy0wMSAgU3RldmUgRmFsa2VuYnVyZyAgPHNm
YWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKaW5kZXggNjIwNGZkMjNmOWNkZGY2MTI4YTFhNWNmOTZhMWVjMGE0NDRlOTUxNi4uYmMxMTZi
YTg5NjllNzBmY2E3NzI1NGUyODIzZDI5ZDNkMGQ3MjRmNSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC02MDE3LDcgKzYw
MTcsOCBAQCBIUkVTVUxUIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHRUb0dyb3VwKEJTVFIgZ3JvdXBO
YW1lLCBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgQgogCiAgICAgcGFnZUdyb3VwLT5hZGRVc2Vy
U2NyaXB0VG9Xb3JsZCh3b3JsZC0+d29ybGQoKSwgdG9TdHJpbmcoc291cmNlKSwgdG9LVVJMKHVy
bCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b1N0cmluZ1ZlY3Rvcih3
aGl0ZWxpc3RDb3VudCwgd2hpdGVsaXN0KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0Q291bnQs
IGJsYWNrbGlzdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmplY3Rp
b25UaW1lID09IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA/IEluamVjdEF0RG9jdW1lbnRTdGFy
dCA6IEluamVjdEF0RG9jdW1lbnRFbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5qZWN0aW9uVGltZSA9PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBJbmplY3RB
dERvY3VtZW50U3RhcnQgOiBJbmplY3RBdERvY3VtZW50RW5kLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSW5qZWN0SW5BbGxGcmFtZXMpOwogCiAgICAgcmV0dXJuIFNfT0s7
CiB9CkBAIC02MDQwLDcgKzYwNDEsOCBAQCBIUkVTVUxUIFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNo
ZWV0VG9Hcm91cChCU1RSIGdyb3VwTmFtZSwgSVdlYlNjcmlwdFdvcmxkKiBpV29ybAogICAgICAg
ICByZXR1cm4gRV9GQUlMOwogCiAgICAgcGFnZUdyb3VwLT5hZGRVc2VyU3R5bGVTaGVldFRvV29y
bGQod29ybGQtPndvcmxkKCksIHRvU3RyaW5nKHNvdXJjZSksIHRvS1VSTCh1cmwpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlz
dENvdW50LCB3aGl0ZWxpc3QpLCB0b1N0cmluZ1ZlY3RvcihibGFja2xpc3RDb3VudCwgYmxhY2ts
aXN0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmdW
ZWN0b3Iod2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCksIHRvU3RyaW5nVmVjdG9yKGJsYWNrbGlz
dENvdW50LCBibGFja2xpc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEluamVjdEluQWxsRnJhbWVzKTsKIAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEx
MGU0ZTFiMzZlNGIyMjJmNDNlOTgxMWMwMTE1NTlmNmZjNmJlZDUuLjZmYjBlMDZkNGUxMWZiNGNj
YWQ0YTM4ZTNkMmQ5ZTQ0MGUwNjcwNzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wNy0w
NyAgQWFyb24gQm9vZG1hbiAgPGFhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgc2Ny
aXB0cyBhbmQgdXNlciBzdHlsZXMgdG8gYWZmZWN0IGp1c3QgdGhlIHRvcCBmcmFtZS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE1MjkKKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6IEFkZGVkIG5ldyBh
bGxGcmFtZXMgcGFyYW0uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKGFkZFVzZXJTY3JpcHRDYWxsYmFjayk6CisgICAg
ICAgIChhZGRVc2VyU3R5bGVTaGVldENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IERpdHRvLgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiBEaXR0by4KKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjphZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tOiBEaXR0by4KKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjphZGRVc2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjph
ZGRVc2VyU3R5bGVTaGVldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcDogRGl0dG8uCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6YWRkVXNlclNjcmlwdCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNl
clN0eWxlU2hlZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwOiBEaXR0by4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRV
c2VyU2NyaXB0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVT
aGVldCk6CisKIDIwMTAtMDYtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCBlZGFiMjllMmIzYjBhMmE0MGE1NGVkZjY5OWM3M2JkNDhjMGE2N2QyLi5jZDI5NGJjOGQ3
NzM0MjA2ZWNlMDIzZGU5NjZhMjM4NmY0NWQzNTQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDk5LDI4ICsxNDk5
LDMwIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFNjcm9sbGJhclBvbGljeUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKIAogc3RhdGljIEpTVmFsdWVSZWYgYWRkVXNl
clNjcmlwdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRD
b3VudCAhPSAyKQorICAgIGlmIChhcmd1bWVudENvdW50ICE9IDMpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKICAgICAKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gc291cmNlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3Vt
ZW50c1swXSwgZXhjZXB0aW9uKSk7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKICAgICBib29s
IHJ1bkF0U3RhcnQgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sxXSk7Cisg
ICAgYm9vbCBhbGxGcmFtZXMgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sy
XSk7CiAgICAgCiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7Ci0gICAgY29udHJvbGxlci0+YWRkVXNlclNjcmlwdChzb3VyY2UuZ2V0KCksIHJ1bkF0U3Rh
cnQpOworICAgIGNvbnRyb2xsZXItPmFkZFVzZXJTY3JpcHQoc291cmNlLmdldCgpLCBydW5BdFN0
YXJ0LCBhbGxGcmFtZXMpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KICAKIHN0YXRpYyBKU1ZhbHVlUmVmIGFkZFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQogewotICAgIGlmIChhcmd1bWVudENvdW50ICE9IDEpCisgICAgaWYg
KGFyZ3VtZW50Q291bnQgIT0gMikKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwogICAgIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBzb3VyY2UoQWRv
cHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24p
KTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOworICAgIGJvb2wgYWxsRnJhbWVzID0gSlNWYWx1
ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMV0pOwogICAgCiAgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+YWRkVXNl
clN0eWxlU2hlZXQoc291cmNlLmdldCgpKTsKKyAgICBjb250cm9sbGVyLT5hZGRVc2VyU3R5bGVT
aGVldChzb3VyY2UuZ2V0KCksIGFsbEZyYW1lcyk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBiZTc5NDczOWQ1Njc0M2ZiMmVjMTU1NjU0OTk2
ZjcyMDc4OGZkZTBmLi4xNmVkYTJjYzY3MjM4MGY3OGIzOGMzODU4MzQ3NTExMTI1Y2U2ZTg3IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKQEAgLTI0MSw4ICsyNDEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyk7CiAKLSAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291
cmNlLCBib29sIHJ1bkF0U3RhcnQpOwotICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNTdHJp
bmdSZWYgc291cmNlKTsKKyAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291cmNl
LCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKTsKKyAgICB2b2lkIGFkZFVzZXJTdHls
ZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpOwogCiAgICAgdm9pZCBz
ZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvdyk7CiAgICAgYm9vbCBpc0dlb2xvY2F0
aW9uUGVybWlzc2lvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZW9sb2NhdGlvblBlcm1pc3Np
b25TZXQ7IH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA5YmE2NDIxNjEzZTk0ODYzNzc4
Njk1OTI2NWNmMzljNWJhMjRiY2Y3Li43ZDEwZDFjYjJiMzhlZDdhNDViOTgxMmY5NzYwNWMwMzg2
NTA1YmU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjY1LDE3ICsxMjY1LDIyIEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRV
c2VyU2NyaXB0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPCAyIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzQm9v
bCgpKQorICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMyB8fCAhYXJndW1lbnRzWzBdLmlzU3Ry
aW5nKCkgfHwgIWFyZ3VtZW50c1sxXS5pc0Jvb2woKSB8fCAhYXJndW1lbnRzWzJdLmlzQm9vbCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2VyU2NyaXB0
KGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBhcmd1bWVudHNbMV0udG9Cb29s
ZWFuKCkpOworICAgIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHQoCisgICAgICAgIGNwcFZhcmlhbnRU
b1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBXZWJWZWN0b3I8V2ViU3RyaW5nPigpLAorICAgICAg
ICBhcmd1bWVudHNbMV0udG9Cb29sZWFuKCkgPyBXZWJWaWV3OjpVc2VyU2NyaXB0SW5qZWN0QXRE
b2N1bWVudFN0YXJ0IDogV2ViVmlldzo6VXNlclNjcmlwdEluamVjdEF0RG9jdW1lbnRFbmQsCisg
ICAgICAgIGFyZ3VtZW50c1syXS50b0Jvb2xlYW4oKSA/IFdlYlZpZXc6OlVzZXJTY3JpcHRJbmpl
Y3RJbkFsbEZyYW1lcyA6IFdlYlZpZXc6OlVzZXJTY3JpcHRJbmplY3RJblRvcEZyYW1lT25seSk7
CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxIHx8ICFhcmd1
bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwgIWFy
Z3VtZW50c1swXS5pc1N0cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNCb29sKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3KCktPmFkZFVzZXJTdHlsZVNoZWV0KGNwcFZh
cmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pKTsKKyAgICBXZWJWaWV3OjphZGRVc2VyU3R5
bGVTaGVldCgKKyAgICAgICAgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIFdl
YlZlY3RvcjxXZWJTdHJpbmc+KCksCisgICAgICAgIGFyZ3VtZW50c1syXS50b0Jvb2xlYW4oKSA/
IFdlYlZpZXc6OlVzZXJTY3JpcHRJbmplY3RJbkFsbEZyYW1lcyA6IFdlYlZpZXc6OlVzZXJTY3Jp
cHRJbmplY3RJblRvcEZyYW1lT25seSk7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0cykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDE4MTQ5MzNkMjEzYmU4
NWM3ZjE1MjQ0ZjdhMTFmMWFlNmFjM2JiMDUuLjVjOTQyZDNlMjlkNDNkZDBmODRjMzlhYTZmY2Rk
YTA4MWI2NDg4YTQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNjI0LDEyICs2MjQsMTIgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5nUmVm
IGtleSwgSlNTdHJpbmdSZWYgdmFsdWUKICAgICBnX2ZyZWUoc3RyVmFsdWUpOwogfQogCi12b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwg
Ym9vbCBydW5BdFN0YXJ0KQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlw
dChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBhbGxGcmFtZXMpCiB7
CiAgICAgcHJpbnRmKCJMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdCBub3QgaW1w
bGVtZW50ZWQuXG4iKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0
eWxlU2hlZXQoSlNTdHJpbmdSZWYgc291cmNlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIGFsbEZyYW1lcykKIHsK
ICAgICBwcmludGYoIkxheW91dFRlc3RDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldCBub3Qg
aW1wbGVtZW50ZWQuXG4iKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCA5YjA0NGMzODU0Mjdi
Njc1YWJlNTE5ZGE5Y2EyNmU1YWExMzEwNTExLi5hZWM0YzE5NWY3YzdlOTFiZjI0MTNlODExNjkx
ZjU2ZDkwNzc1MDlkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC02MjcsMTggKzYyNywxOCBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYg
b3JpZW50YXRpb24sIEpTU3RyaW5nUgogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2Us
IGJvb2wgcnVuQXRTdGFydCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3Jp
cHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKQog
ewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291cmNlQ0YoQWRvcHRDRiwgSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc291cmNlKSk7CiAgICAgTlNTdHJpbmcg
KnNvdXJjZU5TID0gKE5TU3RyaW5nICopc291cmNlQ0YuZ2V0KCk7Ci0gICAgW1dlYlZpZXcgX2Fk
ZFVzZXJTY3JpcHRUb0dyb3VwOkAib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIgd29ybGQ6W1dl
YlNjcmlwdFdvcmxkIHdvcmxkXSBzb3VyY2U6c291cmNlTlMgdXJsOm5pbCB3aGl0ZWxpc3Q6bmls
IGJsYWNrbGlzdDpuaWwgaW5qZWN0aW9uVGltZToocnVuQXRTdGFydCA/IFdlYkluamVjdEF0RG9j
dW1lbnRTdGFydCA6IFdlYkluamVjdEF0RG9jdW1lbnRFbmQpXTsKKyAgICBbV2ViVmlldyBfYWRk
VXNlclNjcmlwdFRvR3JvdXA6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIiB3b3JsZDpbV2Vi
U2NyaXB0V29ybGQgd29ybGRdIHNvdXJjZTpzb3VyY2VOUyB1cmw6bmlsIHdoaXRlbGlzdDpuaWwg
YmxhY2tsaXN0Om5pbCBpbmplY3Rpb25UaW1lOihydW5BdFN0YXJ0ID8gV2ViSW5qZWN0QXREb2N1
bWVudFN0YXJ0IDogV2ViSW5qZWN0QXREb2N1bWVudEVuZCkgaW5qZWN0ZWRGcmFtZXM6KGFsbEZy
YW1lcyA/IFdlYkluamVjdEluQWxsRnJhbWVzIDogV2ViSW5qZWN0SW5Ub3BGcmFtZU9ubHkpXTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJp
bmdSZWYgc291cmNlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hl
ZXQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIGFsbEZyYW1lcykKIHsKICAgICBSZXRhaW5QdHI8
Q0ZTdHJpbmdSZWY+IHNvdXJjZUNGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHNvdXJjZSkpOwogICAgIE5TU3RyaW5nICpzb3VyY2VOUyA9IChOU1N0
cmluZyAqKXNvdXJjZUNGLmdldCgpOwotICAgIFtXZWJWaWV3IF9hZGRVc2VyU3R5bGVTaGVldFRv
R3JvdXA6QCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIiB3b3JsZDpbV2ViU2NyaXB0V29ybGQg
d29ybGRdIHNvdXJjZTpzb3VyY2VOUyB1cmw6bmlsIHdoaXRlbGlzdDpuaWwgYmxhY2tsaXN0Om5p
bF07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJraXQu
RHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3JpcHRXb3JsZCB3b3JsZF0gc291cmNlOnNvdXJj
ZU5TIHVybDpuaWwgd2hpdGVsaXN0Om5pbCBibGFja2xpc3Q6bmlsIGluamVjdGVkRnJhbWVzOihh
bGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5
KV07CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERldmVsb3BlckV4dHJhc0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZDk1NTUzOTk3NDk0
ZTMwOGZiY2RiZjcyYzg1MDc3NGEzNDBlOWQ5YS4uZGViNjhjOGQxYjg0YzllMjdkMDM5MzJmZDc2
MzFhY2NiYWZkN2VkMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMDM0LDcgKzEwMzQsNyBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdS
ZWYgb3JpZW50YXRpb24sIEpTU3RyaW5nUgogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAot
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3Vy
Y2UsIGJvb2wgcnVuQXRTdGFydCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJT
Y3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVz
KQogewogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXc7CiAgICAgaWYgKEZBSUxF
RChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191dWlkb2Yod2Vi
VmlldyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKQEAgLTEwNDgsNyAr
MTA0OCw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoSlNTdHJp
bmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQpCiB9CiAKIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdSZWYgc291cmNlKQordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoSlNTdHJpbmdSZWYgc291cmNlLCBi
b29sIGFsbEZyYW1lcykKIHsKICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3Owog
ICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2YoV2ViVmlldyksIDAs
IF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJndlYlZpZXcpKSkp
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwCmluZGV4IDUxMWViODFlYzU1ZmM0MTNjYzExYjU5YTUwOTViZmIyODQ1
M2RjYWMuLjM1N2UyZjAyN2FhZTBiZTUwNWY4NTc2MjE2OTBiNjk3ZGY0ZGYwZWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3gu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9s
bGVyV3guY3BwCkBAIC0zMjcsMTIgKzMyNywxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpvdmVycmlkZVByZWZlcmVuY2UoSlNTdHJpbmdSZWYgLyoga2V5ICovLCBKU1N0cmluZ1JlZgog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCkKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYgc291cmNlLCBi
b29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKQogewogICAgIHByaW50ZigiTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQgbm90IGltcGxlbWVudGVkLlxuIik7CiB9CiAKLXZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNv
dXJjZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KEpTU3Ry
aW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpCiB7CiAgICAgcHJpbnRmKCJMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQgbm90IGltcGxlbWVudGVkLlxuIik7CiB9Cg==
</data>
<flag name="review"
          id="48550"
          type_id="1"
          status="+"
          setter="timothy"
    />
    <flag name="commit-queue"
          id="48732"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>