<?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>224224</bug_id>
          
          <creation_ts>2021-04-05 23:08:10 -0700</creation_ts>
          <short_desc>WebKit is inconsistent about which side to place scrollbar on (with writing-mode &amp; direction CSS properties)</short_desc>
          <delta_ts>2021-04-16 17:35:54 -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>Layout and Rendering</component>
          <version>Safari 14</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://bugzilla.mozilla.org/attachment.cgi?id=9213617</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WPTImpact</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224409</dependson>
    
    <dependson>224468</dependson>
          <blocked>224357</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Holbert">dholbert</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>smoley</cc>
    
    <cc>twilco.o</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1747284</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Holbert">dholbert</who>
    <bug_when>2021-04-05 23:08:10 -0700</bug_when>
    <thetext>STR:
(1) View https://bugzilla.mozilla.org/attachment.cgi?id=9213617
(2) Look at the scrollbars inside the two black boxes. (you may have to manually scroll them to make the scrollbars show up, if you&apos;ve got overlay scrollbars.)

EXPECTED RESULTS:
The scrollbar should be on the same side of the two black boxes. (Both of these boxes have &quot;right-to-left&quot; content flows, via `direction:rtl` for the first one and via `vertical-rl` for the second one.)

In particular: I think the scrollbar should be on the **left side** for both boxes. (In both cases, the left side is the logical &quot;end&quot; side -- it&apos;s the inline-end edge of the the first box, and it&apos;s the block-end side for the second box.).

ACTUAL RESULTS:
Safari/WebKit places the scrollbar on the **right side** of the second box (the `vertical-rl` one).  This is the logical &quot;start&quot; side (specifically &quot;block-start&quot;), which is an odd place for a scrollbar.


I think this is the only case where Safari does this (where they place the scrollbar on a &quot;start&quot; side of a box).

Firefox gives EXPECTED RESULTS here.
Chrome matches Safari and gives ACTUAL RESULTS, but that&apos;s a Chrome bug, and it sounds like they&apos;re likely changing to match Firefox on this, per https://bugs.chromium.org/p/chromium/issues/detail?id=1195933#c6 . (That&apos;s the Chrome version of this issue.)

I tested this in Safari 14 on macOS Big Sur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747285</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Holbert">dholbert</who>
    <bug_when>2021-04-05 23:12:30 -0700</bug_when>
    <thetext>Note that there&apos;s a WPT test that inadvertently depends on this behavior (and fails in Firefox as a result), which is how I ran across cross-browser discrepancy:
https://wpt.fyi/results/css/css-flexbox/overflow-auto-005.html

I may end up fixing that WPT test over in https://bugzilla.mozilla.org/show_bug.cgi?id=1703074 , and/or it might get fixed as part of the bug report. Either way, it&apos;ll likely end up flipping its implicit expectation about scrollbar placement (which isn&apos;t really what it&apos;s intending to test anyway). (unless there&apos;s a case to be made that both behaviors are sensible, and if the text can be relaxed such that it allows both somehow)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747286</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Holbert">dholbert</who>
    <bug_when>2021-04-05 23:12:54 -0700</bug_when>
    <thetext>(In reply to Daniel Holbert from comment #1)
&gt; unless there&apos;s a case to be made that both
&gt; behaviors are sensible, and if the text can be relaxed such that it allows
&gt; both somehow)

Sorry, s/text/test/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747474</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-04-06 09:43:48 -0700</bug_when>
    <thetext>Seems like a bug, yeah.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748071</commentid>
    <comment_count>4</comment_count>
    <who name="Smoley">smoley</who>
    <bug_when>2021-04-07 14:41:40 -0700</bug_when>
    <thetext>I can reproduce this on Safari 13.1.2 as well as TOT 14.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748072</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-07 14:41:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/76366184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748230</commentid>
    <comment_count>6</comment_count>
      <attachid>425482</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 01:03:27 -0700</bug_when>
    <thetext>Created attachment 425482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748570</commentid>
    <comment_count>7</comment_count>
      <attachid>425568</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 18:45:47 -0700</bug_when>
    <thetext>Created attachment 425568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748596</commentid>
    <comment_count>8</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 20:59:23 -0700</bug_when>
    <thetext>(In reply to Daniel Holbert from comment #1)
&gt; Note that there&apos;s a WPT test that inadvertently depends on this behavior
&gt; (and fails in Firefox as a result), which is how I ran across cross-browser
&gt; discrepancy:
&gt; https://wpt.fyi/results/css/css-flexbox/overflow-auto-005.html
&gt; 
&gt; I may end up fixing that WPT test over in
&gt; https://bugzilla.mozilla.org/show_bug.cgi?id=1703074 , and/or it might get
&gt; fixed as part of the bug report. Either way, it&apos;ll likely end up flipping
&gt; its implicit expectation about scrollbar placement (which isn&apos;t really what
&gt; it&apos;s intending to test anyway). (unless there&apos;s a case to be made that both
&gt; behaviors are sensible, and if the text can be relaxed such that it allows
&gt; both somehow)

Hey Daniel, do you think css/css-writing-modes/sizing-orthog-vrl-in-htb-012.xht also needs fixing?  That&apos;s a case where the reference is using `writing-mode: vertical-rl` on the root, while the test itself has the default horizontal-tb.  But scrollbar position is not what&apos;s being tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748598</commentid>
    <comment_count>9</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 21:01:10 -0700</bug_when>
    <thetext>css/cssom-view/cssom-getBoundingClientRect-vertical-rl.html too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748604</commentid>
    <comment_count>10</comment_count>
      <attachid>425584</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 21:35:23 -0700</bug_when>
    <thetext>Created attachment 425584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748607</commentid>
    <comment_count>11</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-08 21:57:56 -0700</bug_when>
    <thetext>r?dholbert https://github.com/web-platform-tests/wpt/pull/28425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748731</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Holbert">dholbert</who>
    <bug_when>2021-04-09 08:32:34 -0700</bug_when>
    <thetext>Yeah, that seems fine (marked r+ in WPT repo).

It surprises me that Firefox places the scrollbars on the right side in those tests (I checked, and we do).  It seems the root scrollport is special for some reason; I&apos;m not sure if that&apos;s intentional or not.

But yeah, in any case, scrollbar-side-placement isn&apos;t what those testcases are trying to test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748739</commentid>
    <comment_count>13</comment_count>
    <who name="Daniel Holbert">dholbert</who>
    <bug_when>2021-04-09 08:54:14 -0700</bug_when>
    <thetext>I filed https://bugzilla.mozilla.org/show_bug.cgi?id=1704122 on the fact that Firefox seems to have special right-side-scrollbars-only behavior on the root element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749050</commentid>
    <comment_count>14</comment_count>
      <attachid>425694</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-10 19:02:07 -0700</bug_when>
    <thetext>Created attachment 425694
Squashed patch with dependencies for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749523</commentid>
    <comment_count>15</comment_count>
      <attachid>425831</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-12 21:41:26 -0700</bug_when>
    <thetext>Created attachment 425831
Squashed patch with dependencies for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749535</commentid>
    <comment_count>16</comment_count>
      <attachid>425835</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-12 22:33:35 -0700</bug_when>
    <thetext>Created attachment 425835
Squashed patch with dependencies for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749552</commentid>
    <comment_count>17</comment_count>
      <attachid>425839</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-12 23:21:34 -0700</bug_when>
    <thetext>Created attachment 425839
Squashed patch with dependencies for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749938</commentid>
    <comment_count>18</comment_count>
      <attachid>425931</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-13 16:47:32 -0700</bug_when>
    <thetext>Created attachment 425931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749945</commentid>
    <comment_count>19</comment_count>
      <attachid>425934</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-13 17:25:33 -0700</bug_when>
    <thetext>Created attachment 425934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750011</commentid>
    <comment_count>20</comment_count>
      <attachid>425953</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-13 22:42:54 -0700</bug_when>
    <thetext>Created attachment 425953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750537</commentid>
    <comment_count>21</comment_count>
      <attachid>426087</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-15 02:01:19 -0700</bug_when>
    <thetext>Created attachment 426087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750776</commentid>
    <comment_count>22</comment_count>
      <attachid>426137</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-15 14:11:24 -0700</bug_when>
    <thetext>Created attachment 426137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750878</commentid>
    <comment_count>23</comment_count>
      <attachid>426168</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-04-15 18:08:12 -0700</bug_when>
    <thetext>Created attachment 426168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751323</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-16 16:55:24 -0700</bug_when>
    <thetext>Committed r276182 (236665@main): &lt;https://commits.webkit.org/236665@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426168.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751331</commentid>
    <comment_count>25</comment_count>
    <who name="Tyler Wilcock">twilco.o</who>
    <bug_when>2021-04-16 17:26:55 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751332</commentid>
    <comment_count>26</comment_count>
      <attachid>426296</attachid>
    <who name="Tyler Wilcock">twilco.o</who>
    <bug_when>2021-04-16 17:26:58 -0700</bug_when>
    <thetext>Created attachment 426296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751333</commentid>
    <comment_count>27</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-04-16 17:27:46 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751341</commentid>
    <comment_count>28</comment_count>
    <who name="Tyler Wilcock">twilco.o</who>
    <bug_when>2021-04-16 17:34:48 -0700</bug_when>
    <thetext>Sorry, not sure why `webkit-patch` uploaded to this bug.  Closing again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425482</attachid>
            <date>2021-04-08 01:03:27 -0700</date>
            <delta_ts>2021-04-08 18:45:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210408180325.patch</filename>
            <type>text/plain</type>
            <size>50320</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhlOGMxNzQyNjZhZjFi
ZjQyM2ZkOTFmMzAyNDRlNGE3NjdhNzBiMC4uY2I1NzgyNGRmODc0MThhZWYxMjg5MmU1MGExOGE3
YzI4YmU2NGVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTA0LTA4ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAg
ICAgICAgV2UgY3VycmVudGx5IG9ubHkgY29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xs
YmFyIHRvIHRoZSBsZWZ0IGZvcgorICAgICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0
YixidH07IGRpcmVjdGlvbjogcnRsYCBjb250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3
ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBl
ZGdlCisgICAgICAgIG9mIHRoZSBjb250YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUt
ZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQorICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwg
b3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3Jp
dGluZyBtb2RlKS4KKworICAgICAgICBTb21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGlu
ZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3Rl
YWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hldGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9u
IHRoZQorICAgICAgICBsZWZ0LCBub3Qgd2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9s
bGJhciBpcyBvbiB0aGUgbGVmdCAoc2luY2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcg
bW9kZXMsIHRoZSBibG9jayBkaXJlY3Rpb24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jp
em9udGFsIG9uZSBvbiB0aGUgYm90dG9tKS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAg
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBm
b3IKKyAgICAgICAgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxl
cnMgdGhhdCByZWFsbHkgZG8gY2FyZQorICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlv
biBzY3JvbGxiYXJzIHRvIGFkZGl0aW9uYWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5n
IG1vZGUuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0
YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVBZHdhaXRhOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29u
dGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxv
Z2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJv
eFJlY3QgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29t
cHV0ZVNjcm9sbERpbWVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0wMy0zMCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgR2VuZXJhbGl6ZSBDb2xvckNvbXBvbmVu
dHMgdG8gc3VwcG9ydCBhbiBhcmJyaXRyYXJ5IG51bWJlciBvZiBjb21wb25lbnRzICh0aG91Z2gg
cmVhbGx5IHdlIHdpbGwgb25seSBldmVyIHdhbnQgMywgNCwgb3IgNSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmIy
NmQ0ZDM2NWZkMTJmYmZhN2MxNmE2NDAxMTU1YmVlMWJlYjNmMy4uZjQ4ZTU3ZmZmYjM2NjAwOGIz
OWJkMDQ1NmJlZWIzYzhjOGY1YjU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0w
NC0wOCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBs
YWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxs
IHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTAzLTMwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIEFkZCAiQ29kZUNv
bXBsZXRlIiBhdHRyaWJ1dGUgdG8gc29tZSBmZWF0dXJlIGZsYWdzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggYzgzMWY4MmMzNTYxZTIwYmQ4NTU0OTY3YWZlMmYzNTUxYzVk
ZWUzZS4uNmI4YmVhODRjYTBjMDZhYzY4MzQzMWE1ZGE4MzIwZGI4MGUyODgyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTUxNCw3ICsxNTE0LDcgQEAgT3B0aW9uYWw8
Q3Vyc29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGJvb2wgc2gKICAgICAgICAgICAgIGF1dG8mIGxheWVyUmVuZGVyZXIgPSBkb3duY2Fz
dDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqcmVuZGVyZXIpOwogICAgICAgICAgICAgaW5SZXNp
emVyID0gbGF5ZXJSZW5kZXJlci5sYXllcigpLT5pc1BvaW50SW5SZXNpemVDb250cm9sKHJvdW5k
ZWRJbnRQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKSk7CiAgICAgICAgICAgICBpZiAoaW5SZXNp
emVyKQotICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpIDog
c291dGhFYXN0UmVzaXplQ3Vyc29yKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGxheWVyUmVu
ZGVyZXIuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gc291dGhXZXN0UmVz
aXplQ3Vyc29yKCkgOiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICgoZWRpdGFibGUgfHwgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc1RleHQoKSAmJiBu
b2RlLT5jYW5TdGFydFNlbGVjdGlvbigpKSkgJiYgIWluUmVzaXplciAmJiAhcmVzdWx0LnNjcm9s
bGJhcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGM1OTE3ZmY5YWE3YzIyZTkw
ZTU2NzExZjg0YmUxMTI0OTQ3Yzg2NTkuLjAyMTdkMzQyYmY4ZjNiY2MxYjk4YTRlOWY1NTQ5OGQ1
YjI3YzUxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU1NTMsOSArNTU1Myw5
IEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkg
Y29uc3QKICAgICByZXR1cm4geyAqdmlld3BvcnRTaXplLndpZHRoLCAqdmlld3BvcnRTaXplLmhl
aWdodCB9OwogfQogCi1ib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0Citib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJlbmRlclZpZXcoKSAmJiBy
ZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsK
KyAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBGcmFtZVZpZXcmIHZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApp
bmRleCAwNmFlM2E0NzExMGM1NzQ3MDMzMGZmOTU5Y2UzYzhmYjNmM2Y2NWNiLi5mNGE2MDc4ZTky
NjdhYzQzZmE0MzFmNWY5ZWM4NjdlOTkyMTJlMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
QEAgLTY1NSw3ICs2NTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAgICAg
dm9pZCBoaWRlKCkgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZGlkUmVzdG9yZUZy
b21CYWNrRm9yd2FyZENhY2hlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKaW5kZXggOGU2YjNhYWI1OThhMzc0YzcxMzI0MzZmOGIyMTRiMWE4M2NmNjU0YS4uZWRmMDU0
ODZiMTY5MzBlZWZhYWViZTAzZTUwMmYxMDU1MjAzNGIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAKQEAgLTQyMiw3ICs0MjIsNyBAQCBTY3JvbGxQb3NpdGlvbiBTY3Jv
bGxWaWV3OjphZGp1c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdlKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJgogU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJl
bGF0aXZlVG9WaWV3T3JpZ2luKCkgY29uc3QKIHsKICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24o
KSAtIEludFNpemUoCi0gICAgICAgIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2Nj
dXBpZWRXaWR0aCgpIDogMCwKKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1
cGllZFdpZHRoKCkgOiAwLAogICAgICAgICBoZWFkZXJIZWlnaHQoKSArIHRvcENvbnRlbnRJbnNl
dChUb3BDb250ZW50SW5zZXRUeXBlOjpXZWJDb3JlT3JQbGF0Zm9ybUNvbnRlbnRJbnNldCkpOwog
fQogCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJz
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1faG9yaXpv
bnRhbFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50V2lkdGggPSB2aXNpYmxlV2lkdGgo
KTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkpOwotICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNj
cm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKKyAgICAgICAgSW50UmVjdCBoQmFyUmVjdChz
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJh
ciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCiAgICAgICAgICAg
ICBoZWlnaHQoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCksCiAgICAgICAgICAg
ICB3aWR0aCgpIC0gKG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5v
Y2N1cGllZFdpZHRoKCkgOiAwKSwKICAgICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+
aGVpZ2h0KCkpOwpAQCAtNzUxLDcgKzc1MSw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgZGVzaXJlZFBvc2l0aW9uKQogICAgIGlmICht
X3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGllbnRIZWlnaHQgPSB2aXNpYmxl
SGVpZ2h0KCk7CiAgICAgICAgIEludFJlY3Qgb2xkUmVjdChtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5m
cmFtZVJlY3QoKSk7Ci0gICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xs
YmFyLT53aWR0aCgpLAorICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+
d2lkdGgoKSwKICAgICAgICAgICAgIHRvcENvbnRlbnRJbnNldCgpLAogICAgICAgICAgICAgbV92
ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdodCgpIC0gdG9wQ29u
dGVudEluc2V0KCkgLSAobV9ob3Jpem9udGFsU2Nyb2xsYmFyID8gbV9ob3Jpem9udGFsU2Nyb2xs
YmFyLT5vY2N1cGllZEhlaWdodCgpIDogMCkpOwpAQCAtMTE3OSwxNCArMTE3OSwxNCBAQCBJbnRS
ZWN0IFNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdAogICAgIGludCBoZWlnaHRU
cmFja2VkQnlTY3JvbGxiYXIgPSBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNldCgpOwogCiAgICAg
aWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiB3aWR0aCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xs
YmFyLT53aWR0aCgpID4gMCkgewotICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRh
bFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3Jv
bGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHQoKSAtIG1faG9yaXpvbnRhbFNjcm9s
bGJhci0+aGVpZ2h0KCksCiAgICAgICAgICAgICB3aWR0aCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xs
YmFyLT53aWR0aCgpLAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQo
KSkpOwogICAgIH0KIAogICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyICYmIGhlaWdodFRyYWNr
ZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpID4gMCkgewotICAg
ICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0
aCgpLAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgKyB0b3BD
b250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICBoZWlnaHRUcmFja2VkQnlTY3JvbGxiYXIgLSBtX3ZlcnRpY2FsU2Nyb2xs
YmFyLT5oZWlnaHQoKSkpOwpAQCAtMTUzOCw3ICsxNTM4LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpz
dHlsZUFuZFJlbmRlclRyZWVEaWRDaGFuZ2UoKQogSW50UG9pbnQgU2Nyb2xsVmlldzo6bG9jYXRp
b25PZkNvbnRlbnRzKCkgY29uc3QKIHsKICAgICBJbnRQb2ludCByZXN1bHQgPSBsb2NhdGlvbigp
OwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
bV92ZXJ0aWNhbFNjcm9sbGJhcikKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIpCiAgICAgICAgIHJlc3VsdC5tb3ZlKG1f
dmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSwgMCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDdlYjdi
NTQwMjgyODQwYWI3YjVmMzFmZGZhNmIyYmZkNThlYjE5ZGMuLmMwYTg5MmZlMTEwNTJkNWIwZDE1
ZGY1MTNjYzc5NTc0MjgzNTgxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaApAQCAtMzQyLDcgKzM0Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdXNl
c01vY2tTY3JvbGxBbmltYXRvcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCB2b2lkIGxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3QgU3RyaW5nJikgY29uc3Qg
eyB9OwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCA9IDA7CiAgICAgCiAgICAgdmlydHVhbCBTdHJpbmcg
ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCmluZGV4IDRi
NzIxNTRiYTFlMmI3YzA2MWU5Y2ViNDU5ZjRjYzU1MGVhZTVkNDIuLjg3YmE0YWQ5NTVlOGY0NDg1
ZWFjZWU5NzkzN2Q5YzM4YmNhM2ZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKQEAgLTEyNyw3ICsx
MjcsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3Jv
bGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogCiAgICAgICAgIEludFJlY3QgZnJhbWUg
PSByZWN0OwogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxT
Y3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5z
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBp
ZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIGZyYW1lLm1vdmUoZnJhbWUud2lkdGgoKSAtIGhv
dmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCAwKTsKICAgICAgICAgICAgIGZyYW1lLnNldFdpZHRo
KGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplKTsKICAgICAgICAgfSBlbHNlCkBAIC0xNDAsNyAr
MTQwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Ny
b2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWMKICAgICBJbnRSZWN0IHRodW1iID0gcmVj
dDsKICAgICBpZiAoc2Nyb2xsYmFyLmhvdmVyZWRQYXJ0KCkgPT0gTm9QYXJ0ICYmIHVzZXNPdmVy
bGF5U2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9
PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShob3ZlcmVk
U2Nyb2xsYmFyQm9yZGVyU2l6ZSwgdGh1bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChv
dmVybGF5VGh1bWJTaXplICsgdGh1bWJCb3JkZXJTaXplKSArIGhvdmVyZWRTY3JvbGxiYXJCb3Jk
ZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CkBAIC0xNTMsNyArMTUzLDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
cmFwaGljc0NvbnRleHQmIGdyYXBoaWMKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAg
IGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAg
ICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAg
ICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKHNjcm9sbGJhclNpemUgLyAy
ICsgdGh1bWJTaXplIC8gMikgLSBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwgdGh1bWJQb3Mg
KyB0aHVtYkJvcmRlclNpemUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRo
dW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1iU2l6ZSAv
IDIpLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAppbmRleCBmZTU1NThjMzU4NDdhODdj
ZjI3MTYwODE1N2YzZWZlY2Q2ODRhN2IwLi4yODk2YzdmM2IwZDI3OGRiMDliODAwOTM0NzNmYjZi
ZmE4ZmMyMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
YmFyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxi
YXJUaGVtZUd0ay5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMgR3RrU3RhdGVGbGFncyBz
Y3JvbGxiYXJQYXJ0U3RhdGVGbGFncyhTY3JvbGxiYXImIHNjcm9sbGJhciwgU2Nyb2xsYmFyUGFy
dAogc3RhdGljIFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlIHdpZGdldFR5cGVGb3JTY3JvbGxi
YXIoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFyU3RhdGUpCiB7
CiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7
Ci0gICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xs
YWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAg
ICAgICByZXR1cm4gc2Nyb2xsYmFyU3RhdGUgJiBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVCA/IFJl
bmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbGJhckxlZnQgOiBSZW5kZXJU
aGVtZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJbmRpY2F0b3JMZWZ0OwogICAgICAg
ICByZXR1cm4gc2Nyb2xsYmFyU3RhdGUgJiBHVEtfU1RBVEVfRkxBR19QUkVMSUdIVCA/IFJlbmRl
clRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbGJhclJpZ2h0IDogUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9yUmlnaHQ7CiAgICAgfQpA
QCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50KFNjcm9sbGJh
ciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29uCiAgICAgLy8gZHJhd2lu
ZyB0aGUgaW5kaWNhdG9yIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSByZWN0YW5nbGUgdG8gaXRzIGFj
dHVhbCBzaXplIGluIGluZGljYXRvciBtb2RlLgogICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRp
b24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewogICAgICAgICBpZiAocmVjdC53aWR0aCgpICE9
IHByZWZlcnJlZFNpemUud2lkdGgoKSkgewotICAgICAgICAgICAgaWYgKCFzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkp
CisgICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNl
VmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICBjb250ZW50c1JlY3Qu
bW92ZShzdGQ6OmFicyhyZWN0LndpZHRoKCkgLSBwcmVmZXJyZWRTaXplLndpZHRoKCkpLCAwKTsK
ICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5zZXRXaWR0aChwcmVmZXJyZWRTaXplLndpZHRoKCkp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFy
VGhlbWVNYWMubW0KaW5kZXggYmQwNjE1ZjIyZDM1ODYyMDRjYmJhMGU3OGIyYTI0MjdmYmExN2Yw
YS4uNTM5NjFhN2I3MjA0MDFmNzJlMjI0NWNiYjRlMjFiNzY3OTVhZDcwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQpAQCAtMTU5LDcg
KzE1OSw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0ZVNjcm9sbGVySW1wKFNj
cm9sbGJhciYgc2Nyb2xsYmFyKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBOU1Njcm9sbGVySW1w
ICpzY3JvbGxlckltcCA9IHBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKICAgICBBU1NF
UlQoc2Nyb2xsZXJJbXApOwotICAgIHNjcm9sbGVySW1wLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24gPSBzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdo
dFRvTGVmdCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0OworICAg
IHNjcm9sbGVySW1wLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gPSBzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBOU1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdCA6IE5TVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xs
YmFyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5o
CmluZGV4IDdkNTdkYWE5Y2RmYTgxYzRlNWQ3NTdhNmNiNjVjNTA0NDQzOTc1ZTEuLjcyZTBlNWNm
ODhmNTJlZGYzMzAxOWVhMTY5Y2IyYjEzNjFiZjZjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAg
IEludFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UmVjdCBzY3Jv
bGxhYmxlQXJlYUJvdW5kaW5nQm94KGJvb2wqID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRl
c3RpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5PVEU6IFRoaXMgc2hvdWxk
IG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZW4gc2V0U2Nyb2xsT2Zmc2V0IGZyb20gU2Ny
b2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQgb2Zmc2V0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDgwMTQwODUyNThmYTdhMmM4NDAwMjY2
YTQ3MmQzNjliMDU1ZDAxZDYuLjVjY2NhZTZkYTk1MmQxZWMzODYyNjI2MTM3M2I3YWU0OWU2Y2Mz
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMTkwMiw3
ICsxOTAyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6dGV4dEluZGVudE9mZnNldCgpIGNv
bnN0CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQo
UmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVu
aXQgbG9naWNhbExlZnRPZmZzZXQgPSBzdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIDogYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9w
KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkK
KyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIGxvZ2ljYWxMZWZ0T2Zmc2V0ICs9IHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgoKTsKICAgICBpZiAoIWZyYWdtZW50KQogICAgICAgICByZXR1cm4gbG9n
aWNhbExlZnRPZmZzZXQ7CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJs
b2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQoUmVuZGVyRnJhZ21lbnRDb250YWluZXIq
IGZyYQogTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVu
dChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0
VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXQgPSBzdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIDogYm9yZGVyVG9wKCkgKyBwYWRkaW5n
VG9wKCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIGxvZ2ljYWxSaWdodE9mZnNldCArPSB2ZXJ0
aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCgpOwogICAgIGlmICghZnJhZ21lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDRkNDI0MzQzYWE2M2JjNGU1NmQ3ZWNj
OTkyZTBjYTE3ZDhhYmZjMDQuLjcwN2Y1MWI2Nzc1YmFkZmM5YjU2NjE3NTIxZmUwZGM0NjY0NDYw
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBA
IC04ODMsNyArODgzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zsb3c6Om1hcmdpbk9mZnNl
dEZvclNlbGZDb2xsYXBzaW5nQmxvY2soKQogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWlu
ZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChSZW5kZXJCb3gmIGNoaWxkLCBBcHBseUxheW91
dERlbHRhTW9kZSBhcHBseURlbHRhKQogewogICAgIExheW91dFVuaXQgc3RhcnRQb3NpdGlvbiA9
IGJvcmRlclN0YXJ0KCkgKyBwYWRkaW5nU3RhcnQoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAg
c3RhcnRQb3NpdGlvbiArPSAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyAxIDog
LTEpICogdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIExheW91dFVuaXQgdG90YWxBdmFp
bGFibGVMb2dpY2FsV2lkdGggPSBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCkgKyBhdmFp
bGFibGVMb2dpY2FsV2lkdGgoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCAzZjMyNDY2ZGFmYjVmOGU3MjFkNWNkMTI5NzAxZWMwMzQ3ZTVlMzY3Li40ZjZhYTBi
NmEzN2Q1OGVhNWZhMDBkZmIxMDM5MmU0OTFkMTY2ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtNzIyLDcgKzcyMiw3IEBAIFJvdW5kZWRSZWN0IFJlbmRlckJv
eDo6cm91bmRlZEJvcmRlckJveFJlY3QoKSBjb25zdAogTGF5b3V0UmVjdCBSZW5kZXJCb3g6OnBh
ZGRpbmdCb3hSZWN0KCkgY29uc3QKIHsKICAgICBhdXRvIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgg
PSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBvZmZzZXRG
b3JTY3JvbGxiYXIgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
PyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoIDogMDsKKyAgICBMYXlvdXRVbml0IG9mZnNldEZvclNj
cm9sbGJhciA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGggOiAwOwogCiAgICAgcmV0dXJuIExheW91dFJlY3QoYm9yZGVyTGVmdCgp
ICsgb2Zmc2V0Rm9yU2Nyb2xsYmFyLCBib3JkZXJUb3AoKSwKICAgICAgICAgd2lkdGgoKSAtIGJv
cmRlckxlZnQoKSAtIGJvcmRlclJpZ2h0KCkgLSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoLApAQCAt
NzM2LDcgKzczNiw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpjb250ZW50Qm94UmVjdCgpIGNv
bnN0CiAKIExheW91dFBvaW50IFJlbmRlckJveDo6Y29udGVudEJveExvY2F0aW9uKCkgY29uc3QK
IHsKLSAgICBMYXlvdXRVbml0IHNjcm9sbGJhclNwYWNlID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIDogMDsKKyAg
ICBMYXlvdXRVbml0IHNjcm9sbGJhclNwYWNlID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIDogMDsKICAgICByZXR1cm4geyBi
b3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyU3BhY2UsIGJvcmRlclRvcCgp
ICsgcGFkZGluZ1RvcCgpIH07CiB9CiAKQEAgLTE5NjQsNyArMTk2NCw3IEBAIExheW91dFJlY3Qg
UmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwg
UmVuZGVyRnJhZ21lCiAKICAgICAvLyBTdWJ0cmFjdCBvdXQgc2Nyb2xsYmFycyBpZiB3ZSBoYXZl
IHRoZW0uCiAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gbGF5ZXIoKSA/IGxheWVyKCkt
PnNjcm9sbGFibGVBcmVhKCkgOiBudWxscHRyKSB7Ci0gICAgICAgIGlmIChzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIGlmIChzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICBjbGlwUmVjdC5tb3ZlKHNjcm9s
bGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSksIDApOwogICAgICAg
ICBjbGlwUmVjdC5jb250cmFjdChzY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0
aChyZWxldmFuY3kpLCBzY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodChy
ZWxldmFuY3kpKTsKICAgICB9CkBAIC0zNzU4LDcgKzM3NTgsOCBAQCB2b2lkIFJlbmRlckJveDo6
Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGgoTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVz
JiBjb21wdQogICAgIGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50ICs9IGJvcmRlcnNQbHVzUGFkZGlu
ZzsKICAgICBpZiAoaXM8UmVuZGVyQm94Pihjb250YWluZXJCbG9jaykpIHsKICAgICAgICAgYXV0
byYgY29udGFpbmluZ0JveCA9IGRvd25jYXN0PFJlbmRlckJveD4oY29udGFpbmVyQmxvY2spOwot
ICAgICAgICBpZiAoY29udGFpbmluZ0JveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkpCisgICAgICAgIC8vIEZJWE1FOiBPbmx5IGlmIHZlcnRpY2FsIHNjcm9sbGJh
ciBpcyBhIGJsb2NrIHNjcm9sbGJhcj8KKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0ZWRWYWx1
ZXMubV9wb3NpdGlvbiArPSBjb250YWluaW5nQm94LnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsK
ICAgICB9CiAgICAgCkBAIC00OTc5LDcgKzQ5ODAsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6
ZmxpcHBlZENsaWVudEJveFJlY3QoKSBjb25zdAogICAgIGZsaXBGb3JXcml0aW5nTW9kZShyZWN0
KTsKICAgICAvLyBTdWJ0cmFjdCBzcGFjZSBvY2N1cGllZCBieSBzY3JvbGxiYXJzLiBUaGV5IGFy
ZSBhdCB0aGVpciBwaHlzaWNhbCBlZGdlIGluIHRoaXMgY29vcmRpbmF0ZQogICAgIC8vIHN5c3Rl
bSwgc28gb3JkZXIgaXMgaW1wb3J0YW50IGhlcmU6IGZpcnN0IGZsaXAsIHRoZW4gc3VidHJhY3Qg
c2Nyb2xsYmFycy4KLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmVjdC5tb3ZlKHZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKSwgMCk7CiAgICAgcmVjdC5jb250cmFjdCh2ZXJ0aWNhbFNjcm9sbGJhcldp
ZHRoKCksIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSk7CiAgICAgcmV0dXJuIHJlY3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApp
bmRleCAwODYxYjc1ZDdlYmNjYjE3NWUwNzNiNGE4YjE1ODg1NzI1NTlkOTBlLi5jODA5YTcwZTBi
ZDg1NDk1ZTc5MzYzMmM5MmI2Yjc0OTY4NzdlZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTU1NSw3ICs1NTUsNyBAQCBG
bG9hdFJlY3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmluZ1JlY3RGb3JTdGlja3lQ
b3NpdGlvbigpIGNvbnN0CiAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBGbG9hdFBvaW50KCkg
KyBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsT2Zmc2V0KCk7CiAKICAgICAgICAgZmxvYXQgc2Nyb2xs
YmFyT2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKGVuY2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVy
KCkgJiYgZW5jbG9zaW5nQ2xpcHBpbmdCb3guc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpICYmIHNjcm9sbGFibGVBcmVhKQorICAgICAgICBpZiAoZW5jbG9zaW5nQ2xp
cHBpbmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCiAgICAgICAgICAgICBz
Y3JvbGxiYXJPZmZzZXQgPSBzY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChJ
Z25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSk7CiAKICAgICAgICAgY29uc3RyYWluaW5nUmVjdC5z
ZXRMb2NhdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldC54KCkgKyBzY3JvbGxiYXJPZmZzZXQs
IHNjcm9sbE9mZnNldC55KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IDg0NzQ3MzAyNWViZjA2YjQ2MGIwM2Y4N2ZlODNjMzYzOTMxMzJhNjguLjBhOGRk
NDZlYjJkY2RhYzk0YTA5NTM4YTEwMGM5YWFiODIxZDg0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjQwNCw5ICsyNDA0LDEwIEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0
LCBib29sIGluc2lkCiAgICAgICAgIC8vIGJvcmRlciBlZGdlLiBNYWtlIHRoZSByZWN0YW5nbGUg
cmVsYXRpdmUgdG8gdGhlIHNjcm9sbGFibGUgYXJlYS4KICAgICAgICAgbG9jYWxFeHBvc2VSZWN0
Lm1vdmVCeSgtTGF5b3V0UG9pbnQoYm94LT5ib3JkZXJMZWZ0KCksIGJveC0+Ym9yZGVyVG9wKCkp
KTsKIAotICAgICAgICBpZiAoYm94LT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkpIHsKLSAgICAgICAgICAgIC8vIEZvciBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1t
b2RlOiBob3Jpem9udGFsLXRiIGJveCwgdGhlIHNjcm9sbCBiYXIgaXMgb24gdGhlIGxlZnQgc2lk
ZS4gVGhlIHZpc2libGUgcmVjdAotICAgICAgICAgICAgLy8gc3RhcnRzIGZyb20gdGhlIHJpZ2h0
IHNpZGUgb2Ygc2Nyb2xsIGJhci4gU28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBz
dGFydCBmcm9tIHRoZSBzYW1lIHBvc2l0aW9uIHRvby4KKyAgICAgICAgaWYgKGJveC0+c2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgICAgICAgICAvLyBGb3IgYGRp
cmVjdGlvbjogcnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwte3RiLGJ0fWAgYW5kIGB3cml0
aW5nLW1vZGU6IHZlcnRpY2FsLXJsYAorICAgICAgICAgICAgLy8gYm94ZXMsIHRoZSBzY3JvbGwg
YmFyIGlzIG9uIHRoZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3Qgc3RhcnRzIGZyb20gdGhl
IHJpZ2h0IHNpZGUKKyAgICAgICAgICAgIC8vIG9mIHRoZSBzY3JvbGwgYmFyLiBTbyB0aGUgeCBv
ZiBsb2NhbEV4cG9zZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9v
LgogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmVCeShMYXlvdXRQb2ludCgtc2Nyb2xs
YWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCkpOwogICAgICAgICB9CiAgICAg
ICAgIExheW91dFJlY3QgbGF5ZXJCb3VuZHMoMF9sdSwgMF9sdSwgYm94LT5jbGllbnRXaWR0aCgp
LCBib3gtPmNsaWVudEhlaWdodCgpKTsKQEAgLTI2NTAsNyArMjY1MSw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnJlc2l6ZShjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2dCwgY29uc3QgTGF5b3V0
U2l6ZSYgb2xkT2ZmCiAgICAgZWxlbWVudC0+c2V0TWluaW11bVNpemVGb3JSZXNpemluZyhtaW5p
bXVtU2l6ZSk7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZE9sZE9mZnNldCA9IExheW91
dFNpemUob2xkT2Zmc2V0LndpZHRoKCkgLyB6b29tRmFjdG9yLCBvbGRPZmZzZXQuaGVpZ2h0KCkg
LyB6b29tRmFjdG9yKTsKLSAgICBpZiAocmVuZGVyZXItPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSkgeworICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAgIG5ld09mZnNldC5zZXRXaWR0aCgtbmV3
T2Zmc2V0LndpZHRoKCkpOwogICAgICAgICBhZGp1c3RlZE9sZE9mZnNldC5zZXRXaWR0aCgtYWRq
dXN0ZWRPbGRPZmZzZXQud2lkdGgoKSk7CiAgICAgfQpAQCAtMjcwNyw3ICsyNzA4LDcgQEAgUmVu
ZGVyTGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVyOjpvdmVyZmxvd0NvbnRy
b2xzUmVjdHMoKSBjb25zdAogICAgIC8vIFNjcm9sbGJhcnMgc2l0IGluc2lkZSB0aGUgYm9yZGVy
IGJveC4KICAgICBhdXRvIG92ZXJmbG93Q29udHJvbHNQb3NpdGlvbmluZ1JlY3QgPSBzbmFwcGVk
SW50UmVjdChyZW5kZXJCb3gucGFkZGluZ0JveFJlY3RJbmNsdWRpbmdTY3JvbGxiYXIoKSk7CiAK
LSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSByZW5kZXJCb3guc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIGJvb2wgcGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHJlbmRlckJveC5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgYm9vbCBoYXZlUmVzaXplciA9IHJlbmRlcmVyKCkuc3R5
bGUoKS5yZXNpemUoKSAhPSBSZXNpemU6Ok5vbmU7CiAKICAgICBPdmVyZmxvd0NvbnRyb2xSZWN0
cyByZXN1bHQ7CkBAIC0yNzYwLDcgKzI3NjEsNyBAQCBTdHJpbmcgUmVuZGVyTGF5ZXI6OmRlYnVn
RGVzY3JpcHRpb24oKSBjb25zdAogSW50U2l6ZSBSZW5kZXJMYXllcjo6b2Zmc2V0RnJvbVJlc2l6
ZUNvcm5lcihjb25zdCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QKIHsKICAgICBhdXRvIHJl
c2l6ZXJSZWN0ID0gb3ZlcmZsb3dDb250cm9sc1JlY3RzKCkucmVzaXplcjsKLSAgICBhdXRvIHJl
c2l6ZUNvcm5lciA9IHJlbmRlcmVyKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJh
ck9uTGVmdCgpID8gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKSA6IHJlc2l6ZXJSZWN0Lm1h
eFhNYXhZQ29ybmVyKCk7CisgICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29y
bmVyKCkgOiByZXNpemVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOwogICAgIHJldHVybiBsb2NhbFBv
aW50IC0gcmVzaXplQ29ybmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDg4NTVmOGI0N2QwZWNiZTg4NDEwODMx
ZmM3MWU4NTAwYWJkOTk3NjIuLjlhN2Y1ZjJmMmJmNjNhNjZmODVlMDkxZjhhZGNmMTVkOWFhZTll
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCkBAIC0yMjMxLDcgKzIyMzEsNyBAQCBGbG9hdFBvaW50IFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdAogICAgIGF1dG8mIGZyYW1lVmll
dyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKIAogICAgIHJldHVybiBGbG9hdFBvaW50KAot
ICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSA6IDAsCisgICAg
ICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBmcmFt
ZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIDogMCwKICAgICAgICAgRnJhbWVW
aWV3Ojp5UG9zaXRpb25Gb3JJbnNldENsaXBMYXllcihmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24o
KSwgZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCA2YjdjYWZj
ODIwOWQyYWJlMDAzMWIzZDMxNGIyMmNhODZkOTRlNWMxLi5mNjQzNzhjNDJiMDQxMzYyM2JjZTNk
YjI1NTZhYzNiZjUzMDlmZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3QKICNlbmRpZgogfQogCi1ib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6
OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QKIHsKIC8vIFJUTCBTY3JvbGxiYXJzIHJlcXVpcmUgc29tZSBzeXN0ZW0gc3VwcG9y
dCwgYW5kIHRoaXMgc3lzdGVtIHN1cHBvcnQgZG9lcyBub3QgZXhpc3Qgb24gY2VydGFpbiB2ZXJz
aW9ucyBvZiBPUyBYLiBpT1MgdXNlcyBhIHNlcGFyYXRlIG1lY2hhbmlzbS4KICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQpAQCAtMjI2LDEyICsyMjYsMTIgQEAgYm9vbCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QK
ICNlbHNlCiAgICAgc3dpdGNoIChzZXR0aW5ncygpLnVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3koKSkgewogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6Q29udGVudDoK
LSAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJh
ck9uTGVmdCgpOworICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OjpT
eXN0ZW06CiAgICAgICAgIHJldHVybiBzZXR0aW5ncygpLnN5c3RlbUxheW91dERpcmVjdGlvbigp
ID09IFRleHREaXJlY3Rpb246OlJUTDsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpOworICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuaAppbmRleCBiZjZjNDJhM2Y0NWY2YTYwOWM1ZDQyNjMzZjVi
Y2JiNDFhY2Q2ZWI3Li5jYTE0ZDdlMGFhMDRmOTBjNjVkY2NkNjdkYWE0YTA1MzZlNDQ1ODYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xs
YWJsZU9yUnViYmVyYmFuZGFibGVCb3goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Q7Cisg
ICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Q7CiAgICAg
CiAgICAgdm9pZCBjb21wdXRlUmVwYWludExheW91dFJlY3RzKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKiA9IG51
bGxwdHIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYjZiN2FiMGEyMTI1MjRlZmU4N2FjMzdlYWRjYmUx
MjAwN2NjNWU2NS4uNTI1NDczMTVlZjYwYTRmOWU5OGI1OTc0YTZmYzUzMjZlNzdhNGMwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhLmNwcApAQCAtMTE5LDkgKzExOSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYTo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKICAgICBlbGVtZW50LT5zZXRTYXZlZExheWVy
U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoKSk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYTo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0
Citib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiBtX2xheWVyLnJlbmRlcmVyKCkuc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVybiBtX2xh
eWVyLnJlbmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogfQog
CiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC02NTQsNyArNjU0LDcgQEAgUmVuZGVy
TGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6Om92
ZXJmbG93Q29udHJvbHNSZWMKIAogICAgIGJvb2wgaGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFsU2Ny
b2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xsYmFyKG1faEJhci5nZXQoKSk7CiAgICAgYm9vbCBo
YXZlTm9uT3ZlcmxheVZlcnRpY2FsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xsYmFyKG1f
dkJhci5nZXQoKSk7Ci0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0g
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIGJvb2wgcGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIuc3R5bGUoKS5yZXNp
emUoKSAhPSBSZXNpemU6Ok5vbmU7CiAgICAgYm9vbCBzY3JvbGxiYXJzQXZvaWRDb3JuZXIgPSAo
aGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFsU2Nyb2xsYmFyICYmIGhhdmVOb25PdmVybGF5VmVydGlj
YWxTY3JvbGxiYXIpIHx8IChoYXZlUmVzaXplciAmJiAoaGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFs
U2Nyb2xsYmFyIHx8IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIpKTsKIApAQCAtMTAx
NSw3ICsxMDE1LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpjb21wdXRlU2Ny
b2xsRGltZW5zaW9ucygpCiAgICAgbV9zY3JvbGxIZWlnaHQgPSByb3VuZFRvSW50KG92ZXJmbG93
Qm90dG9tKCkgLSBvdmVyZmxvd1RvcCgpKTsKIAogICAgIGludCBzY3JvbGxhYmxlTGVmdE92ZXJm
bG93ID0gcm91bmRUb0ludChvdmVyZmxvd0xlZnQoKSAtIGJveC0+Ym9yZGVyTGVmdCgpKTsKLSAg
ICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlm
IChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgIHNjcm9sbGFi
bGVMZWZ0T3ZlcmZsb3cgLT0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIGludCBzY3Jv
bGxhYmxlVG9wT3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93VG9wKCkgLSBib3gtPmJvcmRl
clRvcCgpKTsKICAgICBzZXRTY3JvbGxPcmlnaW4oSW50UG9pbnQoLXNjcm9sbGFibGVMZWZ0T3Zl
cmZsb3csIC1zY3JvbGxhYmxlVG9wT3ZlcmZsb3cpKTsKQEAgLTEzMzYsNyArMTMzNiw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXpl
Q29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29ybmVyUmVzaXplclNpemUu
d2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNvcm5lclJlY3QuaGVpZ2h0
KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUo
RmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgYm9vbCBSZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzKGNvbnN0IExheWVy
RnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKTsKIAog
ICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3QgSW50UmVjdCYgZnJhZ21l
bnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0gICAgICAgIGlmIChzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgaWYgKHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICAgICAgSW50U2l6
ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWluWE1heFlDb3JuZXIoKSAt
IHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVj
dCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZzZXRGcm9tQm90dG9tTGVm
dCAtIEludFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCByZXNpemVyUmVjdC5zaXpl
KCkgfTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5kZXggZGUyNmIzMDQ4OTY2NjZhNWNkZDY0YjUwZjc2
ZDZkNTFlZDYzZWFkMy4uYjQ4YWIxNWM2YTZjNjA1Y2FlMGU4YTZjMDExY2E3YTdjM2JiMWJjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBv
c2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGlu
ZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggMDY0ZjgxNDg4OWE1NDdkZmRlYmQz
NmVlZjNjODQzZmU3ZDNhYjM1Mi4uMTZmNzdhYjNjNDE5Y2ZlMDBiZTRmZTU1YzUxZjViNmQ3N2Y1
MzU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAt
MjgxLDcgKzI4MSw3IEBAIGludCBSZW5kZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRC
YXNlbGluZSBiYXNlbGluZVR5cGUsIGJvb2wgZmlyc3RMaW5lLCBMCiBMYXlvdXRSZWN0IFJlbmRl
ckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9u
YWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zm
c2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHgg
Kz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25h
bE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAq
IChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwogICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNv
bnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVu
ZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFtX3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAg
IExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVy
UmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRP
ZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAg
ICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExh
eW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQg
PSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2
OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxpc3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJv
bChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8
ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkg
OiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0
VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
bV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55
KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgp
OwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAt
IGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkgKzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94Ojps
aXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVy
biAtMTsKIAogICAgIGludCBzY3JvbGxiYXJXaWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgo
KSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Ny
b2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkg
KyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdo
dCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgp
IDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRo
KCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisg
ICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53
aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+
IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0
aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0Lmhl
aWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRkaW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9p
bmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAwLDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNB
Y3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJMaXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVj
dChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRS
ZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAgIHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0g
Ym9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Ny
b2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJv
cmRlclRvcCgpKTsKICAgICByZXBhaW50UmVjdGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRS
ZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhj
b25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkg
Y29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3Jv
bGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8g
Ym9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgo
KTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xs
YmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJl
Y3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCku
ZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVj
dCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJv
bVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3Qg
UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0
IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAog
ewogICAgIEludFJlY3QgcmVjdCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFy
TGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7Cisg
ICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1v
dmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAt
ODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJM
aXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xs
YmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsK
ICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJM
ZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVy
TGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAg
ICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndp
ZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1v
dmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1l
VmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsK
QEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNj
cm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNj
cm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7
CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250
YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywgcGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxi
YXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9y
ZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsK
KyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFy
LndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50
Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IGM2NzA0MmQxZGVh
YjdlYWY5ZGIzMzhjZDIzMzQ4ZDUwN2YyNDczMjUuLjg4YjI3M2ZiMWM0OTRlMmVjZmY1ZTc5ZWZk
ZTU0OWRkNWFkZTI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3Jv
dW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAg
dm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVy
QmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0K
KyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZhZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFh
ZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJhYTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJl
bmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRS
ZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQgdGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhl
IGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlvbiBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAg
Ly8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBleGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZy
YW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygpOwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGlj
YWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYgKGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAg
ICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShMYXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNj
cm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCksIDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVw
YWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZDVjYjMyN2UyYzNjZDZiN2VmOWVjMTdmMmMy
YTg4MmY2MjI5NjI2NC4uY2FjYzEzMGU2MTViZmVlNDY3ZGE1MDM2Mzg1ZDkxNWU5Y2YwZGE1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBA
IC0yNTc3LDkgKzI1NzcsOSBAQCBmbG9hdCBSZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3VuZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAK
LWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
JiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0
RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUo
KSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+
IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9yUGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMw
MmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3
MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcgKzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wg
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJv
b2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5B
QkxFKENTU19UUkFJTElOR19XT1JEKQogICAgIFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBj
b25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2
ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThjMi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYz
MmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dl
YlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dl
YlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRS
ZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5j
ZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNT
Y3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAg
ICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMz
OTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2
LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21T
Y3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2Vi
Q29yZTo6SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2lu
dCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJl
YWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24o
KSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWEy
ZTU3MDUzMjA2YWQ4NjZlMDRmZDU5MmQ0ZGVhZWMzOTllNWZiZS4uMDg5ZmQwMWE5YzQ4ZWM5YzM1
MjE5OTM3NjIwOGUwMTIwM2Q2MTYzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTA4
ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2Ug
dmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3Jp
dGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6
IFRoZSBzY3JvbGxiYXIgaXMKKyAgICAgICAgbm93IG9uIHRoZSBsZWZ0LCBzbyB0aGUgcmVwYWlu
dGVkIHJlY3QgaXMgcHVzaGVkIG92ZXIgYSBzY3JvbGxiYXIncworICAgICAgICB3aWR0aC4KKyAg
ICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQ6
IERpdHRvLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3Np
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0zMCAgQ2hyaXMg
R2FtYnJlbGwgIDxjZ2FtYnJlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlvdXRUZXN0c10g
Q29udmVydCBodHRwL3Rlc3RzL2NvbnRlbnRleHRlbnNpb25zIGNvbnZlcnQgUEhQIHRvIFB5dGhv
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93
LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwt
b3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAppbmRleCAwMDE1NTg5ZDc0ZDliMTk1NzIxNWUy
MzBkZDA3MmYwODRlOTUwYmFlLi41MGFhNWNhMTQxODMyZTU4ODZjODY4NzJiZmRlMjkwOTA5OWEx
OGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctcGFyZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVy
dGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIChyZXBh
aW50IHJlY3RzCi0gIChyZWN0IDI5IDI5IDEwMCAxMDApCisgIChyZWN0IDQ5IDI5IDEwMCAxMDAp
CiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1zYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNh
bC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3N2FiZmJjZDc4MTE3ZTg5ZWZjMzEz
NjdmM2MzZmRhYWQ3NmI4NDFmLi5iNzU5MTQxNjRkODE4YzM4M2JkMWUzMjM0NTQyOTEzNzQ4NmIz
NDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctc2FtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJlcGFpbnQg
cmVjdHMKLSAgKHJlY3QgMjkgMjEgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjEgMTAwIDEwMCkKICkK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xs
YmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Zl
cnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNzBi
ODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBo
YXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKworCisKKworVGhlc2UgZm91
ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0
LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
dmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmEzOWRh
NjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwK
QEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitzZWN0aW9uID4gZGl2
LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBoZWlnaHQ6IDEw
MHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsKKyAgb3Zl
cmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7CisgIG1hcmdpbjogMTBweCAx
MHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4OworICBoZWlnaHQ6IDIwcHg7
CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7IGRpcmVjdGlvbjogbHRy
OyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3JpdGluZy1tb2RlOiBob3Jp
em9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0
OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKy52LWxyIHsgd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9uIGNsYXNzPSJyaWdodCI+
CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9s
bGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIGx0ciI+PGRpdiBjbGFz
cz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
aC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9k
aXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhw
ZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIHJ0bCI+PGRpdiBjbGFz
cz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4KKwor
PHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxk
IGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9wPgorICA8ZGl2IGNsYXNz
PSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEt
ZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBsdHIiPjxkaXYg
Y2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNs
YXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9k
aXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMiPkZBSUw8L3ByZT4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5k
dW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9yIChsZXQgc3F1YXJlIG9m
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgeworICAgIGxldCBhY3R1YWwg
PSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFyZS5wYXJlbnROb2RlLm9m
ZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0dHJpYnV0ZSgiZGF0YS1l
eHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgdGV4dCAr
PSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnROb2RlLmNsYXNzTmFtZX0n
IC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7CisgICAgfQorfQorcmVz
dWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425568</attachid>
            <date>2021-04-08 18:45:47 -0700</date>
            <delta_ts>2021-04-08 21:35:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210409114545.patch</filename>
            <type>text/plain</type>
            <size>50221</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uNDE3ZDAwZjdiMTEwMTg4Mzg0NjEzNTkwOWU3ZDk4
ZGFlNzUyOGExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTA0LTA4ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAg
ICAgICAgV2UgY3VycmVudGx5IG9ubHkgY29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xs
YmFyIHRvIHRoZSBsZWZ0IGZvcgorICAgICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0
YixidH07IGRpcmVjdGlvbjogcnRsYCBjb250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3
ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBl
ZGdlCisgICAgICAgIG9mIHRoZSBjb250YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUt
ZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQorICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwg
b3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3Jp
dGluZyBtb2RlKS4KKworICAgICAgICBTb21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGlu
ZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3Rl
YWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hldGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9u
IHRoZQorICAgICAgICBsZWZ0LCBub3Qgd2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9s
bGJhciBpcyBvbiB0aGUgbGVmdCAoc2luY2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcg
bW9kZXMsIHRoZSBibG9jayBkaXJlY3Rpb24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jp
em9udGFsIG9uZSBvbiB0aGUgYm90dG9tKS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAg
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBm
b3IKKyAgICAgICAgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxl
cnMgdGhhdCByZWFsbHkgZG8gY2FyZQorICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlv
biBzY3JvbGxiYXJzIHRvIGFkZGl0aW9uYWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5n
IG1vZGUuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0
YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVBZHdhaXRhOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29u
dGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxv
Z2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJv
eFJlY3QgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29t
cHV0ZVNjcm9sbERpbWVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0wNC0wOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI3MzU0MSkgV0tXZWJWaWV3IGNhbid0IGxvYWQgTlNVUkxSZXF1ZXN0IHN1YmNsYXNzZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYjQwMzc0NzgyMmVhZTcwNzUyZmFkMjM0NzUyODIxNjBkMmMxOWU4MC4uNTZmZmU5
OGNkYmJhMGE5NjdhNzBjYTdiY2ZjODg4MWRhZTYwYjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wNC0wOCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5k
IGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIx
LTA0LTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjczNTQxKSBXS1dlYlZpZXcgY2FuJ3QgbG9hZCBOU1VSTFJlcXVl
c3Qgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDI3NTkw
OGRkMWRiNjYzM2VhNzY1YmRlZjdlM2U1NjkzMGFlYjQ2ZDMuLmM0ZWJlMjYwNWJjMTY5NWQ1MGRl
NWUwMzZkNzQ1NGE5YWVlMjUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
QEAgLTE1MTUsNyArMTUxNSw3IEBAIE9wdGlvbmFsPEN1cnNvcj4gRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoCiAgICAgICAgICAg
ICBhdXRvJiBsYXllclJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4o
KnJlbmRlcmVyKTsKICAgICAgICAgICAgIGluUmVzaXplciA9IGxheWVyUmVuZGVyZXIubGF5ZXIo
KS0+aXNQb2ludEluUmVzaXplQ29udHJvbChyb3VuZGVkSW50UG9pbnQocmVzdWx0LmxvY2FsUG9p
bnQoKSkpOwogICAgICAgICAgICAgaWYgKGluUmVzaXplcikKLSAgICAgICAgICAgICAgICByZXR1
cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpIDogc291dGhFYXN0UmVz
aXplQ3Vyc29yKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoKGVkaXRhYmxlIHx8IChyZW5k
ZXJlciAmJiByZW5kZXJlci0+aXNUZXh0KCkgJiYgbm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSkp
ICYmICFpblJlc2l6ZXIgJiYgIXJlc3VsdC5zY3JvbGxiYXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCBjNTkxN2ZmOWFhN2MyMmU5MGU1NjcxMWY4NGJlMTEyNDk0N2M4NjU5Li4w
MjE3ZDM0MmJmOGYzYmNjMWI5OGE0ZTlmNTU0OThkNWIyN2M1MTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC01NTUzLDkgKzU1NTMsOSBAQCBJbnRTaXplIEZyYW1lVmlldzo6dmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAgICAgcmV0dXJuIHsgKnZpZXdw
b3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsKIH0KIAotYm9vbCBGcmFtZVZp
ZXc6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9v
bCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAog
ewotICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIHJlbmRlclZpZXcoKSAm
JiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKIH0K
IAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRnJhbWVWaWV3
JiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDZhZTNhNDcxMTBjNTc0NzAzMzBm
Zjk1OWNlM2M4ZmIzZjNmNjVjYi4uZjRhNjA3OGU5MjY3YWM0M2ZhNDMxZjVmOWVjODY3ZTk5MjEy
ZTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NTUsNyArNjU1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogICAgIHZvaWQgaGlkZSgpIGZpbmFsOwogCi0gICAg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
ZmluYWw7CiAKICAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDhlNmIzYWFiNTk4YTM3NGM3
MTMyNDM2ZjhiMjE0YjFhODNjZjY1NGEuLmVkZjA1NDg2YjE2OTMwZWVmYWFlYmUwM2U1MDJmMTA1
NTIwMzRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00MjIs
NyArNDIyLDcgQEAgU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6YWRqdXN0U2Nyb2xsUG9zaXRp
b25XaXRoaW5SYW5nZShjb25zdCBTY3JvbGxQb3NpdGlvbiYKIFNjcm9sbFBvc2l0aW9uIFNjcm9s
bFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkgLSBJbnRTaXplKAotICAgICAgICBzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9s
bGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCisgICAgICAg
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xs
YmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAg
aGVhZGVySGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoVG9wQ29udGVudEluc2V0VHlwZTo6V2Vi
Q29yZU9yUGxhdGZvcm1Db250ZW50SW5zZXQpKTsKIH0KIApAQCAtNzMyLDcgKzczMiw3IEBAIHZv
aWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgZGVz
aXJlZFBvc2l0aW9uKQogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIpIHsKICAgICAgICAg
aW50IGNsaWVudFdpZHRoID0gdmlzaWJsZVdpZHRoKCk7CiAgICAgICAgIEludFJlY3Qgb2xkUmVj
dChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCBo
QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92
ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6
IDAsCisgICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5v
Y2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxT
Y3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAgICAgd2lkdGgoKSAtIChtX3ZlcnRpY2FsU2Ny
b2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCksCiAgICAg
ICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKTsKQEAgLTc1MSw3ICs3NTEs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhcikgewogICAg
ICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwogICAgICAgICBJbnRSZWN0
IG9sZFJlY3QobV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpOwotICAgICAgICBJbnRS
ZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/
IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgSW50
UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDog
d2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICB0b3BD
b250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNldCgpIC0gKG1faG9yaXpvbnRh
bFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+b2NjdXBpZWRIZWlnaHQoKSA6IDAp
KTsKQEAgLTExNzksMTQgKzExNzksMTQgQEAgSW50UmVjdCBTY3JvbGxWaWV3OjpzY3JvbGxDb3Ju
ZXJSZWN0KCkgY29uc3QKICAgICBpbnQgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyID0gaGVpZ2h0
KCkgLSB0b3BDb250ZW50SW5zZXQoKTsKIAogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIg
JiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSA+IDApIHsKLSAgICAg
ICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCisgICAg
ICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAg
ICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAg
ICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAg
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKICAgICB9CiAKICAgICBpZiAobV92
ZXJ0aWNhbFNjcm9sbGJhciAmJiBoZWlnaHRUcmFja2VkQnlTY3JvbGxiYXIgLSBtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRS
ZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0
aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgY29ybmVyUmVjdC51
bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3
aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIG1fdmVy
dGljYWxTY3JvbGxiYXItPmhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAg
ICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0VHJhY2tl
ZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKQEAgLTE1Mzgs
NyArMTUzOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c3R5bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdl
KCkKIEludFBvaW50IFNjcm9sbFZpZXc6OmxvY2F0aW9uT2ZDb250ZW50cygpIGNvbnN0CiB7CiAg
ICAgSW50UG9pbnQgcmVzdWx0ID0gbG9jYXRpb24oKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Ny
b2xsYmFyKQogICAgICAgICByZXN1bHQubW92ZShtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGll
ZFdpZHRoKCksIDApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAzNTg3MTc5Y2RiN2Y2NzkzOThhN2M4NzczMTJlZDQ5
N2MxNmZlOGQ5Li5kNDgxZjdlZGNiZmJmMzNiZGFiNjYzNjc3YzhmZDUwYjczOGFmOWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTM0Miw3ICszNDIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBsb2dNb2NrU2Nyb2xsQW5pbWF0
b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAotICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
PSAwOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9
IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xs
YmFyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Ny
b2xsYmFyVGhlbWVBZHdhaXRhLmNwcAppbmRleCA0YjcyMTU0YmExZTJiN2MwNjFlOWNlYjQ1OWY0
Y2M1NTBlYWU1ZDQyLi44N2JhNGFkOTU1ZThmNDQ4NWVhY2VlOTc5MzdkOWMzOGJjYTNmZDhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1l
QWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxi
YXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVt
ZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWMKIAogICAgICAgICBJbnRSZWN0IGZyYW1lID0gcmVjdDsKICAgICAgICAgaWYgKHNjcm9s
bGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBp
ZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJl
YSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAg
ICBmcmFtZS5tb3ZlKGZyYW1lLndpZHRoKCkgLSBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwg
MCk7CiAgICAgICAgICAgICBmcmFtZS5zZXRXaWR0aChob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6
ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhl
bWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBn
cmFwaGljCiAgICAgSW50UmVjdCB0aHVtYiA9IHJlY3Q7CiAgICAgaWYgKHNjcm9sbGJhci5ob3Zl
cmVkUGFydCgpID09IE5vUGFydCAmJiB1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSkgewogICAgICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAg
ICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNj
cm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAg
ICAgICAgICAgICAgIHRodW1iLm1vdmUoaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1i
UG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAob3ZlcmxheVRodW1iU2l6ZSArIHRodW1iQm9y
ZGVyU2l6ZSkgKyBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwgdGh1bWJQb3MgKyB0aHVtYkJv
cmRlclNpemUpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRh
OjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9u
KCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkp
CisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoc2Ny
b2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1iU2l6ZSAvIDIpIC0gaG92ZXJl
ZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAo
c2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSwgdGh1bWJQb3MgKyB0aHVtYkJvcmRl
clNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJh
clRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAKaW5kZXggZmU1NTU4YzM1ODQ3YTg3Y2YyNzE2MDgxNTdmM2VmZWNkNjg0YTdiMC4u
Mjg5NmM3ZjNiMGQyNzhkYjA5YjgwMDkzNDczZmI2YmZhOGZjMjEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCkBAIC0xNDIsNyAr
MTQyLDcgQEAgc3RhdGljIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFyUGFydFN0YXRlRmxhZ3MoU2Ny
b2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKIHN0YXRpYyBSZW5kZXJUaGVtZVNjcm9s
bGJhcjo6VHlwZSB3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
dGtTdGF0ZUZsYWdzIHNjcm9sbGJhclN0YXRlKQogewogICAgIGlmIChzY3JvbGxiYXIub3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAgICBpZiAoc2Nyb2xsYmFyLnNj
cm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
KQorICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclN0YXRl
ICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6
VmVydGljYWxTY3JvbGxiYXJMZWZ0IDogUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRp
Y2FsU2Nyb2xsSW5kaWNhdG9yTGVmdDsKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclN0YXRlICYg
R1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6VmVy
dGljYWxTY3JvbGxiYXJSaWdodCA6IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNh
bFNjcm9sbEluZGljYXRvclJpZ2h0OwogICAgIH0KQEAgLTM4MCw3ICszODAsNyBAQCBib29sIFNj
cm9sbGJhclRoZW1lR3RrOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250
ZXh0JiBncmFwaGljc0NvbgogICAgIC8vIGRyYXdpbmcgdGhlIGluZGljYXRvciB3ZSBuZWVkIHRv
IGFkanVzdCB0aGUgcmVjdGFuZ2xlIHRvIGl0cyBhY3R1YWwgc2l6ZSBpbiBpbmRpY2F0b3IgbW9k
ZS4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIp
IHsKICAgICAgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBwcmVmZXJyZWRTaXplLndpZHRoKCkpIHsK
LSAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKCFzY3JvbGxi
YXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkp
CiAgICAgICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoc3RkOjphYnMocmVjdC53aWR0aCgp
IC0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSwgMCk7CiAgICAgICAgICAgICBjb250ZW50c1JlY3Qu
c2V0V2lkdGgocHJlZmVycmVkU2l6ZS53aWR0aCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IGJkMDYxNWYy
MmQzNTg2MjA0Y2JiYTBlNzhiMmEyNDI3ZmJhMTdmMGEuLjUzOTYxYTdiNzIwNDAxZjcyZTIyNDVj
YmI0ZTIxYjc2Nzk1YWQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXImIHNjcm9sbGJhcikKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJJbXAgPSBwYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgQVNTRVJUKHNjcm9sbGVySW1wKTsKLSAgICBzY3Jv
bGxlckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFi
bGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gTlNV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsKKyAgICBzY3JvbGxlckltcC51c2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
UmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCA3ZDU3ZGFhOWNkZmE4MWM0ZTVk
NzU3YTZjYjY1YzUwNDQ0Mzk3NWUxLi43MmUwZTVjZjg4ZjUyZWRmMzMwMTllYTE2OWNiMmIxMzYx
YmY2Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBA
IC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29s
KiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VVcGRhdGVTY3JvbGxi
YXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3Zl
cnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Ny
b2xsVG8oaW50IG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBkZTJlZDQ1MTMwMjY3Y2QxOTQ5MTFjYmUzNjBjMGYzOThlOWRiYzNjLi4zYTRiMDM3
YTcyNTgxZGY4MTdkOTIzYzdiMDEyNGI1YjVmZGFjMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5MDIsNyArMTkwMiw3IEBAIExheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQoKSBjb25zdAogTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6bG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBm
cmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0ID0gc3R5
bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAg
ICBsb2dpY2FsTGVmdE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgaWYg
KCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0OwpAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JD
b250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmEKIExheW91dFVuaXQgUmVuZGVyQmxv
Y2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQoUmVuZGVyRnJhZ21lbnRDb250YWluZXIq
IGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0ID0g
c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAgIGlmIChzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAg
ICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAg
IGxvZ2ljYWxSaWdodE9mZnNldCArPSBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKICAgICBpZiAo
IWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAppbmRleCAyMmYzZmEwNmU1ZDRiMzhmNDQyZWMyODQwNTdkNzE3MWNhNmI1NTNjLi4zNmMxOTFk
MDVhMjg4MzI2OTdlNjA1YjkwZThmN2M5MTdlNGYzZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtODgzLDcgKzg4Myw3IEBAIExheW91dFVu
aXQgUmVuZGVyQmxvY2tGbG93OjptYXJnaW5PZmZzZXRGb3JTZWxmQ29sbGFwc2luZ0Jsb2NrKCkK
IHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hp
bGQoUmVuZGVyQm94JiBjaGlsZCwgQXBwbHlMYXlvdXREZWx0YU1vZGUgYXBwbHlEZWx0YSkKIHsK
ICAgICBMYXlvdXRVbml0IHN0YXJ0UG9zaXRpb24gPSBib3JkZXJTdGFydCgpICsgcGFkZGluZ1N0
YXJ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHN0YXJ0UG9zaXRpb24gKz0gKHN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IC0xKSAqIHZlcnRpY2FsU2Nyb2xsYmFyV2lk
dGgoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsQXZhaWxhYmxlTG9naWNhbFdpZHRoID0gYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpICsgYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTc2ZWU1ZGNjOWEzZTZkZjdl
NTFiZTllMmIyNjJmMmIyMDA3MzJiNC4uN2E3ODYzYTY5MzAxZTYwZWUyZTlmNzEwOGFjYzRmY2Ri
YmI0NTg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTcyMiw3
ICs3MjIsNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJCb3g6OnJvdW5kZWRCb3JkZXJCb3hSZWN0KCkg
Y29uc3QKIExheW91dFJlY3QgUmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCgpIGNvbnN0CiB7CiAg
ICAgYXV0byB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+dmVydGljYWxTY3JvbGxiYXJX
aWR0aCgpOwotICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xsYmFyID0gc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA6
IDA7CisgICAgTGF5b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIgPSBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoIDogMDsKIAogICAg
IHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIG9mZnNldEZvclNjcm9sbGJhciwgYm9y
ZGVyVG9wKCksCiAgICAgICAgIHdpZHRoKCkgLSBib3JkZXJMZWZ0KCkgLSBib3JkZXJSaWdodCgp
IC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCwKQEAgLTczNiw3ICs3MzYsNyBAQCBMYXlvdXRSZWN0
IFJlbmRlckJveDo6Y29udGVudEJveFJlY3QoKSBjb25zdAogCiBMYXlvdXRQb2ludCBSZW5kZXJC
b3g6OmNvbnRlbnRCb3hMb2NhdGlvbigpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCBzY3JvbGxi
YXJTcGFjZSA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0VW5pdCBzY3JvbGxiYXJTcGFj
ZSA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoKSA6IDA7CiAgICAgcmV0dXJuIHsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQo
KSArIHNjcm9sbGJhclNwYWNlLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSB9OwogfQogCkBA
IC0xOTY0LDcgKzE5NjQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVj
dChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlckZyYWdtZQogCiAgICAgLy8gU3Vi
dHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYgd2UgaGF2ZSB0aGVtLgogICAgIGlmIChhdXRvKiBzY3Jv
bGxhYmxlQXJlYSA9IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxhYmxlQXJlYSgpIDogbnVsbHB0
cikgewotICAgICAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKQorICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQog
ICAgICAgICAgICAgY2xpcFJlY3QubW92ZShzY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxi
YXJXaWR0aChyZWxldmFuY3kpLCAwKTsKICAgICAgICAgY2xpcFJlY3QuY29udHJhY3Qoc2Nyb2xs
YWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgc2Nyb2xsYWJsZUFy
ZWEtPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5KSk7CiAgICAgfQpAQCAtMzc1
OCw3ICszNzU4LDggQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUKICAgICBjb21wdXRlZFZhbHVl
cy5tX2V4dGVudCArPSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAgaWYgKGlzPFJlbmRlckJveD4o
Y29udGFpbmVyQmxvY2spKSB7CiAgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCb3ggPSBkb3duY2Fz
dDxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKTsKLSAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3gu
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAvLyBG
SVhNRTogT25seSBpZiB2ZXJ0aWNhbCBzY3JvbGxiYXIgaXMgYSBibG9jayBzY3JvbGxiYXI/Cisg
ICAgICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWVzLm1fcG9zaXRpb24gKz0gY29udGFpbmlu
Z0JveC52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgfQogICAgIApAQCAtNDk3OSw3ICs0
OTgwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0KCkgY29u
c3QKICAgICBmbGlwRm9yV3JpdGluZ01vZGUocmVjdCk7CiAgICAgLy8gU3VidHJhY3Qgc3BhY2Ug
b2NjdXBpZWQgYnkgc2Nyb2xsYmFycy4gVGhleSBhcmUgYXQgdGhlaXIgcGh5c2ljYWwgZWRnZSBp
biB0aGlzIGNvb3JkaW5hdGUKICAgICAvLyBzeXN0ZW0sIHNvIG9yZGVyIGlzIGltcG9ydGFudCBo
ZXJlOiBmaXJzdCBmbGlwLCB0aGVuIHN1YnRyYWN0IHNjcm9sbGJhcnMuCi0gICAgaWYgKHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
CiAgICAgICAgIHJlY3QubW92ZSh2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwogICAgIHJl
Y3QuY29udHJhY3QodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCBob3Jpem9udGFsU2Nyb2xsYmFy
SGVpZ2h0KCkpOwogICAgIHJldHVybiByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMDg2MWI3NWQ3ZWJjY2IxNzVlMDcz
YjRhOGIxNTg4NTcyNTU5ZDkwZS4uYzgwOWE3MGUwYmQ4NTQ5NWU3OTM2MzJjOTJiNmI3NDk2ODc3
ZWRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCkBAIC01NTUsNyArNTU1LDcgQEAgRmxvYXRSZWN0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0Ojpjb25zdHJhaW5pbmdSZWN0Rm9yU3RpY2t5UG9zaXRpb24oKSBjb25zdAogICAgICAgICAg
ICAgc2Nyb2xsT2Zmc2V0ID0gRmxvYXRQb2ludCgpICsgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9m
ZnNldCgpOwogCiAgICAgICAgIGZsb2F0IHNjcm9sbGJhck9mZnNldCA9IDA7Ci0gICAgICAgIGlm
IChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94
LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxl
QXJlYSkKKyAgICAgICAgaWYgKGVuY2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVyKCkgJiYgZW5j
bG9zaW5nQ2xpcHBpbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYm
IHNjcm9sbGFibGVBcmVhKQogICAgICAgICAgICAgc2Nyb2xsYmFyT2Zmc2V0ID0gc2Nyb2xsYWJs
ZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUp
OwogCiAgICAgICAgIGNvbnN0cmFpbmluZ1JlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChzY3Jv
bGxPZmZzZXQueCgpICsgc2Nyb2xsYmFyT2Zmc2V0LCBzY3JvbGxPZmZzZXQueSgpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA3YTU5NThjOTIzYTIxNDg2
MjFhZmNkYzNjNGRiY2Y0YTM3YjQyMzExLi41Njk1NjFiYzc0ZDNkN2MwZDNiNTFkYjRjZjY0N2Uz
MjgxZmQzNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTI0MzAsOSArMjQzMCwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAvLyBi
b3JkZXIgZWRnZS4gTWFrZSB0aGUgcmVjdGFuZ2xlIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGxhYmxl
IGFyZWEuCiAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlQnkoLUxheW91dFBvaW50KGJveC0+
Ym9yZGVyTGVmdCgpLCBib3gtPmJvcmRlclRvcCgpKSk7CiAKLSAgICAgICAgaWYgKGJveC0+c2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7Ci0gICAgICAgICAgICAv
LyBGb3IgZGlyZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YiBib3gsIHRo
ZSBzY3JvbGwgYmFyIGlzIG9uIHRoZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3QKLSAgICAg
ICAgICAgIC8vIHN0YXJ0cyBmcm9tIHRoZSByaWdodCBzaWRlIG9mIHNjcm9sbCBiYXIuIFNvIHRo
ZSB4IG9mIGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlv
biB0b28uCisgICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkgeworICAgICAgICAgICAgLy8gRm9yIGBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLXt0YixidH1gIGFuZCBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAKKyAg
ICAgICAgICAgIC8vIGJveGVzLCB0aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBU
aGUgdmlzaWJsZSByZWN0IHN0YXJ0cyBmcm9tIHRoZSByaWdodCBzaWRlCisgICAgICAgICAgICAv
LyBvZiB0aGUgc2Nyb2xsIGJhci4gU28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBz
dGFydCBmcm9tIHRoZSBzYW1lIHBvc2l0aW9uIHRvby4KICAgICAgICAgICAgIGxvY2FsRXhwb3Nl
UmVjdC5tb3ZlQnkoTGF5b3V0UG9pbnQoLXNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCksIDApKTsKICAgICAgICAgfQogICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRz
KDBfbHUsIDBfbHUsIGJveC0+Y2xpZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQoKSk7CkBA
IC0yNjc2LDcgKzI2NzcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldnQsIGNvbnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIGVsZW1lbnQt
PnNldE1pbmltdW1TaXplRm9yUmVzaXppbmcobWluaW11bVNpemUpOwogICAgIAogICAgIExheW91
dFNpemUgYWRqdXN0ZWRPbGRPZmZzZXQgPSBMYXlvdXRTaXplKG9sZE9mZnNldC53aWR0aCgpIC8g
em9vbUZhY3Rvciwgb2xkT2Zmc2V0LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7Ci0gICAgaWYgKHJl
bmRlcmVyLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAg
ICBpZiAocmVuZGVyZXItPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewog
ICAgICAgICBuZXdPZmZzZXQuc2V0V2lkdGgoLW5ld09mZnNldC53aWR0aCgpKTsKICAgICAgICAg
YWRqdXN0ZWRPbGRPZmZzZXQuc2V0V2lkdGgoLWFkanVzdGVkT2xkT2Zmc2V0LndpZHRoKCkpOwog
ICAgIH0KQEAgLTI3MzMsNyArMjczNCw3IEBAIFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xS
ZWN0cyBSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250cm9sc1JlY3RzKCkgY29uc3QKICAgICAvLyBT
Y3JvbGxiYXJzIHNpdCBpbnNpZGUgdGhlIGJvcmRlciBib3guCiAgICAgYXV0byBvdmVyZmxvd0Nv
bnRyb2xzUG9zaXRpb25pbmdSZWN0ID0gc25hcHBlZEludFJlY3QocmVuZGVyQm94LnBhZGRpbmdC
b3hSZWN0SW5jbHVkaW5nU2Nyb2xsYmFyKCkpOwogCi0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKTsKKyAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSByZW5kZXJCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJv
b2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUmVzaXplOjpO
b25lOwogCiAgICAgT3ZlcmZsb3dDb250cm9sUmVjdHMgcmVzdWx0OwpAQCAtMjc4Niw3ICsyNzg3
LDcgQEAgU3RyaW5nIFJlbmRlckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIEludFNp
emUgUmVuZGVyTGF5ZXI6Om9mZnNldEZyb21SZXNpemVDb3JuZXIoY29uc3QgSW50UG9pbnQmIGxv
Y2FsUG9pbnQpIGNvbnN0CiB7CiAgICAgYXV0byByZXNpemVyUmVjdCA9IG92ZXJmbG93Q29udHJv
bHNSZWN0cygpLnJlc2l6ZXI7Ci0gICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1p
blhNYXhZQ29ybmVyKCkgOiByZXNpemVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOworICAgIGF1dG8g
cmVzaXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1h
eFlDb3JuZXIoKTsKICAgICByZXR1cm4gbG9jYWxQb2ludCAtIHJlc2l6ZUNvcm5lcjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCBkY2NlY2NmZDUwMGVhMGViNzExZTA3OTg0YjM4MTQxZDg3YTZkNjFkLi41Njg0MDhk
OGE4MzA2ZWY3NDhkOWM5Yjc4YzkwMDIxMDUxMTEyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIzMCw3ICsyMjMw
LDcgQEAgRmxvYXRQb2ludCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExh
eWVyKCkgY29uc3QKICAgICBhdXRvJiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCk7CiAKICAgICByZXR1cm4gRmxvYXRQb2ludCgKLSAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFs
U2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAorICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJ
bnRydXNpb24oKSA6IDAsCiAgICAgICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySW5zZXRDbGlw
TGF5ZXIoZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCksIGZyYW1lVmlldy50b3BDb250ZW50SW5z
ZXQoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggZGFiNWVhOTg0ZTcyZTFhNWRmYmZiMTE0OThjN2I3Mjhm
Yjk5ZjdhZi4uMmJiNWE1NTI4OWY2NDg5ODAxNGY3NDVlYjRlMWIxMzAxMGE1MTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0K
IAotYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xs
YmFycyByZXF1aXJlIHNvbWUgc3lzdGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0
IGRvZXMgbm90IGV4aXN0IG9uIGNlcnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBz
ZXBhcmF0ZSBtZWNoYW5pc20uCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNSwxMiAr
MjE1LDEyIEBAIGJvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiAjZWxzZQogICAgIHN3aXRjaCAoc2V0dGlu
Z3MoKS51c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KCkpIHsKICAgICBjYXNlIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3k6OkNvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLnNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICAgICAgcmV0dXJu
IHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGNhc2Ug
VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6U3lzdGVtOgogICAgICAgICByZXR1cm4gc2V0
dGluZ3MoKS5zeXN0ZW1MYXlvdXREaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEw7CiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBzdHlsZSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gc3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5k
ZXggOWM5NjZmN2ViMmYwMjdkNjMwZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEy
ZDc4YTUzZGRkNWM2YWYzZDdmZjhkYzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVj
dHM+IGxheWVyUmVwYWludFJlY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCA5Njg1OTc4
ODg2NjNhODQ1YzQzMTUxMWQ1OGMxNmFmYjEyYzBkYmNlLi5iMzhhMDdhYjY2NzUyODIzYzNjNDNm
ZjE0N2YxZGNmODA4NTNlMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAg
IGVsZW1lbnQtPnNldFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAot
Ym9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAg
LTY1NCw3ICs2NTQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZl
Tm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9o
QmFyLmdldCgpKTsKICAgICBib29sIGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBp
c05vbk92ZXJsYXlTY3JvbGxiYXIobV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPblRoZUxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIg
PSByZW5kZXJlci5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNj
cm9sbGJhcnNBdm9pZENvcm5lciA9IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIg
JiYgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmICho
YXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNh
bFNjcm9sbGJhcikpOwogCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxEaW1lbnNpb25zKCkKICAgICBtX3Njcm9sbEhlaWdo
dCA9IHJvdW5kVG9JbnQob3ZlcmZsb3dCb3R0b20oKSAtIG92ZXJmbG93VG9wKCkpOwogCiAgICAg
aW50IHNjcm9sbGFibGVMZWZ0T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0g
Ym94LT5ib3JkZXJMZWZ0KCkpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3Zl
cmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQ
b2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpA
QCAtMTMzNiw3ICsxMzM2LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpkcmF3
UGxhdGZvcm1SZXNpemVySW1hZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXgKICAgICAgICAgY29y
bmVyUmVzaXplclNpemUgPSByZXNpemVDb3JuZXJJbWFnZS0+c2l6ZSgpOwogICAgIH0KIAotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBp
ZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZXNpemVyQ29ybmVyUmVjdC54
KCkgKyBjb3JuZXJSZXNpemVyU2l6ZS53aWR0aCgpLCByZXNpemVyQ29ybmVyUmVjdC55KCkgKyBy
ZXNpemVyQ29ybmVyUmVjdC5oZWlnaHQoKSAtIGNvcm5lclJlc2l6ZXJTaXplLmhlaWdodCgpKTsK
ICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoLTEuMCwgMS4wKSk7CkBAIC0xNDk3LDcg
KzE0OTcsNyBAQCBib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVy
SW5GcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmCiAgICAgYXV0byByZWN0cyA9IG92ZXJm
bG93Q29udHJvbHNSZWN0cygpOwogCiAgICAgYXV0byBjb3JuZXJSZWN0SW5GcmFnbWVudCA9IFsm
XShjb25zdCBJbnRSZWN0JiBmcmFnbWVudEJvdW5kcywgY29uc3QgSW50UmVjdCYgcmVzaXplclJl
Y3QpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSkgeworICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
KSB7CiAgICAgICAgICAgICBJbnRTaXplIG9mZnNldEZyb21Cb3R0b21MZWZ0ID0gYm9yZGVyQm94
UmVjdC5taW5YTWF4WUNvcm5lcigpIC0gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKTsKICAg
ICAgICAgICAgIHJldHVybiBJbnRSZWN0IHsgZnJhZ21lbnRCb3VuZHMubWluWE1heFlDb3JuZXIo
KSAtIG9mZnNldEZyb21Cb3R0b21MZWZ0IC0gSW50U2l6ZSB7IDAsIHJlc2l6ZXJSZWN0LmhlaWdo
dCgpIH0sIHJlc2l6ZXJSZWN0LnNpemUoKSB9OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkZTI2
YjMwNDg5NjY2NmE1Y2RkNjRiNTBmNzZkNmQ1MWVkNjNlYWQzLi5iNDhhYjE1YzZhNmM2MDVjYWUw
ZThhNmMwMTFjYTdhN2MzYmIxYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgdXNlc0FzeW5jU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAog
ICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3Qm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRl
eCA5NTBiMWQ3ZTMxZDJjMGNkODQ3N2RkMWFiNmEzOGM1MGY1NzJkZjlmLi4zZWE3YjcwMjRhZWE4
Y2I5Zjg1MjgwYjVkOGY2NWE0OWQ5MGU4OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJM
aXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIGJvb2wg
Zmlyc3QKIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdChjb25z
dCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgaW50IGluZGV4KQogewogICAgIExheW91
dFVuaXQgeCA9IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdkJhcikKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdkJhcikKICAgICAgICAgeCArPSBtX3ZCYXItPm9jY3VwaWVkV2lkdGgoKTsKICAgICBM
YXlvdXRVbml0IHkgPSBhZGRpdGlvbmFsT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGlu
Z1RvcCgpICsgaXRlbUhlaWdodCgpICogKGluZGV4IC0gbV9pbmRleE9mZnNldCk7CiAgICAgcmV0
dXJuIExheW91dFJlY3QoeCwgeSwgY29udGVudFdpZHRoKCksIGl0ZW1IZWlnaHQoKSk7CkBAIC0z
NjMsNyArMzYzLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcihQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW4KICAgICBpZiAoIW1fdkJhcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgp
ICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxl
ZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKKyAgICBM
YXlvdXRVbml0IGxlZnQgPSBwYWludE9mZnNldC54KCkgKyAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVuaXQgdG9wID0gcGFpbnRPZmZzZXQueSgp
ICsgYm9yZGVyVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IG1fdkJhci0+d2lkdGgoKTsK
ICAgICBMYXlvdXRVbml0IGhlaWdodCA9IHRoaXMtPmhlaWdodCgpIC0gKGJvcmRlclRvcCgpICsg
Ym9yZGVyQm90dG9tKCkpOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6
aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgTGF5
b3V0CiAgICAgaWYgKCFtX3ZCYXIgfHwgIW1fdkJhci0+c2hvdWxkUGFydGljaXBhdGVJbkhpdFRl
c3RpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTGF5b3V0VW5pdCB4ID0gYWNj
dW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFy
LT53aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IHggPSBhY2N1bXVsYXRlZE9mZnNldC54KCkgKyAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lk
dGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVuaXQg
eSA9IGFjY3VtdWxhdGVkT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQg
d2lkdGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5o
ZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCk7CkBAIC00OTEsOSArNDkxLDkg
QEAgaW50IFJlbmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KGNvbnN0IExheW91dFNpemUm
IG9mZnNldCkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50IHNjcm9sbGJhcldpZHRoID0g
bV92QmFyID8gbV92QmFyLT53aWR0aCgpIDogMDsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQo
KSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQorICAgIGlmIChzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhcldpZHRoIHx8IG9mZnNldC53aWR0aCgp
ID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQoKSkpCiAgICAgICAgIHJl
dHVybiAtMTsKLSAgICBpZiAoIXNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIHx8
IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQo
KSAtIHNjcm9sbGJhcldpZHRoKSkKKyAgICBpZiAoIXNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dCgpIHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5n
UmlnaHQoKSAtIHNjcm9sbGJhcldpZHRoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50
IG5ld09mZnNldCA9IChvZmZzZXQuaGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIHBhZGRpbmdUb3Ao
KSkgLyBpdGVtSGVpZ2h0KCkgKyBtX2luZGV4T2Zmc2V0OwpAQCAtODAwLDE0ICs4MDAsMTQgQEAg
Ym9vbCBSZW5kZXJMaXN0Qm94Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIFJlbmRlckxpc3RCb3g6
OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7Ci0gICAgc2Nyb2xs
UmVjdC5tb3ZlKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJv
cmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCks
IGJvcmRlclRvcCgpKTsKKyAgICBzY3JvbGxSZWN0Lm1vdmUoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBzY3JvbGxiYXIud2lkdGgoKSwgYm9yZGVyVG9wKCkpOwogICAgIHJlcGFpbnRSZWN0YW5nbGUo
c2Nyb2xsUmVjdCk7CiB9CiAKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3Jv
bGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHNjcm9s
bGJhclJlY3Q7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmln
aHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAt
IGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9w
ID0gYm9yZGVyVG9wKCk7CiAgICAgcmVjdC5tb3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJhclRv
cCk7CiAgICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVyVG9D
b250YWluaW5nVmlldyh0aGlzLCByZWN0KTsKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbnRSZWN0IFJl
bmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBT
Y3JvbGxiYXImIHNjcgogSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHBhcmVudFJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gdmlldygpLmZyYW1l
VmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRoaXMsIHBhcmVudFJl
Y3QpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNl
VmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3Jk
ZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJv
cmRlclRvcCgpOwogICAgIHJlY3QubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJhclRvcCk7
CiAgICAgcmV0dXJuIHJlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0
Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFy
JiBzY3IKIEludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250
YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbGJhclBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gc2Nyb2xsYmFyUG9p
bnQ7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0gYm9y
ZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwog
ICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29udGFp
bmluZ1ZpZXcodGhpcywgcG9pbnQpOwpAQCAtODM0LDcgKzgzNCw3IEBAIEludFBvaW50IFJlbmRl
ckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXImIHNjCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50
JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHZpZXcoKS5mcmFt
ZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJlbnRQ
b2ludCk7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0g
Ym9yZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJhclRv
cCk7CiAgICAgcmV0dXJuIHBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmgKaW5kZXggMjFiYmFhMjc4MDg2MDk4MWUxODJhZjBmOTkyNmM0ZjIxN2UxMzQyZS4uOWY5
M2QxOGU0MWRjOWM3M2I5ZTU5NjI5NTllNjA2YTU1ZWYwYWQwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBhaW50SXRlbUJhY2tncm91bmQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
LCBpbnQgbGlzdEluZGV4KTsKICAgICB2b2lkIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7CiAK
LSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOyB9CiAKICAgICBib29sIG1fb3B0aW9uc0No
YW5nZWQ7CiAgICAgYm9vbCBtX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJMYXlvdXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNGMzZmY0ZmFmZDJlYjUy
MmNlZWVmZDVjMjliNDg4M2I5NWNjMWFkMS4uM2NkMzBkYjc1ZjUxZmYyYTYzMTY0YmFhNTYzZWJh
MjVkZDA1NGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAt
NDczLDcgKzQ3Myw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29u
c3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpIGNvbnN0CiAgICAgICAgIC8vIGFuZCB0aGUgUmVu
ZGVyZXIgdGhhdCBjb250YWlucyB0aGUgaWZyYW1lLiBUaGlzIHRyYW5zZm9ybWF0aW9uIG11c3Qg
YWNjb3VudCBmb3IgYQogICAgICAgICAvLyBsZWZ0IHNjcm9sbGJhciAoaWYgb25lIGV4aXN0cyku
CiAgICAgICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gdGhpcy0+ZnJhbWVWaWV3KCk7Ci0gICAg
ICAgIGlmIChmcmFtZVZpZXcuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpKQorICAgICAgICBpZiAoZnJhbWVW
aWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVy
dGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKExheW91dFNp
emUoZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCktPm9jY3VwaWVkV2lkdGgoKSwgMCkpOwog
CiAgICAgICAgIG93bmVyQm94LT5yZXBhaW50UmVjdGFuZ2xlKGFkanVzdGVkUmVjdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBlZGYx
NzBhOTY5YTkwN2U5OTgzNjkyZWI5ODg1ODkwMmU3YjM2MzU4Li4wOWI4M2M4ZTMwMzlkM2NhZmUz
NzcxMzIzYTJiNDA1NTUxMDBjMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI1ODEsOSArMjU4MSw5IEBAIGZsb2F0IFJlbmRlclN0
eWxlOjpvdXRsaW5lT2Zmc2V0KCkgY29uc3QKICAgICByZXR1cm4gbV9iYWNrZ3JvdW5kRGF0YS0+
b3V0bGluZS5vZmZzZXQoKTsKIH0KIAotYm9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Citib29sIFJlbmRlclN0eWxlOjpzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAg
IHJldHVybiAoIWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKSB8fCB3cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDsKIH0K
IAogVmVjdG9yPFBhaW50VHlwZSwgMz4gUmVuZGVyU3R5bGU6OnBhaW50VHlwZXNGb3JQYWludE9y
ZGVyKFBhaW50T3JkZXIgb3JkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDk3MzAyZmE2MjcxNGI3OTEzZDUxZDhmMGJhNDE1YjQ1ZjVlYTNk
ODQuLjNiYTAwNDBmMmQwMDk2MGU1MjcxYWM3OWMxZGI1NWY5NzkyN2E4MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04MjksNyArODI5LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzSXNvbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxp
bmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0bzsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlX
aW4uaAppbmRleCA1N2NmMDhmZGQ2NzZlMjQ1YzE0OGQ3ZGNlZjBmMTNlZjRhZWNhOGMyLi5lZWQz
YTg0ZjQyOWMyODdkYTZlMGI0ODQ2NjMyYTdhOWE5NDhmM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaApAQCAtODAsNyArODAs
NyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgdmlzaWJsZVNpemUoKSBjb25zdCBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29s
KiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09u
TWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFi
bGVBbmNlc3RvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBiNWU2ZTUxOGJkNWY5
MDBlYzBlMWQ5NDRmZWI1NzQ4Mjk3MzM5MDY1Li42Y2RiZWRjZDA4NTcyZTBiNjU5OTg1NDNmZGY0
MmYyNTg0MDIyMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5oCkBAIC0yNTYsNyArMjU2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgV2Vi
Q29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbGJhclBvaW50
KSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNlVXBk
YXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IGZp
bmFsOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBT
dHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gUERGUGx1Z2lu
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlYTBmNjY2NGQzZDhiM2QwOWFlYjJmNWJmNDk2YWJmNzNiNzY1
OWU4Li4wNGI4ZTcyMDk5NjJlZjFjNTFlYWZkOGQ4YjM5YmJlY2JhODljMGUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjEtMDQtMDggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxl
LmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxpbmUvYmxv
Y2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctcGFyZW50LWV4cGVjdGVkLnR4dDogVGhlIHNjcm9sbGJhciBpcworICAgICAgICBub3cgb24g
dGhlIGxlZnQsIHNvIHRoZSByZXBhaW50ZWQgcmVjdCBpcyBwdXNoZWQgb3ZlciBhIHNjcm9sbGJh
cidzCisgICAgICAgIHdpZHRoLgorICAgICAgICAqIGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1zYW1lLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
dmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTA0LTA4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIGZvciBhcHAgYm91bmQgcmVxdWVz
dCBjb250ZXh0IHN0cmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Zl
cnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAppbmRleCAwMDE1NTg5
ZDc0ZDliMTk1NzIxNWUyMzBkZDA3MmYwODRlOTUwYmFlLi41MGFhNWNhMTQxODMyZTU4ODZjODY4
NzJiZmRlMjkwOTA5OWExOGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0IDI5IDI5IDEwMCAxMDApCisgIChyZWN0
IDQ5IDI5IDEwMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3N2FiZmJj
ZDc4MTE3ZTg5ZWZjMzEzNjdmM2MzZmRhYWQ3NmI4NDFmLi5iNzU5MTQxNjRkODE4YzM4M2JkMWUz
MjM0NTQyOTEzNzQ4NmIzNDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
NCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjEgMTAwIDEwMCkKKyAgKHJlY3QgNDQg
MjEgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
dmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmMxNzBiODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJh
ci1wb3NpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250
YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKwor
CisKKworVGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xs
YmFyIG9uIHRoZSBsZWZ0LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZmEzOWRhNjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFy
LXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+
CitzZWN0aW9uID4gZGl2LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICBoZWlnaHQ6IDEwMHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xp
ZCBibGFjazsKKyAgb3ZlcmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7Cisg
IG1hcmdpbjogMTBweCAxMHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4Owor
ICBoZWlnaHQ6IDIwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7
IGRpcmVjdGlvbjogbHRyOyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3Jp
dGluZy1tb2RlOiBob3Jpem9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLWJ0OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0K
Ky52LWxyIHsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9u
IGNsYXNzPSJyaWdodCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBh
IHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRi
IGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4K
KyAgPGRpdiBjbGFzcz0iaC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3Rl
ZD0iMCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJz
cXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxy
IHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4K
Kzwvc2VjdGlvbj4KKworPHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNv
bnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9w
PgorICA8ZGl2IGNsYXNzPSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVj
dGVkPSI4MCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNz
PSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
di1ybCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2Pjwv
ZGl2PgorICA8ZGl2IGNsYXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4
cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMi
PkZBSUw8L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5k
b3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9y
IChsZXQgc3F1YXJlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgewor
ICAgIGxldCBhY3R1YWwgPSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFy
ZS5wYXJlbnROb2RlLm9mZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsK
KyAgICAgICAgdGV4dCArPSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnRO
b2RlLmNsYXNzTmFtZX0nIC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7
CisgICAgfQorfQorcmVzdWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425584</attachid>
            <date>2021-04-08 21:35:23 -0700</date>
            <delta_ts>2021-04-10 19:02:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210409143521.patch</filename>
            <type>text/plain</type>
            <size>55270</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uNDE3ZDAwZjdiMTEwMTg4Mzg0NjEzNTkwOWU3ZDk4
ZGFlNzUyOGExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDIxLTA0LTA4ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAg
ICAgICAgV2UgY3VycmVudGx5IG9ubHkgY29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xs
YmFyIHRvIHRoZSBsZWZ0IGZvcgorICAgICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0
YixidH07IGRpcmVjdGlvbjogcnRsYCBjb250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3
ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBl
ZGdlCisgICAgICAgIG9mIHRoZSBjb250YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUt
ZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQorICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwg
b3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3Jp
dGluZyBtb2RlKS4KKworICAgICAgICBTb21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGlu
ZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3Rl
YWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hldGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9u
IHRoZQorICAgICAgICBsZWZ0LCBub3Qgd2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9s
bGJhciBpcyBvbiB0aGUgbGVmdCAoc2luY2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcg
bW9kZXMsIHRoZSBibG9jayBkaXJlY3Rpb24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jp
em9udGFsIG9uZSBvbiB0aGUgYm90dG9tKS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAg
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBm
b3IKKyAgICAgICAgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxl
cnMgdGhhdCByZWFsbHkgZG8gY2FyZQorICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlv
biBzY3JvbGxiYXJzIHRvIGFkZGl0aW9uYWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5n
IG1vZGUuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0
YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFy
VGhlbWVBZHdhaXRhOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29u
dGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxv
Z2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJv
eFJlY3QgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zp
c2libGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIg
Y29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29t
cHV0ZVNjcm9sbERpbWVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
aXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0wNC0wOCAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjI3MzU0MSkgV0tXZWJWaWV3IGNhbid0IGxvYWQgTlNVUkxSZXF1ZXN0IHN1YmNsYXNzZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYjQwMzc0NzgyMmVhZTcwNzUyZmFkMjM0NzUyODIxNjBkMmMxOWU4MC4uNTZmZmU5
OGNkYmJhMGE5NjdhNzBjYTdiY2ZjODg4MWRhZTYwYjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wNC0wOCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5k
IGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIx
LTA0LTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjczNTQxKSBXS1dlYlZpZXcgY2FuJ3QgbG9hZCBOU1VSTFJlcXVl
c3Qgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDI3NTkw
OGRkMWRiNjYzM2VhNzY1YmRlZjdlM2U1NjkzMGFlYjQ2ZDMuLmM0ZWJlMjYwNWJjMTY5NWQ1MGRl
NWUwMzZkNzQ1NGE5YWVlMjUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
QEAgLTE1MTUsNyArMTUxNSw3IEBAIE9wdGlvbmFsPEN1cnNvcj4gRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoCiAgICAgICAgICAg
ICBhdXRvJiBsYXllclJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4o
KnJlbmRlcmVyKTsKICAgICAgICAgICAgIGluUmVzaXplciA9IGxheWVyUmVuZGVyZXIubGF5ZXIo
KS0+aXNQb2ludEluUmVzaXplQ29udHJvbChyb3VuZGVkSW50UG9pbnQocmVzdWx0LmxvY2FsUG9p
bnQoKSkpOwogICAgICAgICAgICAgaWYgKGluUmVzaXplcikKLSAgICAgICAgICAgICAgICByZXR1
cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpOwor
ICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNvcigpIDogc291dGhFYXN0UmVz
aXplQ3Vyc29yKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoKGVkaXRhYmxlIHx8IChyZW5k
ZXJlciAmJiByZW5kZXJlci0+aXNUZXh0KCkgJiYgbm9kZS0+Y2FuU3RhcnRTZWxlY3Rpb24oKSkp
ICYmICFpblJlc2l6ZXIgJiYgIXJlc3VsdC5zY3JvbGxiYXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCBjNTkxN2ZmOWFhN2MyMmU5MGU1NjcxMWY4NGJlMTEyNDk0N2M4NjU5Li4w
MjE3ZDM0MmJmOGYzYmNjMWI5OGE0ZTlmNTU0OThkNWIyN2M1MTU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC01NTUzLDkgKzU1NTMsOSBAQCBJbnRTaXplIEZyYW1lVmlldzo6dmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAgICAgcmV0dXJuIHsgKnZpZXdw
b3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsKIH0KIAotYm9vbCBGcmFtZVZp
ZXc6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9v
bCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAog
ewotICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIHJlbmRlclZpZXcoKSAm
JiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKIH0K
IAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRnJhbWVWaWV3
JiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDZhZTNhNDcxMTBjNTc0NzAzMzBm
Zjk1OWNlM2M4ZmIzZjNmNjVjYi4uZjRhNjA3OGU5MjY3YWM0M2ZhNDMxZjVmOWVjODY3ZTk5MjEy
ZTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NTUsNyArNjU1LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogICAgIHZvaWQgaGlkZSgpIGZpbmFsOwogCi0gICAg
Ym9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
ZmluYWw7CiAKICAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDhlNmIzYWFiNTk4YTM3NGM3
MTMyNDM2ZjhiMjE0YjFhODNjZjY1NGEuLmVkZjA1NDg2YjE2OTMwZWVmYWFlYmUwM2U1MDJmMTA1
NTIwMzRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC00MjIs
NyArNDIyLDcgQEAgU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6YWRqdXN0U2Nyb2xsUG9zaXRp
b25XaXRoaW5SYW5nZShjb25zdCBTY3JvbGxQb3NpdGlvbiYKIFNjcm9sbFBvc2l0aW9uIFNjcm9s
bFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkgLSBJbnRTaXplKAotICAgICAgICBzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9s
bGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCisgICAgICAg
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xs
YmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAg
aGVhZGVySGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoVG9wQ29udGVudEluc2V0VHlwZTo6V2Vi
Q29yZU9yUGxhdGZvcm1Db250ZW50SW5zZXQpKTsKIH0KIApAQCAtNzMyLDcgKzczMiw3IEBAIHZv
aWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgZGVz
aXJlZFBvc2l0aW9uKQogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIpIHsKICAgICAgICAg
aW50IGNsaWVudFdpZHRoID0gdmlzaWJsZVdpZHRoKCk7CiAgICAgICAgIEludFJlY3Qgb2xkUmVj
dChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCBo
QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92
ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6
IDAsCisgICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5v
Y2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxT
Y3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAgICAgd2lkdGgoKSAtIChtX3ZlcnRpY2FsU2Ny
b2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCksCiAgICAg
ICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKTsKQEAgLTc1MSw3ICs3NTEs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhcikgewogICAg
ICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgpOwogICAgICAgICBJbnRSZWN0
IG9sZFJlY3QobV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkpOwotICAgICAgICBJbnRS
ZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/
IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgSW50
UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDog
d2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICB0b3BD
b250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNldCgpIC0gKG1faG9yaXpvbnRh
bFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+b2NjdXBpZWRIZWlnaHQoKSA6IDAp
KTsKQEAgLTExNzksMTQgKzExNzksMTQgQEAgSW50UmVjdCBTY3JvbGxWaWV3OjpzY3JvbGxDb3Ju
ZXJSZWN0KCkgY29uc3QKICAgICBpbnQgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyID0gaGVpZ2h0
KCkgLSB0b3BDb250ZW50SW5zZXQoKTsKIAogICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIg
JiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSA+IDApIHsKLSAgICAg
ICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCisgICAg
ICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAg
ICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAg
ICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAg
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKICAgICB9CiAKICAgICBpZiAobV92
ZXJ0aWNhbFNjcm9sbGJhciAmJiBoZWlnaHRUcmFja2VkQnlTY3JvbGxiYXIgLSBtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRS
ZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0
aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgY29ybmVyUmVjdC51
bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3
aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIG1fdmVy
dGljYWxTY3JvbGxiYXItPmhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAg
ICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0VHJhY2tl
ZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKQEAgLTE1Mzgs
NyArMTUzOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c3R5bGVBbmRSZW5kZXJUcmVlRGlkQ2hhbmdl
KCkKIEludFBvaW50IFNjcm9sbFZpZXc6OmxvY2F0aW9uT2ZDb250ZW50cygpIGNvbnN0CiB7CiAg
ICAgSW50UG9pbnQgcmVzdWx0ID0gbG9jYXRpb24oKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Ny
b2xsYmFyKQogICAgICAgICByZXN1bHQubW92ZShtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGll
ZFdpZHRoKCksIDApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAzNTg3MTc5Y2RiN2Y2NzkzOThhN2M4NzczMTJlZDQ5
N2MxNmZlOGQ5Li5kNDgxZjdlZGNiZmJmMzNiZGFiNjYzNjc3YzhmZDUwYjczOGFmOWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTM0Miw3ICszNDIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNNb2NrU2Nyb2xsQW5pbWF0b3IoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBsb2dNb2NrU2Nyb2xsQW5pbWF0
b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAotICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
PSAwOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCA9
IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xs
YmFyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Ny
b2xsYmFyVGhlbWVBZHdhaXRhLmNwcAppbmRleCA0YjcyMTU0YmExZTJiN2MwNjFlOWNlYjQ1OWY0
Y2M1NTBlYWU1ZDQyLi44N2JhNGFkOTU1ZThmNDQ4NWVhY2VlOTc5MzdkOWMzOGJjYTNmZDhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1l
QWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxi
YXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVt
ZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWMKIAogICAgICAgICBJbnRSZWN0IGZyYW1lID0gcmVjdDsKICAgICAgICAgaWYgKHNjcm9s
bGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBp
ZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJl
YSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAg
ICBmcmFtZS5tb3ZlKGZyYW1lLndpZHRoKCkgLSBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwg
MCk7CiAgICAgICAgICAgICBmcmFtZS5zZXRXaWR0aChob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6
ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhl
bWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBn
cmFwaGljCiAgICAgSW50UmVjdCB0aHVtYiA9IHJlY3Q7CiAgICAgaWYgKHNjcm9sbGJhci5ob3Zl
cmVkUGFydCgpID09IE5vUGFydCAmJiB1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSkgewogICAgICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAg
ICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNj
cm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAg
ICAgICAgICAgICAgIHRodW1iLm1vdmUoaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1i
UG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAob3ZlcmxheVRodW1iU2l6ZSArIHRodW1iQm9y
ZGVyU2l6ZSkgKyBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwgdGh1bWJQb3MgKyB0aHVtYkJv
cmRlclNpemUpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRh
OjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9u
KCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkp
CisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoc2Ny
b2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1iU2l6ZSAvIDIpIC0gaG92ZXJl
ZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAo
c2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSwgdGh1bWJQb3MgKyB0aHVtYkJvcmRl
clNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJh
clRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAKaW5kZXggZmU1NTU4YzM1ODQ3YTg3Y2YyNzE2MDgxNTdmM2VmZWNkNjg0YTdiMC4u
Mjg5NmM3ZjNiMGQyNzhkYjA5YjgwMDkzNDczZmI2YmZhOGZjMjEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCkBAIC0xNDIsNyAr
MTQyLDcgQEAgc3RhdGljIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFyUGFydFN0YXRlRmxhZ3MoU2Ny
b2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKIHN0YXRpYyBSZW5kZXJUaGVtZVNjcm9s
bGJhcjo6VHlwZSB3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
dGtTdGF0ZUZsYWdzIHNjcm9sbGJhclN0YXRlKQogewogICAgIGlmIChzY3JvbGxiYXIub3JpZW50
YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAgICBpZiAoc2Nyb2xsYmFyLnNj
cm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
KQorICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclN0YXRl
ICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6
VmVydGljYWxTY3JvbGxiYXJMZWZ0IDogUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRp
Y2FsU2Nyb2xsSW5kaWNhdG9yTGVmdDsKICAgICAgICAgcmV0dXJuIHNjcm9sbGJhclN0YXRlICYg
R1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6VmVy
dGljYWxTY3JvbGxiYXJSaWdodCA6IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNh
bFNjcm9sbEluZGljYXRvclJpZ2h0OwogICAgIH0KQEAgLTM4MCw3ICszODAsNyBAQCBib29sIFNj
cm9sbGJhclRoZW1lR3RrOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250
ZXh0JiBncmFwaGljc0NvbgogICAgIC8vIGRyYXdpbmcgdGhlIGluZGljYXRvciB3ZSBuZWVkIHRv
IGFkanVzdCB0aGUgcmVjdGFuZ2xlIHRvIGl0cyBhY3R1YWwgc2l6ZSBpbiBpbmRpY2F0b3IgbW9k
ZS4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIp
IHsKICAgICAgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBwcmVmZXJyZWRTaXplLndpZHRoKCkpIHsK
LSAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKCFzY3JvbGxi
YXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkp
CiAgICAgICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoc3RkOjphYnMocmVjdC53aWR0aCgp
IC0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSwgMCk7CiAgICAgICAgICAgICBjb250ZW50c1JlY3Qu
c2V0V2lkdGgocHJlZmVycmVkU2l6ZS53aWR0aCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCmluZGV4IGJkMDYxNWYy
MmQzNTg2MjA0Y2JiYTBlNzhiMmEyNDI3ZmJhMTdmMGEuLjUzOTYxYTdiNzIwNDAxZjcyZTIyNDVj
YmI0ZTIxYjc2Nzk1YWQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFNjcm9sbGJhclRo
ZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXImIHNjcm9sbGJhcikKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xsZXJJbXAgPSBwYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgQVNTRVJUKHNjcm9sbGVySW1wKTsKLSAgICBzY3Jv
bGxlckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFi
bGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gTlNV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsKKyAgICBzY3JvbGxlckltcC51c2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
UmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCA3ZDU3ZGFhOWNkZmE4MWM0ZTVk
NzU3YTZjYjY1YzUwNDQ0Mzk3NWUxLi43MmUwZTVjZjg4ZjUyZWRmMzMwMTllYTE2OWNiMmIxMzYx
YmY2Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCkBA
IC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29s
KiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VVcGRhdGVTY3JvbGxi
YXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3Zl
cnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Ny
b2xsVG8oaW50IG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAppbmRleCBkZTJlZDQ1MTMwMjY3Y2QxOTQ5MTFjYmUzNjBjMGYzOThlOWRiYzNjLi4zYTRiMDM3
YTcyNTgxZGY4MTdkOTIzYzdiMDEyNGI1YjVmZGFjMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5MDIsNyArMTkwMiw3IEBAIExheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQoKSBjb25zdAogTGF5b3V0VW5pdCBSZW5kZXJCbG9j
azo6bG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBm
cmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0ID0gc3R5
bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAg
ICBsb2dpY2FsTGVmdE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgaWYg
KCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0OwpAQCAtMTkxMyw3
ICsxOTEzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JD
b250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmEKIExheW91dFVuaXQgUmVuZGVyQmxv
Y2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQoUmVuZGVyRnJhZ21lbnRDb250YWluZXIq
IGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0ID0g
c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAgIGlmIChzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAg
ICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAg
IGxvZ2ljYWxSaWdodE9mZnNldCArPSBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKICAgICBpZiAo
IWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAppbmRleCAyMmYzZmEwNmU1ZDRiMzhmNDQyZWMyODQwNTdkNzE3MWNhNmI1NTNjLi4zNmMxOTFk
MDVhMjg4MzI2OTdlNjA1YjkwZThmN2M5MTdlNGYzZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtODgzLDcgKzg4Myw3IEBAIExheW91dFVu
aXQgUmVuZGVyQmxvY2tGbG93OjptYXJnaW5PZmZzZXRGb3JTZWxmQ29sbGFwc2luZ0Jsb2NrKCkK
IHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hp
bGQoUmVuZGVyQm94JiBjaGlsZCwgQXBwbHlMYXlvdXREZWx0YU1vZGUgYXBwbHlEZWx0YSkKIHsK
ICAgICBMYXlvdXRVbml0IHN0YXJ0UG9zaXRpb24gPSBib3JkZXJTdGFydCgpICsgcGFkZGluZ1N0
YXJ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHN0YXJ0UG9zaXRpb24gKz0gKHN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IC0xKSAqIHZlcnRpY2FsU2Nyb2xsYmFyV2lk
dGgoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsQXZhaWxhYmxlTG9naWNhbFdpZHRoID0gYm9yZGVy
QW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpICsgYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNTc2ZWU1ZGNjOWEzZTZkZjdl
NTFiZTllMmIyNjJmMmIyMDA3MzJiNC4uN2E3ODYzYTY5MzAxZTYwZWUyZTlmNzEwOGFjYzRmY2Ri
YmI0NTg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTcyMiw3
ICs3MjIsNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJCb3g6OnJvdW5kZWRCb3JkZXJCb3hSZWN0KCkg
Y29uc3QKIExheW91dFJlY3QgUmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCgpIGNvbnN0CiB7CiAg
ICAgYXV0byB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+dmVydGljYWxTY3JvbGxiYXJX
aWR0aCgpOwotICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xsYmFyID0gc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA6
IDA7CisgICAgTGF5b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIgPSBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoIDogMDsKIAogICAg
IHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIG9mZnNldEZvclNjcm9sbGJhciwgYm9y
ZGVyVG9wKCksCiAgICAgICAgIHdpZHRoKCkgLSBib3JkZXJMZWZ0KCkgLSBib3JkZXJSaWdodCgp
IC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCwKQEAgLTczNiw3ICs3MzYsNyBAQCBMYXlvdXRSZWN0
IFJlbmRlckJveDo6Y29udGVudEJveFJlY3QoKSBjb25zdAogCiBMYXlvdXRQb2ludCBSZW5kZXJC
b3g6OmNvbnRlbnRCb3hMb2NhdGlvbigpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCBzY3JvbGxi
YXJTcGFjZSA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0VW5pdCBzY3JvbGxiYXJTcGFj
ZSA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoKSA6IDA7CiAgICAgcmV0dXJuIHsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQo
KSArIHNjcm9sbGJhclNwYWNlLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSB9OwogfQogCkBA
IC0xOTY0LDcgKzE5NjQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVj
dChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlckZyYWdtZQogCiAgICAgLy8gU3Vi
dHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYgd2UgaGF2ZSB0aGVtLgogICAgIGlmIChhdXRvKiBzY3Jv
bGxhYmxlQXJlYSA9IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxhYmxlQXJlYSgpIDogbnVsbHB0
cikgewotICAgICAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKQorICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQog
ICAgICAgICAgICAgY2xpcFJlY3QubW92ZShzY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxi
YXJXaWR0aChyZWxldmFuY3kpLCAwKTsKICAgICAgICAgY2xpcFJlY3QuY29udHJhY3Qoc2Nyb2xs
YWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgc2Nyb2xsYWJsZUFy
ZWEtPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5KSk7CiAgICAgfQpAQCAtMzc1
OCw3ICszNzU4LDggQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUKICAgICBjb21wdXRlZFZhbHVl
cy5tX2V4dGVudCArPSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAgaWYgKGlzPFJlbmRlckJveD4o
Y29udGFpbmVyQmxvY2spKSB7CiAgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCb3ggPSBkb3duY2Fz
dDxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKTsKLSAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3gu
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAvLyBG
SVhNRTogT25seSBpZiB2ZXJ0aWNhbCBzY3JvbGxiYXIgaXMgYSBibG9jayBzY3JvbGxiYXI/Cisg
ICAgICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgICAgIGNvbXB1dGVkVmFsdWVzLm1fcG9zaXRpb24gKz0gY29udGFpbmlu
Z0JveC52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgfQogICAgIApAQCAtNDk3OSw3ICs0
OTgwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0KCkgY29u
c3QKICAgICBmbGlwRm9yV3JpdGluZ01vZGUocmVjdCk7CiAgICAgLy8gU3VidHJhY3Qgc3BhY2Ug
b2NjdXBpZWQgYnkgc2Nyb2xsYmFycy4gVGhleSBhcmUgYXQgdGhlaXIgcGh5c2ljYWwgZWRnZSBp
biB0aGlzIGNvb3JkaW5hdGUKICAgICAvLyBzeXN0ZW0sIHNvIG9yZGVyIGlzIGltcG9ydGFudCBo
ZXJlOiBmaXJzdCBmbGlwLCB0aGVuIHN1YnRyYWN0IHNjcm9sbGJhcnMuCi0gICAgaWYgKHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkp
CiAgICAgICAgIHJlY3QubW92ZSh2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwogICAgIHJl
Y3QuY29udHJhY3QodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCBob3Jpem9udGFsU2Nyb2xsYmFy
SGVpZ2h0KCkpOwogICAgIHJldHVybiByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggMDg2MWI3NWQ3ZWJjY2IxNzVlMDcz
YjRhOGIxNTg4NTcyNTU5ZDkwZS4uYzgwOWE3MGUwYmQ4NTQ5NWU3OTM2MzJjOTJiNmI3NDk2ODc3
ZWRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwCkBAIC01NTUsNyArNTU1LDcgQEAgRmxvYXRSZWN0IFJlbmRlckJveE1vZGVsT2Jq
ZWN0Ojpjb25zdHJhaW5pbmdSZWN0Rm9yU3RpY2t5UG9zaXRpb24oKSBjb25zdAogICAgICAgICAg
ICAgc2Nyb2xsT2Zmc2V0ID0gRmxvYXRQb2ludCgpICsgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9m
ZnNldCgpOwogCiAgICAgICAgIGZsb2F0IHNjcm9sbGJhck9mZnNldCA9IDA7Ci0gICAgICAgIGlm
IChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94
LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxl
QXJlYSkKKyAgICAgICAgaWYgKGVuY2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVyKCkgJiYgZW5j
bG9zaW5nQ2xpcHBpbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYm
IHNjcm9sbGFibGVBcmVhKQogICAgICAgICAgICAgc2Nyb2xsYmFyT2Zmc2V0ID0gc2Nyb2xsYWJs
ZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUp
OwogCiAgICAgICAgIGNvbnN0cmFpbmluZ1JlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChzY3Jv
bGxPZmZzZXQueCgpICsgc2Nyb2xsYmFyT2Zmc2V0LCBzY3JvbGxPZmZzZXQueSgpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA3YTU5NThjOTIzYTIxNDg2
MjFhZmNkYzNjNGRiY2Y0YTM3YjQyMzExLi41Njk1NjFiYzc0ZDNkN2MwZDNiNTFkYjRjZjY0N2Uz
MjgxZmQzNmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTI0MzAsOSArMjQzMCwxMCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAvLyBi
b3JkZXIgZWRnZS4gTWFrZSB0aGUgcmVjdGFuZ2xlIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGxhYmxl
IGFyZWEuCiAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlQnkoLUxheW91dFBvaW50KGJveC0+
Ym9yZGVyTGVmdCgpLCBib3gtPmJvcmRlclRvcCgpKSk7CiAKLSAgICAgICAgaWYgKGJveC0+c2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7Ci0gICAgICAgICAgICAv
LyBGb3IgZGlyZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YiBib3gsIHRo
ZSBzY3JvbGwgYmFyIGlzIG9uIHRoZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3QKLSAgICAg
ICAgICAgIC8vIHN0YXJ0cyBmcm9tIHRoZSByaWdodCBzaWRlIG9mIHNjcm9sbCBiYXIuIFNvIHRo
ZSB4IG9mIGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlv
biB0b28uCisgICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkgeworICAgICAgICAgICAgLy8gRm9yIGBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLXt0YixidH1gIGFuZCBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAKKyAg
ICAgICAgICAgIC8vIGJveGVzLCB0aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBU
aGUgdmlzaWJsZSByZWN0IHN0YXJ0cyBmcm9tIHRoZSByaWdodCBzaWRlCisgICAgICAgICAgICAv
LyBvZiB0aGUgc2Nyb2xsIGJhci4gU28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBz
dGFydCBmcm9tIHRoZSBzYW1lIHBvc2l0aW9uIHRvby4KICAgICAgICAgICAgIGxvY2FsRXhwb3Nl
UmVjdC5tb3ZlQnkoTGF5b3V0UG9pbnQoLXNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCksIDApKTsKICAgICAgICAgfQogICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRz
KDBfbHUsIDBfbHUsIGJveC0+Y2xpZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQoKSk7CkBA
IC0yNjc2LDcgKzI2NzcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldnQsIGNvbnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIGVsZW1lbnQt
PnNldE1pbmltdW1TaXplRm9yUmVzaXppbmcobWluaW11bVNpemUpOwogICAgIAogICAgIExheW91
dFNpemUgYWRqdXN0ZWRPbGRPZmZzZXQgPSBMYXlvdXRTaXplKG9sZE9mZnNldC53aWR0aCgpIC8g
em9vbUZhY3Rvciwgb2xkT2Zmc2V0LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7Ci0gICAgaWYgKHJl
bmRlcmVyLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAg
ICBpZiAocmVuZGVyZXItPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewog
ICAgICAgICBuZXdPZmZzZXQuc2V0V2lkdGgoLW5ld09mZnNldC53aWR0aCgpKTsKICAgICAgICAg
YWRqdXN0ZWRPbGRPZmZzZXQuc2V0V2lkdGgoLWFkanVzdGVkT2xkT2Zmc2V0LndpZHRoKCkpOwog
ICAgIH0KQEAgLTI3MzMsNyArMjczNCw3IEBAIFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xS
ZWN0cyBSZW5kZXJMYXllcjo6b3ZlcmZsb3dDb250cm9sc1JlY3RzKCkgY29uc3QKICAgICAvLyBT
Y3JvbGxiYXJzIHNpdCBpbnNpZGUgdGhlIGJvcmRlciBib3guCiAgICAgYXV0byBvdmVyZmxvd0Nv
bnRyb2xzUG9zaXRpb25pbmdSZWN0ID0gc25hcHBlZEludFJlY3QocmVuZGVyQm94LnBhZGRpbmdC
b3hSZWN0SW5jbHVkaW5nU2Nyb2xsYmFyKCkpOwogCi0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKTsKKyAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSByZW5kZXJCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJv
b2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUmVzaXplOjpO
b25lOwogCiAgICAgT3ZlcmZsb3dDb250cm9sUmVjdHMgcmVzdWx0OwpAQCAtMjc4Niw3ICsyNzg3
LDcgQEAgU3RyaW5nIFJlbmRlckxheWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIEludFNp
emUgUmVuZGVyTGF5ZXI6Om9mZnNldEZyb21SZXNpemVDb3JuZXIoY29uc3QgSW50UG9pbnQmIGxv
Y2FsUG9pbnQpIGNvbnN0CiB7CiAgICAgYXV0byByZXNpemVyUmVjdCA9IG92ZXJmbG93Q29udHJv
bHNSZWN0cygpLnJlc2l6ZXI7Ci0gICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1p
blhNYXhZQ29ybmVyKCkgOiByZXNpemVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOworICAgIGF1dG8g
cmVzaXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1h
eFlDb3JuZXIoKTsKICAgICByZXR1cm4gbG9jYWxQb2ludCAtIHJlc2l6ZUNvcm5lcjsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCBkY2NlY2NmZDUwMGVhMGViNzExZTA3OTg0YjM4MTQxZDg3YTZkNjFkLi41Njg0MDhk
OGE4MzA2ZWY3NDhkOWM5Yjc4YzkwMDIxMDUxMTEyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIzMCw3ICsyMjMw
LDcgQEAgRmxvYXRQb2ludCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExh
eWVyKCkgY29uc3QKICAgICBhdXRvJiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCk7CiAKICAgICByZXR1cm4gRmxvYXRQb2ludCgKLSAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFs
U2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAorICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJ
bnRydXNpb24oKSA6IDAsCiAgICAgICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySW5zZXRDbGlw
TGF5ZXIoZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCksIGZyYW1lVmlldy50b3BDb250ZW50SW5z
ZXQoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggZGFiNWVhOTg0ZTcyZTFhNWRmYmZiMTE0OThjN2I3Mjhm
Yjk5ZjdhZi4uMmJiNWE1NTI4OWY2NDg5ODAxNGY3NDVlYjRlMWIxMzAxMGE1MTQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cApAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0K
IAotYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xs
YmFycyByZXF1aXJlIHNvbWUgc3lzdGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0
IGRvZXMgbm90IGV4aXN0IG9uIGNlcnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBz
ZXBhcmF0ZSBtZWNoYW5pc20uCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNSwxMiAr
MjE1LDEyIEBAIGJvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiAjZWxzZQogICAgIHN3aXRjaCAoc2V0dGlu
Z3MoKS51c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KCkpIHsKICAgICBjYXNlIFVzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3k6OkNvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLnNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICAgICAgcmV0dXJu
IHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGNhc2Ug
VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6U3lzdGVtOgogICAgICAgICByZXR1cm4gc2V0
dGluZ3MoKS5zeXN0ZW1MYXlvdXREaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEw7CiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBzdHlsZSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gc3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5k
ZXggOWM5NjZmN2ViMmYwMjdkNjMwZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEy
ZDc4YTUzZGRkNWM2YWYzZDdmZjhkYzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVj
dHM+IGxheWVyUmVwYWludFJlY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCA5Njg1OTc4
ODg2NjNhODQ1YzQzMTUxMWQ1OGMxNmFmYjEyYzBkYmNlLi5iMzhhMDdhYjY2NzUyODIzYzNjNDNm
ZjE0N2YxZGNmODA4NTNlMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAg
IGVsZW1lbnQtPnNldFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAot
Ym9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAg
LTY1NCw3ICs2NTQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZl
Tm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9o
QmFyLmdldCgpKTsKICAgICBib29sIGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBp
c05vbk92ZXJsYXlTY3JvbGxiYXIobV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPblRoZUxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIg
PSByZW5kZXJlci5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNj
cm9sbGJhcnNBdm9pZENvcm5lciA9IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIg
JiYgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmICho
YXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNh
bFNjcm9sbGJhcikpOwogCkBAIC0xMDE1LDcgKzEwMTUsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxEaW1lbnNpb25zKCkKICAgICBtX3Njcm9sbEhlaWdo
dCA9IHJvdW5kVG9JbnQob3ZlcmZsb3dCb3R0b20oKSAtIG92ZXJmbG93VG9wKCkpOwogCiAgICAg
aW50IHNjcm9sbGFibGVMZWZ0T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0g
Ym94LT5ib3JkZXJMZWZ0KCkpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3Zl
cmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQ
b2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpA
QCAtMTMzNiw3ICsxMzM2LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpkcmF3
UGxhdGZvcm1SZXNpemVySW1hZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXgKICAgICAgICAgY29y
bmVyUmVzaXplclNpemUgPSByZXNpemVDb3JuZXJJbWFnZS0+c2l6ZSgpOwogICAgIH0KIAotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBp
ZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAgIGNvbnRl
eHQuc2F2ZSgpOwogICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZXNpemVyQ29ybmVyUmVjdC54
KCkgKyBjb3JuZXJSZXNpemVyU2l6ZS53aWR0aCgpLCByZXNpemVyQ29ybmVyUmVjdC55KCkgKyBy
ZXNpemVyQ29ybmVyUmVjdC5oZWlnaHQoKSAtIGNvcm5lclJlc2l6ZXJTaXplLmhlaWdodCgpKTsK
ICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoLTEuMCwgMS4wKSk7CkBAIC0xNDk3LDcg
KzE0OTcsNyBAQCBib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVy
SW5GcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmCiAgICAgYXV0byByZWN0cyA9IG92ZXJm
bG93Q29udHJvbHNSZWN0cygpOwogCiAgICAgYXV0byBjb3JuZXJSZWN0SW5GcmFnbWVudCA9IFsm
XShjb25zdCBJbnRSZWN0JiBmcmFnbWVudEJvdW5kcywgY29uc3QgSW50UmVjdCYgcmVzaXplclJl
Y3QpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSkgeworICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
KSB7CiAgICAgICAgICAgICBJbnRTaXplIG9mZnNldEZyb21Cb3R0b21MZWZ0ID0gYm9yZGVyQm94
UmVjdC5taW5YTWF4WUNvcm5lcigpIC0gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKTsKICAg
ICAgICAgICAgIHJldHVybiBJbnRSZWN0IHsgZnJhZ21lbnRCb3VuZHMubWluWE1heFlDb3JuZXIo
KSAtIG9mZnNldEZyb21Cb3R0b21MZWZ0IC0gSW50U2l6ZSB7IDAsIHJlc2l6ZXJSZWN0LmhlaWdo
dCgpIH0sIHJlc2l6ZXJSZWN0LnNpemUoKSB9OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBkZTI2
YjMwNDg5NjY2NmE1Y2RkNjRiNTBmNzZkNmQ1MWVkNjNlYWQzLi5iNDhhYjE1YzZhNmM2MDVjYWUw
ZThhNmMwMTFjYTdhN2MzYmIxYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgdXNlc0FzeW5jU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKKyAgICBi
b29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAog
ICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3Qm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRl
eCA5NTBiMWQ3ZTMxZDJjMGNkODQ3N2RkMWFiNmEzOGM1MGY1NzJkZjlmLi4zZWE3YjcwMjRhZWE4
Y2I5Zjg1MjgwYjVkOGY2NWE0OWQ5MGU4OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJM
aXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIGJvb2wg
Zmlyc3QKIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdChjb25z
dCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgaW50IGluZGV4KQogewogICAgIExheW91
dFVuaXQgeCA9IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdkJhcikKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdkJhcikKICAgICAgICAgeCArPSBtX3ZCYXItPm9jY3VwaWVkV2lkdGgoKTsKICAgICBM
YXlvdXRVbml0IHkgPSBhZGRpdGlvbmFsT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFkZGlu
Z1RvcCgpICsgaXRlbUhlaWdodCgpICogKGluZGV4IC0gbV9pbmRleE9mZnNldCk7CiAgICAgcmV0
dXJuIExheW91dFJlY3QoeCwgeSwgY29udGVudFdpZHRoKCksIGl0ZW1IZWlnaHQoKSk7CkBAIC0z
NjMsNyArMzYzLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcihQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW4KICAgICBpZiAoIW1fdkJhcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgp
ICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxl
ZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKKyAgICBM
YXlvdXRVbml0IGxlZnQgPSBwYWludE9mZnNldC54KCkgKyAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVuaXQgdG9wID0gcGFpbnRPZmZzZXQueSgp
ICsgYm9yZGVyVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IG1fdkJhci0+d2lkdGgoKTsK
ICAgICBMYXlvdXRVbml0IGhlaWdodCA9IHRoaXMtPmhlaWdodCgpIC0gKGJvcmRlclRvcCgpICsg
Ym9yZGVyQm90dG9tKCkpOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6
aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgTGF5
b3V0CiAgICAgaWYgKCFtX3ZCYXIgfHwgIW1fdkJhci0+c2hvdWxkUGFydGljaXBhdGVJbkhpdFRl
c3RpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTGF5b3V0VW5pdCB4ID0gYWNj
dW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFy
LT53aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IHggPSBhY2N1bXVsYXRlZE9mZnNldC54KCkgKyAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lk
dGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVuaXQg
eSA9IGFjY3VtdWxhdGVkT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQg
d2lkdGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5o
ZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCk7CkBAIC00OTEsOSArNDkxLDkg
QEAgaW50IFJlbmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KGNvbnN0IExheW91dFNpemUm
IG9mZnNldCkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50IHNjcm9sbGJhcldpZHRoID0g
bV92QmFyID8gbV92QmFyLT53aWR0aCgpIDogMDsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQo
KSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQorICAgIGlmIChzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhcldpZHRoIHx8IG9mZnNldC53aWR0aCgp
ID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQoKSkpCiAgICAgICAgIHJl
dHVybiAtMTsKLSAgICBpZiAoIXNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIHx8
IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQo
KSAtIHNjcm9sbGJhcldpZHRoKSkKKyAgICBpZiAoIXNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dCgpIHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5n
UmlnaHQoKSAtIHNjcm9sbGJhcldpZHRoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50
IG5ld09mZnNldCA9IChvZmZzZXQuaGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIHBhZGRpbmdUb3Ao
KSkgLyBpdGVtSGVpZ2h0KCkgKyBtX2luZGV4T2Zmc2V0OwpAQCAtODAwLDE0ICs4MDAsMTQgQEAg
Ym9vbCBSZW5kZXJMaXN0Qm94Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIFJlbmRlckxpc3RCb3g6
OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7Ci0gICAgc2Nyb2xs
UmVjdC5tb3ZlKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJv
cmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCks
IGJvcmRlclRvcCgpKTsKKyAgICBzY3JvbGxSZWN0Lm1vdmUoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBzY3JvbGxiYXIud2lkdGgoKSwgYm9yZGVyVG9wKCkpOwogICAgIHJlcGFpbnRSZWN0YW5nbGUo
c2Nyb2xsUmVjdCk7CiB9CiAKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3Jv
bGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHNjcm9s
bGJhclJlY3Q7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmln
aHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAt
IGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9w
ID0gYm9yZGVyVG9wKCk7CiAgICAgcmVjdC5tb3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJhclRv
cCk7CiAgICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVyVG9D
b250YWluaW5nVmlldyh0aGlzLCByZWN0KTsKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbnRSZWN0IFJl
bmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBT
Y3JvbGxiYXImIHNjcgogSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHBhcmVudFJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gdmlldygpLmZyYW1l
VmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRoaXMsIHBhcmVudFJl
Y3QpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkg
LSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNl
VmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3Jk
ZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJv
cmRlclRvcCgpOwogICAgIHJlY3QubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJhclRvcCk7
CiAgICAgcmV0dXJuIHJlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0
Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFy
JiBzY3IKIEludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250
YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHNj
cm9sbGJhclBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gc2Nyb2xsYmFyUG9p
bnQ7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0gYm9y
ZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwog
ICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29udGFp
bmluZ1ZpZXcodGhpcywgcG9pbnQpOwpAQCAtODM0LDcgKzgzNCw3IEBAIEludFBvaW50IFJlbmRl
ckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXImIHNjCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50
JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHZpZXcoKS5mcmFt
ZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJlbnRQ
b2ludCk7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0g
Ym9yZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJhclRv
cCk7CiAgICAgcmV0dXJuIHBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmgKaW5kZXggMjFiYmFhMjc4MDg2MDk4MWUxODJhZjBmOTkyNmM0ZjIxN2UxMzQyZS4uOWY5
M2QxOGU0MWRjOWM3M2I5ZTU5NjI5NTllNjA2YTU1ZWYwYWQwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBhaW50SXRlbUJhY2tncm91bmQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQm
LCBpbnQgbGlzdEluZGV4KTsKICAgICB2b2lkIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7CiAK
LSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOyB9CiAKICAgICBib29sIG1fb3B0aW9uc0No
YW5nZWQ7CiAgICAgYm9vbCBtX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJMYXlvdXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNGMzZmY0ZmFmZDJlYjUy
MmNlZWVmZDVjMjliNDg4M2I5NWNjMWFkMS4uM2NkMzBkYjc1ZjUxZmYyYTYzMTY0YmFhNTYzZWJh
MjVkZDA1NGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAt
NDczLDcgKzQ3Myw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29u
c3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpIGNvbnN0CiAgICAgICAgIC8vIGFuZCB0aGUgUmVu
ZGVyZXIgdGhhdCBjb250YWlucyB0aGUgaWZyYW1lLiBUaGlzIHRyYW5zZm9ybWF0aW9uIG11c3Qg
YWNjb3VudCBmb3IgYQogICAgICAgICAvLyBsZWZ0IHNjcm9sbGJhciAoaWYgb25lIGV4aXN0cyku
CiAgICAgICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gdGhpcy0+ZnJhbWVWaWV3KCk7Ci0gICAg
ICAgIGlmIChmcmFtZVZpZXcuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpKQorICAgICAgICBpZiAoZnJhbWVW
aWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVy
dGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKExheW91dFNp
emUoZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCktPm9jY3VwaWVkV2lkdGgoKSwgMCkpOwog
CiAgICAgICAgIG93bmVyQm94LT5yZXBhaW50UmVjdGFuZ2xlKGFkanVzdGVkUmVjdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBlZGYx
NzBhOTY5YTkwN2U5OTgzNjkyZWI5ODg1ODkwMmU3YjM2MzU4Li4wOWI4M2M4ZTMwMzlkM2NhZmUz
NzcxMzIzYTJiNDA1NTUxMDBjMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI1ODEsOSArMjU4MSw5IEBAIGZsb2F0IFJlbmRlclN0
eWxlOjpvdXRsaW5lT2Zmc2V0KCkgY29uc3QKICAgICByZXR1cm4gbV9iYWNrZ3JvdW5kRGF0YS0+
b3V0bGluZS5vZmZzZXQoKTsKIH0KIAotYm9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Citib29sIFJlbmRlclN0eWxlOjpzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gIWlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOworICAg
IHJldHVybiAoIWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKSB8fCB3cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDsKIH0K
IAogVmVjdG9yPFBhaW50VHlwZSwgMz4gUmVuZGVyU3R5bGU6OnBhaW50VHlwZXNGb3JQYWludE9y
ZGVyKFBhaW50T3JkZXIgb3JkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IDk3MzAyZmE2MjcxNGI3OTEzZDUxZDhmMGJhNDE1YjQ1ZjVlYTNk
ODQuLjNiYTAwNDBmMmQwMDk2MGU1MjcxYWM3OWMxZGI1NWY5NzkyN2E4MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04MjksNyArODI5LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzSXNvbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJhaWxp
bmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0bzsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlX
aW4uaAppbmRleCA1N2NmMDhmZGQ2NzZlMjQ1YzE0OGQ3ZGNlZjBmMTNlZjRhZWNhOGMyLi5lZWQz
YTg0ZjQyOWMyODdkYTZlMGI0ODQ2NjMyYTdhOWE5NDhmM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaApAQCAtODAsNyArODAs
NyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgdmlzaWJsZVNpemUoKSBjb25zdCBv
dmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29s
KiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09u
TWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFi
bGVBbmNlc3RvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBiNWU2ZTUxOGJkNWY5
MDBlYzBlMWQ5NDRmZWI1NzQ4Mjk3MzM5MDY1Li42Y2RiZWRjZDA4NTcyZTBiNjU5OTg1NDNmZGY0
MmYyNTg0MDIyMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL1BERlBsdWdpbi5oCkBAIC0yNTYsNyArMjU2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgV2Vi
Q29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbGJhclBvaW50
KSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNlVXBk
YXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IGZp
bmFsOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBT
dHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gUERGUGx1Z2lu
IGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlYTBmNjY2NGQzZDhiM2QwOWFlYjJmNWJmNDk2YWJmNzNiNzY1
OWU4Li4wNGI4ZTcyMDk5NjJlZjFjNTFlYWZkOGQ4YjM5YmJlY2JhODljMGUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjEtMDQtMDggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxl
LmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxpbmUvYmxv
Y2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctcGFyZW50LWV4cGVjdGVkLnR4dDogVGhlIHNjcm9sbGJhciBpcworICAgICAgICBub3cgb24g
dGhlIGxlZnQsIHNvIHRoZSByZXBhaW50ZWQgcmVjdCBpcyBwdXNoZWQgb3ZlciBhIHNjcm9sbGJh
cidzCisgICAgICAgIHdpZHRoLgorICAgICAgICAqIGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1zYW1lLWV4cGVjdGVkLnR4dDogRGl0dG8uCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
dmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWw6IEFkZGVk
LgorCiAyMDIxLTA0LTA4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCB0ZXN0IGluZnJhc3RydWN0dXJlIGZvciBhcHAgYm91bmQgcmVxdWVz
dCBjb250ZXh0IHN0cmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTliMmJkOTY5ZGJjMDA2MzFh
Nzg0OWNjMmQ3NWRjNzQzMjNhMjU5OS4uODlmZTU3MzRkNTQzNGE5ZGI3NDY5ZmE5NTZjYmQ5ZDE4
OWQxZWE4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODc5LDYgKzQ4NzksMTAgQEAgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0w
MDIuaHRtbCBbIEltYWdlT24KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL3F1b3RlLXNjb3BpbmctMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3Bp
bmctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBUZXN0cyB0aGF0IGZhaWwgYmVj
YXVzZSB0aGV5IGFzc3VtZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBpbiBgd3JpdGluZy1tb2RlOiB2
ZXJ0aWNhbC1ybGAgZWxlbWVudHMgd2lsbCBiZSBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlCit3ZWJr
aXQub3JnL2IvMjI0MzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13
cml0aW5nLW1vZGVzL3NpemluZy1vcnRob2ctdnJsLWluLWh0Yi0wMTMueGh0IFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI0MzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvY3Nzb20tZ2V0Qm91bmRpbmdDbGllbnRSZWN0LXZlcnRpY2Fs
LXJsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogIyBAY291bnRlci1zdHlsZSByZWYgdGVz
dHMgdGhhdCBjdXJyZW50bHkgZmFpbAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1zdHlsZXMtMDA2Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcm1lbmlhbi9jc3MzLWNvdW50ZXItc3R5bGVzLTAwNy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCmluZGV4IDYyNTQ3MmY0N2YxZGZkMTYx
MmY1YmU0OGIxZjFjOTQ3YmI4MzVlYTAuLjBmNmFlODVhYzY2MGJhODFkZDI1YWM4NTFiOGUxM2Rj
NmM2MGU0OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVy
Zmxvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1v
dmVyZmxvdy1leHBlY3RlZC5odG1sCkBAIC0yOCw2ICsyOCwxMCBAQAogcCB7CiAgICAgbWFyZ2lu
LWJvdHRvbTogMzBweDsKIH0KKworLnRvcFJpZ2h0IHsKKyAgICBkaXJlY3Rpb246IHJ0bDsgIC8q
IHBsYWNlIHNjcm9sbGJhcnMgb24gdGhlIExIUyAqLworfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxi
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJm
bG93LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGlj
YWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAppbmRleCAwMDE1NTg5ZDc0ZDliMTk1NzIx
NWUyMzBkZDA3MmYwODRlOTUwYmFlLi44MmE0ZmVhYWEyMzM1ODM5Mjg5OTJjNzZmOGNkZTIxMmVj
ODY5ZDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3Zl
cmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
dmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIChy
ZXBhaW50IHJlY3RzCi0gIChyZWN0IDI5IDI5IDEwMCAxMDApCisgIChyZWN0IDQ0IDI5IDEwMCAx
MDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1v
dmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0
aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3N2FiZmJjZDc4MTE3ZTg5ZWZj
MzEzNjdmM2MzZmRhYWQ3NmI4NDFmLi5iNzU5MTQxNjRkODE4YzM4M2JkMWUzMjM0NTQyOTEzNzQ4
NmIzNDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3Zl
cmZsb3ctc2FtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Zl
cnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJlcGFp
bnQgcmVjdHMKLSAgKHJlY3QgMjkgMjEgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjEgMTAwIDEwMCkK
ICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Ny
b2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMx
NzBiODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250YWluZXJzIHNob3Vs
ZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKworCisKKworVGhlc2Ug
Zm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBs
ZWZ0LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmEz
OWRhNjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitzZWN0aW9uID4g
ZGl2LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBoZWlnaHQ6
IDEwMHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsKKyAg
b3ZlcmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7CisgIG1hcmdpbjogMTBw
eCAxMHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4OworICBoZWlnaHQ6IDIw
cHg7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7IGRpcmVjdGlvbjog
bHRyOyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3JpdGluZy1tb2RlOiBo
b3Jpem9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LWJ0OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKy52LWxyIHsgd3Jp
dGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9uIGNsYXNzPSJyaWdo
dCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNj
cm9sbGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIGx0ciI+PGRpdiBj
bGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFz
cz0iaC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+
PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEt
ZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIHJ0bCI+PGRpdiBj
bGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4K
KworPHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hv
dWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9wPgorICA8ZGl2IGNs
YXNzPSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9k
aXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRh
dGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBsdHIiPjxk
aXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2
IGNsYXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+
PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMiPkZBSUw8L3ByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9yIChsZXQgc3F1YXJl
IG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgeworICAgIGxldCBhY3R1
YWwgPSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFyZS5wYXJlbnROb2Rl
Lm9mZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgdGV4
dCArPSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnROb2RlLmNsYXNzTmFt
ZX0nIC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7CisgICAgfQorfQor
cmVzdWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAt
aW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAppbmRleCA2OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUzY2Zl
YWQyMTRhNjc0ZWQ1MmFiLi5lMDI0NGZjMjRkMWIyYjJkYzA1Nzk1NDc5MTZlZjM0ZGIxM2JjY2Mx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAK
IAogUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdp
dGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAogRkFJTCBTbmFwcyBj
b3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3Rs
eSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9y
IHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0
YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVj
dGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwt
cmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1
dCBnb3QgMTgwCiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5n
IG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2Vy
dF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAwCiBG
QUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBTbmFwcyBjb3Jy
ZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGln
bjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBv
biB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
J2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGln
bm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC01MDAg
YnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3
aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFs
czogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlM
IFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMzE1CitGQUlMIFNuYXBzIGNvcnJl
Y3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0
YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVj
dGVkIDE2NSBidXQgZ290IDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBy
dGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRf
ZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9w
LWV4cGVjdGVkLnR4dAppbmRleCA1YmQzYmM3MWRkMDNhY2UyY2VjN2EzNDQwYTdiZGM2ZGQ0MjQ2
NmI4Li41MTIxNmJiOWE5OTBhMDc1NmFmZWJiMGQ0YTBkYjNiMGNhNTY4MWYyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBl
Y3RlZC50eHQKQEAgLTExLDYgKzExLDYgQEAgUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10
YjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0
aW9uOnJ0bAogUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIKIFBB
U1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCi1GQUlMIHdyaXRpbmct
bW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5k
aW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAotRkFJTCB3
cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9lcXVh
bHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0xNTAK
K1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyCitQQVNTIHdyaXRp
bmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425694</attachid>
            <date>2021-04-10 19:02:07 -0700</date>
            <delta_ts>2021-04-12 21:41:19 -0700</delta_ts>
            <desc>Squashed patch with dependencies for EWS</desc>
            <filename>bug-224224-20210411120205.patch</filename>
            <type>text/plain</type>
            <size>64296</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1Njg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkyOTdjNTFkMDcxOTYy
NzkwNjM0ODk5NWI5N2YyMTRkZTQxMmZlMi4uODNhNGEwYmMyNTBjMGI4YmU0NTU1YTlhMWIwOGE3
MGI4MWY1NDllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOSBAQAorMjAyMS0wNC0wOCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZlcnRp
Y2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcg
bW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0OiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbAorCisg
ICAgICAgIFdlIGN1cnJlbnRseSBvbmx5IGNvbnNpZGVyIG1vdmluZyBhIHZlcnRpY2FsIHNjcm9s
bGJhciB0byB0aGUgbGVmdCBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17
dGIsYnR9OyBkaXJlY3Rpb246IHJ0bGAgY29udGFpbmVycy4gQnV0CisgICAgICAgIGlkZWFsbHkg
d2Ugc2hvdWxkIGFsd2F5cyBwbGFjZSB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGF0IHRoZSBlbmQg
ZWRnZQorICAgICAgICBvZiB0aGUgY29udGFpbmVyICh3aGV0aGVyIHRoYXQncyB0aGUgaW5saW5l
LWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEKKyAgICAgICAgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUs
IG9yIHRoZSBibG9jay1lbmQgZWRnZSwgd2hlbiB1c2luZyBhIHZlcnRpY2FsCisgICAgICAgIHdy
aXRpbmcgbW9kZSkuCisKKyAgICAgICAgU29tZSBmdW5jdGlvbnMgY2FsbGluZyB0aGUgZXhpc3Rp
bmcgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdAorICAgICAgICBpbnN0
ZWFkIHJlYWxseSBjYXJlIGFib3V0IHdoZXRoZXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBv
biB0aGUKKyAgICAgICAgbGVmdCwgbm90IHdoZXRoZXIgdGhlIGJsb2NrIGRpcmVjdGlvbiBzY3Jv
bGxiYXIgaXMgb24gdGhlIGxlZnQgKHNpbmNlCisgICAgICAgIGZvciB2ZXJ0aWNhbCB3cml0aW5n
IG1vZGVzLCB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyB0aGUKKyAgICAgICAgaG9y
aXpvbnRhbCBvbmUgb24gdGhlIGJvdHRvbSkuIFNvIHdlIHJlbmFtZSB0aGlzIHRvCisgICAgICAg
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQsIG1ha2UgaXQgcmV0dXJuIHRydWUg
Zm9yCisgICAgICAgIGB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCwgYW5kIGFkanVzdCBjYWxs
ZXJzIHRoYXQgcmVhbGx5IGRvIGNhcmUKKyAgICAgICAgb25seSBhYm91dCBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFycyB0byBhZGRpdGlvbmFsbHkgY2hlY2sgdGhlaXIKKyAgICAgICAgd3JpdGlu
ZyBtb2RlLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRnJhbWVW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6bG9jYXRpb25PZkNvbnRlbnRzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Fkd2Fp
dGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lQWR3YWl0YTo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludCk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0ZVNjcm9sbGVySW1wKToKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdo
dE9mZnNldEZvckNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVM
b2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxX
aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRC
b3hSZWN0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmlu
Z1JlY3RGb3JTdGlja3lQb3NpdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om92ZXJmbG93Q29udHJvbHNSZWN0cyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lciBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVy
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlY3Rz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNv
bXB1dGVTY3JvbGxEaW1lbnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKKzIwMjEtMDQtMTAgIENhbWVyb24g
TWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggaW5pdGlhbCBob3Jp
em9udGFsIHNjcm9sbGJhciBwb3NpdGlvbiB3aGVuIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBvbiB0
aGUgbGVmdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNjcm9sbGFibGUgZWxlbWVudHMgdGhhdCBwbGFjZSB0aGVpciB2ZXJ0aWNhbCBzY3JvbGxiYXIg
b24gdGhlIGxlZnQKKyAgICAgICAgKGUuZy4gd2hlbiB0aGV5J3JlIGBkaXJlY3Rpb246IHJ0bGAg
b3Igd2hlbiB0aGUgT1MgbGFuZ3VhZ2UgaXMgUlRMIGFuZAorICAgICAgICB0aGUgcmVsZXZhbnQg
c2V0dGluZyB0byBhbHdheXMgZm9sbG93IE9TIHNjcm9sbGJhciBzaWRlIGlzIHVzZWQpIGhhdmUK
KyAgICAgICAgYW4gaW5jb3JyZWN0IHNjcm9sbCBvcmlnaW4sIHdoaWNoIGxlYWRzIHRvIGNyZWF0
aW5nIGEgaG9yaXpvbnRhbAorICAgICAgICBzY3JvbGxiYXIgd2l0aCBhbiBpbmNvcnJlY3QgaW5p
dGlhbCBvZmZzZXQuICBUaGlzIGlzIGJlY2F1c2UKKyAgICAgICAgUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYTo6Y29tcHV0ZVNjcm9sbERpbWVuc2lvbnMgcnVucyBwcmlvciB0byB0aGUKKyAgICAg
ICAgc2Nyb2xsYmFycyBiZWluZyBjcmVhdGVkLiAgU28gd2hlbmV2ZXIgd2Ugc3RhcnQgb3Igc3Rv
cCBoYXZpbmcgYQorICAgICAgICAobm9uLW92ZXJsYXkpIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0
aGUgbGVmdCwgd2UgbmVlZCB0byByZWNvbXB1dGUKKyAgICAgICAgdGhlIHNjcm9sbCBvcmlnaW4g
YW5kIGZpeCB1cCB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIncyBvZmZzZXQuCisKKyAgICAgICAg
VGVzdHM6IGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHlu
YW1pYy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJs
ZUFyZWE6OmNvbXB1dGVTY3JvbGxEaW1lbnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxPcmlnaW4pOiBTcGxpdCB0aGlzCisg
ICAgICAgIG91dCBvZiBjb21wdXRlU2Nyb2xsRGltZW5zaW9ucyBzbyB3ZSBjYW4gY2FsbCBpdCBm
cm9tCisgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnNBZnRlckxheW91dCBhbmQgdXBkYXRlU2Nyb2xs
YmFyc0FmdGVyU3R5bGVDaGFuZ2UsIGFuZAorICAgICAgICBoYXZlIGl0IGFzayB0aGUgaG9yaXpv
bnRhbCBzY3JvbGxiYXIgdG8gdXBkYXRlIGl0cyBvZmZzZXQuICBXZSBjb3VsZAorICAgICAgICBj
b25kaXRpb24gdGhpcyBvbiB0aGUgc2Nyb2xsIG9yaWdpbiBhY3R1YWxseSBoYXZpbmcgY2hhbmdl
ZCwgYnV0CisgICAgICAgIHRoYXQncyBnb2luZyB0byBiZSBhIHNpbWlsYXIgY2hlY2sgdGhhdCBT
Y3JvbGxiYXI6Om9mZnNldERpZENoYW5nZQorICAgICAgICBkb2VzIHRvIGVuc3VyZSB0aGUgb2Zm
c2V0IHZhbHVlIGRpZCBpbmRlZWQgY2hhbmdlLiAgV2UgZG9uJ3Qgd2FudCB0bworICAgICAgICBj
b25kaXRpb24gdGhpcyBvbiBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCksIHNpbmNlCisgICAgICAgIHRoYXQncyBkZXBlbmRlbnQgb24gdGhlIGN1cnJlbnQgc3R5bGUs
IGFuZCB3ZSBtYXkgYmUgcmVhY3RpbmcgdG8gYQorICAgICAgICBzdHlsZSBjaGFuZ2UgcmVtb3Zl
ZCB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0LgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9s
bGJhcnNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5oOgorCiAyMDIxLTA0LTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjczNTQxKSBXS1dlYlZp
ZXcgY2FuJ3QgbG9hZCBOU1VSTFJlcXVlc3Qgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNDAzNzQ3
ODIyZWFlNzA3NTJmYWQyMzQ3NTI4MjE2MGQyYzE5ZTgwLi41NmZmZTk4Y2RiYmEwYTk2N2E3MGNh
N2JjZmM4ODgxZGFlNjBiNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTA4
ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2Ug
dmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3Jp
dGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmg6CisKIDIwMjEtMDQtMDggIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNzM1NDEpIFdLV2ViVmlldyBjYW4ndCBsb2FkIE5TVVJMUmVxdWVzdCBzdWJjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMjc1OTA4ZGQxZGI2NjMzZWE3NjVi
ZGVmN2UzZTU2OTMwYWViNDZkMy4uYzRlYmUyNjA1YmMxNjk1ZDUwZGU1ZTAzNmQ3NDU0YTlhZWUy
NTIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTUxNSw3ICsxNTE1
LDcgQEAgT3B0aW9uYWw8Q3Vyc29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBI
aXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wgc2gKICAgICAgICAgICAgIGF1dG8mIGxheWVyUmVu
ZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJMYXllck1vZGVsT2JqZWN0PigqcmVuZGVyZXIpOwogICAg
ICAgICAgICAgaW5SZXNpemVyID0gbGF5ZXJSZW5kZXJlci5sYXllcigpLT5pc1BvaW50SW5SZXNp
emVDb250cm9sKHJvdW5kZWRJbnRQb2ludChyZXN1bHQubG9jYWxQb2ludCgpKSk7CiAgICAgICAg
ICAgICBpZiAoaW5SZXNpemVyKQotICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVy
LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJl
c2l6ZUN1cnNvcigpIDogc291dGhFYXN0UmVzaXplQ3Vyc29yKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmICgoZWRpdGFibGUgfHwgKHJlbmRlcmVyICYmIHJlbmRlcmVy
LT5pc1RleHQoKSAmJiBub2RlLT5jYW5TdGFydFNlbGVjdGlvbigpKSkgJiYgIWluUmVzaXplciAm
JiAhcmVzdWx0LnNjcm9sbGJhcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGM1
OTE3ZmY5YWE3YzIyZTkwZTU2NzExZjg0YmUxMTI0OTQ3Yzg2NTkuLjAyMTdkMzQyYmY4ZjNiY2Mx
Yjk4YTRlOWY1NTQ5OGQ1YjI3YzUxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTU1NTMsOSArNTU1Myw5IEBAIEludFNpemUgRnJhbWVWaWV3Ojp2aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzKCkgY29uc3QKICAgICByZXR1cm4geyAqdmlld3BvcnRTaXplLndpZHRoLCAq
dmlld3BvcnRTaXplLmhlaWdodCB9OwogfQogCi1ib29sIEZyYW1lVmlldzo6c2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Citib29sIEZyYW1lVmlldzo6c2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJl
bmRlclZpZXcoKSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogfQogCiBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGcmFtZVZpZXcmIHZpZXcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCAwNmFlM2E0NzExMGM1NzQ3MDMzMGZmOTU5Y2UzYzhmYjNmM2Y2
NWNiLi5mNGE2MDc4ZTkyNjdhYzQzZmE0MzFmNWY5ZWM4NjdlOTkyMTJlMDU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKQEAgLTY1NSw3ICs2NTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93
KCkgZmluYWw7CiAgICAgdm9pZCBoaWRlKCkgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAogICAgIHZv
aWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggOGU2YjNhYWI1OThhMzc0YzcxMzI0MzZmOGIyMTRiMWE4
M2NmNjU0YS4uZWRmMDU0ODZiMTY5MzBlZWZhYWViZTAzZTUwMmYxMDU1MjAzNGIxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTQyMiw3ICs0MjIsNyBAQCBTY3Jv
bGxQb3NpdGlvbiBTY3JvbGxWaWV3OjphZGp1c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdlKGNv
bnN0IFNjcm9sbFBvc2l0aW9uJgogU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6ZG9jdW1lbnRT
Y3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luKCkgY29uc3QKIHsKICAgICByZXR1cm4g
c2Nyb2xsUG9zaXRpb24oKSAtIEludFNpemUoCi0gICAgICAgIHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNh
bFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICBoZWFkZXJIZWlnaHQoKSAr
IHRvcENvbnRlbnRJbnNldChUb3BDb250ZW50SW5zZXRUeXBlOjpXZWJDb3JlT3JQbGF0Zm9ybUNv
bnRlbnRJbnNldCkpOwogfQogCkBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1
cGRhdGVTY3JvbGxiYXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAg
ICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50V2lkdGgg
PSB2aXNpYmxlV2lkdGgoKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1faG9yaXpvbnRhbFNj
cm9sbGJhci0+ZnJhbWVSZWN0KCkpOwotICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFy
ID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKKyAgICAgICAgSW50
UmVjdCBoQmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92
ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6
IDAsCiAgICAgICAgICAgICBoZWlnaHQoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0
KCksCiAgICAgICAgICAgICB3aWR0aCgpIC0gKG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwKSwKICAgICAgICAgICAgIG1faG9yaXpv
bnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpOwpAQCAtNzUxLDcgKzc1MSw3IEBAIHZvaWQgU2Nyb2xs
Vmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgZGVzaXJlZFBvc2l0
aW9uKQogICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGllbnRI
ZWlnaHQgPSB2aXNpYmxlSGVpZ2h0KCk7CiAgICAgICAgIEludFJlY3Qgb2xkUmVjdChtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAorICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0
aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIHRvcENvbnRlbnRJbnNldCgpLAog
ICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhl
aWdodCgpIC0gdG9wQ29udGVudEluc2V0KCkgLSAobV9ob3Jpem9udGFsU2Nyb2xsYmFyID8gbV9o
b3Jpem9udGFsU2Nyb2xsYmFyLT5vY2N1cGllZEhlaWdodCgpIDogMCkpOwpAQCAtMTE3OSwxNCAr
MTE3OSwxNCBAQCBJbnRSZWN0IFNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdAog
ICAgIGludCBoZWlnaHRUcmFja2VkQnlTY3JvbGxiYXIgPSBoZWlnaHQoKSAtIHRvcENvbnRlbnRJ
bnNldCgpOwogCiAgICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiB3aWR0aCgpIC0gbV9o
b3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpID4gMCkgewotICAgICAgICBjb3JuZXJSZWN0LnVu
aXRlKEludFJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8g
MCA6IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgY29ybmVyUmVjdC51
bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiBt
X2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHQoKSAtIG1f
aG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCksCiAgICAgICAgICAgICB3aWR0aCgpIC0gbV9o
b3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT5oZWlnaHQoKSkpOwogICAgIH0KIAogICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFy
ICYmIGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdo
dCgpID4gMCkgewotICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT53aWR0aCgpLAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+
aGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxTY3Jv
bGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHRUcmFja2VkQnlTY3JvbGxiYXIgLSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSkpOwpAQCAtMTUzOCw3ICsxNTM4LDcgQEAgdm9p
ZCBTY3JvbGxWaWV3OjpzdHlsZUFuZFJlbmRlclRyZWVEaWRDaGFuZ2UoKQogSW50UG9pbnQgU2Ny
b2xsVmlldzo6bG9jYXRpb25PZkNvbnRlbnRzKCkgY29uc3QKIHsKICAgICBJbnRQb2ludCByZXN1
bHQgPSBsb2NhdGlvbigpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhcikKKyAgICBpZiAoc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIpCiAgICAgICAg
IHJlc3VsdC5tb3ZlKG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSwgMCk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5oCmluZGV4IDM1ODcxNzljZGI3ZjY3OTM5OGE3Yzg3NzMxMmVkNDk3YzE2ZmU4ZDkuLmQ0ODFm
N2VkY2JmYmYzM2JkYWI2NjM2NzdjOGZkNTBiNzM4YWY5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzQyLDcgKzM0Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgdXNlc01vY2tTY3JvbGxBbmltYXRvcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCB2b2lkIGxvZ01vY2tTY3JvbGxBbmltYXRvck1lc3NhZ2UoY29uc3Qg
U3RyaW5nJikgY29uc3QgeyB9OwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCA9IDA7CiAgICAgCiAgICAg
dmlydHVhbCBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2Fp
dGEuY3BwCmluZGV4IDRiNzIxNTRiYTFlMmI3YzA2MWU5Y2ViNDU5ZjRjYzU1MGVhZTVkNDIuLjg3
YmE0YWQ5NTVlOGY0NDg1ZWFjZWU5NzkzN2Q5YzM4YmNhM2ZkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5j
cHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQo
U2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogCiAgICAgICAg
IEludFJlY3QgZnJhbWUgPSByZWN0OwogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9u
KCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Ny
b2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkp
CisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIGZyYW1lLm1vdmUoZnJh
bWUud2lkdGgoKSAtIGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCAwKTsKICAgICAgICAgICAg
IGZyYW1lLnNldFdpZHRoKGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplKTsKICAgICAgICAgfSBl
bHNlCkBAIC0xNDAsNyArMTQwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50
KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWMKICAgICBJbnRS
ZWN0IHRodW1iID0gcmVjdDsKICAgICBpZiAoc2Nyb2xsYmFyLmhvdmVyZWRQYXJ0KCkgPT0gTm9Q
YXJ0ICYmIHVzZXNPdmVybGF5U2Nyb2xsYmFycygpKSB7CiAgICAgICAgIGlmIChzY3JvbGxiYXIu
b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAgICAgICAgaWYgKHNj
cm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5z
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgdGh1
bWIubW92ZShob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwgdGh1bWJQb3MgKyB0aHVtYkJvcmRl
clNpemUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoc2Ny
b2xsYmFyU2l6ZSAtIChvdmVybGF5VGh1bWJTaXplICsgdGh1bWJCb3JkZXJTaXplKSArIGhvdmVy
ZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CkBAIC0x
NTMsNyArMTUzLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJh
ciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWMKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNj
cm9sbGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlm
IChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKHNj
cm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMikgLSBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVy
U2l6ZSwgdGh1bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIHRodW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8g
MiArIHRodW1iU2l6ZSAvIDIpLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcAppbmRleCBm
ZTU1NThjMzU4NDdhODdjZjI3MTYwODE1N2YzZWZlY2Q2ODRhN2IwLi4yODk2YzdmM2IwZDI3OGRi
MDliODAwOTM0NzNmYjZiZmE4ZmMyMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMg
R3RrU3RhdGVGbGFncyBzY3JvbGxiYXJQYXJ0U3RhdGVGbGFncyhTY3JvbGxiYXImIHNjcm9sbGJh
ciwgU2Nyb2xsYmFyUGFydAogc3RhdGljIFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlIHdpZGdl
dFR5cGVGb3JTY3JvbGxiYXIoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEd0a1N0YXRlRmxhZ3Mgc2Ny
b2xsYmFyU3RhdGUpCiB7CiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRp
Y2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5z
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIGlmIChz
Y3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkpCiAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsYmFyU3RhdGUgJiBHVEtfU1RBVEVfRkxB
R19QUkVMSUdIVCA/IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbGJh
ckxlZnQgOiBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJbmRpY2F0
b3JMZWZ0OwogICAgICAgICByZXR1cm4gc2Nyb2xsYmFyU3RhdGUgJiBHVEtfU1RBVEVfRkxBR19Q
UkVMSUdIVCA/IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbGJhclJp
Z2h0IDogUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9y
UmlnaHQ7CiAgICAgfQpAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVHdGs6
OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
CiAgICAgLy8gZHJhd2luZyB0aGUgaW5kaWNhdG9yIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSByZWN0
YW5nbGUgdG8gaXRzIGFjdHVhbCBzaXplIGluIGluZGljYXRvciBtb2RlLgogICAgIGlmIChzY3Jv
bGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewogICAgICAgICBpZiAo
cmVjdC53aWR0aCgpICE9IHByZWZlcnJlZFNpemUud2lkdGgoKSkgewotICAgICAgICAgICAgaWYg
KCFzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxhYmxlQXJl
YSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAg
ICBjb250ZW50c1JlY3QubW92ZShzdGQ6OmFicyhyZWN0LndpZHRoKCkgLSBwcmVmZXJyZWRTaXpl
LndpZHRoKCkpLCAwKTsKICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5zZXRXaWR0aChwcmVmZXJy
ZWRTaXplLndpZHRoKCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KaW5kZXggYmQwNjE1ZjIyZDM1ODYyMDRjYmJhMGU3
OGIyYTI0MjdmYmExN2YwYS4uNTM5NjFhN2I3MjA0MDFmNzJlMjI0NWNiYjRlMjFiNzY3OTVhZDcw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1h
Yy5tbQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0
ZVNjcm9sbGVySW1wKFNjcm9sbGJhciYgc2Nyb2xsYmFyKQogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBOU1Njcm9sbGVySW1wICpzY3JvbGxlckltcCA9IHBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xs
YmFyKTsKICAgICBBU1NFUlQoc2Nyb2xsZXJJbXApOwotICAgIHNjcm9sbGVySW1wLnVzZXJJbnRl
cmZhY2VMYXlvdXREaXJlY3Rpb24gPSBzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBOU1VzZXJJbnRlcmZhY2VMYXlv
dXREaXJlY3Rpb25SaWdodFRvTGVmdCA6IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxl
ZnRUb1JpZ2h0OworICAgIHNjcm9sbGVySW1wLnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24g
PSBzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgPyBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25SaWdodFRvTGVmdCA6IE5T
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbkxlZnRUb1JpZ2h0OwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oc2Nyb2xsYmFyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5oCmluZGV4IDdkNTdkYWE5Y2RmYTgxYzRlNWQ3NTdhNmNiNjVjNTA0NDQz
OTc1ZTEuLjcyZTBlNWNmODhmNTJlZGYzMzAxOWVhMTY5Y2IyYjEzNjFiZjZjYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKQEAgLTEwNCw3ICsxMDQsNyBA
QCBwcml2YXRlOgogICAgIEludFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KGJvb2wqID0gbnVsbHB0cikgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRG
b3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQot
ICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIE5P
VEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZW4gc2V0U2Nyb2xs
T2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQgb2Zmc2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGRlMmVkNDUx
MzAyNjdjZDE5NDkxMWNiZTM2MGMwZjM5OGU5ZGJjM2MuLjNhNGIwMzdhNzI1ODFkZjgxN2Q5MjNj
N2IwMTI0YjViNWZkYWMwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcApAQCAtMTkwMiw3ICsxOTAyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6dGV4dElu
ZGVudE9mZnNldCgpIGNvbnN0CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9m
ZnNldEZvckNvbnRlbnQoUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50KSBjb25zdAog
ewogICAgIExheW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXQgPSBzdHlsZSgpLmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIDogYm9yZGVyVG9w
KCkgKyBwYWRkaW5nVG9wKCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIGxvZ2ljYWxMZWZ0T2Zm
c2V0ICs9IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICBpZiAoIWZyYWdtZW50KQogICAg
ICAgICByZXR1cm4gbG9naWNhbExlZnRPZmZzZXQ7CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBMYXlv
dXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQoUmVuZGVyRnJh
Z21lbnRDb250YWluZXIqIGZyYQogTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQpIGNvbnN0
CiB7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXQgPSBzdHlsZSgpLmlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkgPyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIDogYm9yZGVy
VG9wKCkgKyBwYWRkaW5nVG9wKCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIGxvZ2ljYWxSaWdo
dE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgbG9naWNhbFJpZ2h0T2Zm
c2V0ICs9IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpOwogICAgIGlmICghZnJhZ21lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDIyZjNmYTA2
ZTVkNGIzOGY0NDJlYzI4NDA1N2Q3MTcxY2E2YjU1M2MuLjM2YzE5MWQwNWEyODgzMjY5N2U2MDVi
OTBlOGY3YzkxN2U0ZjNkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCkBAIC04ODMsNyArODgzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9ja0Zs
b3c6Om1hcmdpbk9mZnNldEZvclNlbGZDb2xsYXBzaW5nQmxvY2soKQogdm9pZCBSZW5kZXJCbG9j
a0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChSZW5kZXJCb3gmIGNo
aWxkLCBBcHBseUxheW91dERlbHRhTW9kZSBhcHBseURlbHRhKQogewogICAgIExheW91dFVuaXQg
c3RhcnRQb3NpdGlvbiA9IGJvcmRlclN0YXJ0KCkgKyBwYWRkaW5nU3RhcnQoKTsKLSAgICBpZiAo
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKICAgICAgICAgc3RhcnRQb3NpdGlvbiArPSAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkgPyAxIDogLTEpICogdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIExheW91
dFVuaXQgdG90YWxBdmFpbGFibGVMb2dpY2FsV2lkdGggPSBib3JkZXJBbmRQYWRkaW5nTG9naWNh
bFdpZHRoKCkgKyBhdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCA1NzZlZTVkY2M5YTNlNmRmN2U1MWJlOWUyYjI2MmYyYjIw
MDczMmI0Li43YTc4NjNhNjkzMDFlNjBlZTJlOWY3MTA4YWNjNGZjZGJiYjQ1ODVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNzIyLDcgKzcyMiw3IEBAIFJvdW5k
ZWRSZWN0IFJlbmRlckJveDo6cm91bmRlZEJvcmRlckJveFJlY3QoKSBjb25zdAogTGF5b3V0UmVj
dCBSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0KCkgY29uc3QKIHsKICAgICBhdXRvIHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGggPSB0aGlzLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7Ci0gICAgTGF5
b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoIDogMDsKKyAgICBMYXlvdXRV
bml0IG9mZnNldEZvclNjcm9sbGJhciA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggOiAwOwogCiAgICAgcmV0dXJuIExheW91dFJl
Y3QoYm9yZGVyTGVmdCgpICsgb2Zmc2V0Rm9yU2Nyb2xsYmFyLCBib3JkZXJUb3AoKSwKICAgICAg
ICAgd2lkdGgoKSAtIGJvcmRlckxlZnQoKSAtIGJvcmRlclJpZ2h0KCkgLSB2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoLApAQCAtNzM2LDcgKzczNiw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpjb250
ZW50Qm94UmVjdCgpIGNvbnN0CiAKIExheW91dFBvaW50IFJlbmRlckJveDo6Y29udGVudEJveExv
Y2F0aW9uKCkgY29uc3QKIHsKLSAgICBMYXlvdXRVbml0IHNjcm9sbGJhclNwYWNlID0gc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJX
aWR0aCgpIDogMDsKKyAgICBMYXlvdXRVbml0IHNjcm9sbGJhclNwYWNlID0gc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpIDogMDsK
ICAgICByZXR1cm4geyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyU3Bh
Y2UsIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpIH07CiB9CiAKQEAgLTE5NjQsNyArMTk2NCw3
IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBv
aW50JiBsb2NhdGlvbiwgUmVuZGVyRnJhZ21lCiAKICAgICAvLyBTdWJ0cmFjdCBvdXQgc2Nyb2xs
YmFycyBpZiB3ZSBoYXZlIHRoZW0uCiAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gbGF5
ZXIoKSA/IGxheWVyKCktPnNjcm9sbGFibGVBcmVhKCkgOiBudWxscHRyKSB7Ci0gICAgICAgIGlm
IChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIGlm
IChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICBjbGlw
UmVjdC5tb3ZlKHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5j
eSksIDApOwogICAgICAgICBjbGlwUmVjdC5jb250cmFjdChzY3JvbGxhYmxlQXJlYS0+dmVydGlj
YWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpLCBzY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNj
cm9sbGJhckhlaWdodChyZWxldmFuY3kpKTsKICAgICB9CkBAIC0zNzU4LDcgKzM3NTgsOCBAQCB2
b2lkIFJlbmRlckJveDo6Y29tcHV0ZVBvc2l0aW9uZWRMb2dpY2FsV2lkdGgoTG9naWNhbEV4dGVu
dENvbXB1dGVkVmFsdWVzJiBjb21wdQogICAgIGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50ICs9IGJv
cmRlcnNQbHVzUGFkZGluZzsKICAgICBpZiAoaXM8UmVuZGVyQm94Pihjb250YWluZXJCbG9jaykp
IHsKICAgICAgICAgYXV0byYgY29udGFpbmluZ0JveCA9IGRvd25jYXN0PFJlbmRlckJveD4oY29u
dGFpbmVyQmxvY2spOwotICAgICAgICBpZiAoY29udGFpbmluZ0JveC5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIC8vIEZJWE1FOiBPbmx5IGlmIHZl
cnRpY2FsIHNjcm9sbGJhciBpcyBhIGJsb2NrIHNjcm9sbGJhcj8KKyAgICAgICAgaWYgKGNvbnRh
aW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAg
ICAgY29tcHV0ZWRWYWx1ZXMubV9wb3NpdGlvbiArPSBjb250YWluaW5nQm94LnZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKTsKICAgICB9CiAgICAgCkBAIC00OTc5LDcgKzQ5ODAsNyBAQCBMYXlvdXRS
ZWN0IFJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QoKSBjb25zdAogICAgIGZsaXBGb3JX
cml0aW5nTW9kZShyZWN0KTsKICAgICAvLyBTdWJ0cmFjdCBzcGFjZSBvY2N1cGllZCBieSBzY3Jv
bGxiYXJzLiBUaGV5IGFyZSBhdCB0aGVpciBwaHlzaWNhbCBlZGdlIGluIHRoaXMgY29vcmRpbmF0
ZQogICAgIC8vIHN5c3RlbSwgc28gb3JkZXIgaXMgaW1wb3J0YW50IGhlcmU6IGZpcnN0IGZsaXAs
IHRoZW4gc3VidHJhY3Qgc2Nyb2xsYmFycy4KLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmVjdC5t
b3ZlKHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCk7CiAgICAgcmVjdC5jb250cmFjdCh2ZXJ0
aWNhbFNjcm9sbGJhcldpZHRoKCksIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoKSk7CiAgICAg
cmV0dXJuIHJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAppbmRleCAwODYxYjc1ZDdlYmNjYjE3NWUwNzNiNGE4YjE1ODg1NzI1NTlk
OTBlLi5jODA5YTcwZTBiZDg1NDk1ZTc5MzYzMmM5MmI2Yjc0OTY4NzdlZGE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTU1
NSw3ICs1NTUsNyBAQCBGbG9hdFJlY3QgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmlu
Z1JlY3RGb3JTdGlja3lQb3NpdGlvbigpIGNvbnN0CiAgICAgICAgICAgICBzY3JvbGxPZmZzZXQg
PSBGbG9hdFBvaW50KCkgKyBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsT2Zmc2V0KCk7CiAKICAgICAg
ICAgZmxvYXQgc2Nyb2xsYmFyT2Zmc2V0ID0gMDsKLSAgICAgICAgaWYgKGVuY2xvc2luZ0NsaXBw
aW5nQm94Lmhhc0xheWVyKCkgJiYgZW5jbG9zaW5nQ2xpcHBpbmdCb3guc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIHNjcm9sbGFibGVBcmVhKQorICAgICAgICBp
ZiAoZW5jbG9zaW5nQ2xpcHBpbmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdDbGlwcGluZ0Jv
eC5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEp
CiAgICAgICAgICAgICBzY3JvbGxiYXJPZmZzZXQgPSBzY3JvbGxhYmxlQXJlYS0+dmVydGljYWxT
Y3JvbGxiYXJXaWR0aChJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSk7CiAKICAgICAgICAgY29u
c3RyYWluaW5nUmVjdC5zZXRMb2NhdGlvbihGbG9hdFBvaW50KHNjcm9sbE9mZnNldC54KCkgKyBz
Y3JvbGxiYXJPZmZzZXQsIHNjcm9sbE9mZnNldC55KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDdhNTk1OGM5MjNhMjE0ODYyMWFmY2RjM2M0ZGJjZjRh
MzdiNDIzMTEuLjU2OTU2MWJjNzRkM2Q3YzBkM2I1MWRiNGNmNjQ3ZTMyODFmZDM2ZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjQzMCw5ICsyNDMwLDEw
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVj
dCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIC8vIGJvcmRlciBlZGdlLiBNYWtl
IHRoZSByZWN0YW5nbGUgcmVsYXRpdmUgdG8gdGhlIHNjcm9sbGFibGUgYXJlYS4KICAgICAgICAg
bG9jYWxFeHBvc2VSZWN0Lm1vdmVCeSgtTGF5b3V0UG9pbnQoYm94LT5ib3JkZXJMZWZ0KCksIGJv
eC0+Ym9yZGVyVG9wKCkpKTsKIAotICAgICAgICBpZiAoYm94LT5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKLSAgICAgICAgICAgIC8vIEZvciBkaXJlY3Rpb246
IHJ0bDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiIGJveCwgdGhlIHNjcm9sbCBiYXIgaXMg
b24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdAotICAgICAgICAgICAgLy8gc3RhcnRz
IGZyb20gdGhlIHJpZ2h0IHNpZGUgb2Ygc2Nyb2xsIGJhci4gU28gdGhlIHggb2YgbG9jYWxFeHBv
c2VSZWN0IHNob3VsZCBzdGFydCBmcm9tIHRoZSBzYW1lIHBvc2l0aW9uIHRvby4KKyAgICAgICAg
aWYgKGJveC0+c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgICAg
ICAgICAvLyBGb3IgYGRpcmVjdGlvbjogcnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwte3Ri
LGJ0fWAgYW5kIGB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsYAorICAgICAgICAgICAgLy8gYm94
ZXMsIHRoZSBzY3JvbGwgYmFyIGlzIG9uIHRoZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3Qg
c3RhcnRzIGZyb20gdGhlIHJpZ2h0IHNpZGUKKyAgICAgICAgICAgIC8vIG9mIHRoZSBzY3JvbGwg
YmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9zZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNh
bWUgcG9zaXRpb24gdG9vLgogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmVCeShMYXlv
dXRQb2ludCgtc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgMCkpOwog
ICAgICAgICB9CiAgICAgICAgIExheW91dFJlY3QgbGF5ZXJCb3VuZHMoMF9sdSwgMF9sdSwgYm94
LT5jbGllbnRXaWR0aCgpLCBib3gtPmNsaWVudEhlaWdodCgpKTsKQEAgLTI2NzYsNyArMjY3Nyw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlc2l6ZShjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
dCwgY29uc3QgTGF5b3V0U2l6ZSYgb2xkT2ZmCiAgICAgZWxlbWVudC0+c2V0TWluaW11bVNpemVG
b3JSZXNpemluZyhtaW5pbXVtU2l6ZSk7CiAgICAgCiAgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZE9s
ZE9mZnNldCA9IExheW91dFNpemUob2xkT2Zmc2V0LndpZHRoKCkgLyB6b29tRmFjdG9yLCBvbGRP
ZmZzZXQuaGVpZ2h0KCkgLyB6b29tRmFjdG9yKTsKLSAgICBpZiAocmVuZGVyZXItPnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgeworICAgIGlmIChyZW5kZXJlci0+
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAgIG5ld09mZnNl
dC5zZXRXaWR0aCgtbmV3T2Zmc2V0LndpZHRoKCkpOwogICAgICAgICBhZGp1c3RlZE9sZE9mZnNl
dC5zZXRXaWR0aCgtYWRqdXN0ZWRPbGRPZmZzZXQud2lkdGgoKSk7CiAgICAgfQpAQCAtMjczMyw3
ICsyNzM0LDcgQEAgUmVuZGVyTGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVy
OjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKSBjb25zdAogICAgIC8vIFNjcm9sbGJhcnMgc2l0IGlu
c2lkZSB0aGUgYm9yZGVyIGJveC4KICAgICBhdXRvIG92ZXJmbG93Q29udHJvbHNQb3NpdGlvbmlu
Z1JlY3QgPSBzbmFwcGVkSW50UmVjdChyZW5kZXJCb3gucGFkZGluZ0JveFJlY3RJbmNsdWRpbmdT
Y3JvbGxiYXIoKSk7CiAKLSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSByZW5kZXJCb3guc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOwor
ICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHJlbmRlckJveC5zaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgYm9vbCBoYXZlUmVzaXplciA9
IHJlbmRlcmVyKCkuc3R5bGUoKS5yZXNpemUoKSAhPSBSZXNpemU6Ok5vbmU7CiAKICAgICBPdmVy
Zmxvd0NvbnRyb2xSZWN0cyByZXN1bHQ7CkBAIC0yNzg2LDcgKzI3ODcsNyBAQCBTdHJpbmcgUmVu
ZGVyTGF5ZXI6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25zdAogSW50U2l6ZSBSZW5kZXJMYXllcjo6
b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lcihjb25zdCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QK
IHsKICAgICBhdXRvIHJlc2l6ZXJSZWN0ID0gb3ZlcmZsb3dDb250cm9sc1JlY3RzKCkucmVzaXpl
cjsKLSAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJlbmRlcmVyKCkuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKSA6
IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CisgICAgYXV0byByZXNpemVDb3JuZXIgPSBy
ZW5kZXJlcigpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJS
ZWN0Lm1pblhNYXhZQ29ybmVyKCkgOiByZXNpemVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOwogICAg
IHJldHVybiBsb2NhbFBvaW50IC0gcmVzaXplQ29ybmVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGRjY2VjY2Zk
NTAwZWEwZWI3MTFlMDc5ODRiMzgxNDFkODdhNmQ2MWQuLjU2ODQwOGQ4YTgzMDZlZjc0OGQ5Yzli
NzhjOTAwMjEwNTExMTI3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yMjMwLDcgKzIyMzAsNyBAQCBGbG9hdFBvaW50
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIoKSBjb25zdAogICAg
IGF1dG8mIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKIAogICAgIHJldHVy
biBGbG9hdFBvaW50KAotICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJbnRydXNp
b24oKSA6IDAsCisgICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIDogMCwK
ICAgICAgICAgRnJhbWVWaWV3Ojp5UG9zaXRpb25Gb3JJbnNldENsaXBMYXllcihmcmFtZVZpZXcu
c2Nyb2xsUG9zaXRpb24oKSwgZnJhbWVWaWV3LnRvcENvbnRlbnRJbnNldCgpKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cAppbmRleCBkYWI1ZWE5ODRlNzJlMWE1ZGZiZmIxMTQ5OGM3YjcyOGZiOTlmN2FmLi4yYmI1YTU1
Mjg5ZjY0ODk4MDE0Zjc0NWViNGUxYjEzMDEwYTUxNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0yMDcsNyArMjA3
LDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QKICNlbmRpZgogfQogCi1ib29sIFJlbmRlckxh
eWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSBjb25zdAorYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKIC8vIFJUTCBTY3JvbGxiYXJzIHJlcXVpcmUgc29t
ZSBzeXN0ZW0gc3VwcG9ydCwgYW5kIHRoaXMgc3lzdGVtIHN1cHBvcnQgZG9lcyBub3QgZXhpc3Qg
b24gY2VydGFpbiB2ZXJzaW9ucyBvZiBPUyBYLiBpT1MgdXNlcyBhIHNlcGFyYXRlIG1lY2hhbmlz
bS4KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjE1LDEyICsyMTUsMTIgQEAgYm9vbCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3QKICNlbHNlCiAgICAgc3dpdGNoIChzZXR0aW5ncygpLnVzZXJJbnRlcmZh
Y2VEaXJlY3Rpb25Qb2xpY3koKSkgewogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlvblBv
bGljeTo6Q29udGVudDoKLSAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5OjpTeXN0ZW06CiAgICAgICAgIHJldHVybiBzZXR0aW5ncygpLnN5c3RlbUxh
eW91dERpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTDsKICAgICB9CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAppbmRleCA5Yzk2NmY3ZWIyZjAy
N2Q2MzBkMDIxMzJhZGI5YjEzY2JhOGU5ZGYxLi40OWYxOGExMTk5YTJkNzhhNTNkZGQ1YzZhZjNk
N2ZmOGRjNWIxOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIGlzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVCb3goKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3Q7CiAKICAgICBPcHRpb25hbDxMYXllclJlcGFpbnRSZWN0cz4gbGF5ZXJSZXBhaW50
UmVjdHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDk2ODU5Nzg4ODY2M2E4NDVjNDMxNTEx
ZDU4YzE2YWZiMTJjMGRiY2UuLjhiMjZmYjc2ODlmNDVjZWJkMDU1Zjk1Njg0MTdlNmUzM2ZlMjEx
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5jcHAKQEAgLTExOSw5ICsxMTksOSBAQCB2b2lkIFJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWE6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAgICAgZWxlbWVudC0+c2V0U2F2
ZWRMYXllclNjcm9sbFBvc2l0aW9uKEludFBvaW50KCkpOwogfQogCi1ib29sIFJlbmRlckxheWVy
U2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSBjb25zdAorYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9sYXllci5yZW5kZXJl
cigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1
cm4gbV9sYXllci5yZW5kZXJlcigpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KTsKIH0KIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtNjU0LDcgKzY1NCw3IEBA
IFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xSZWN0cyBSZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjCiAKICAgICBib29sIGhhdmVOb25PdmVybGF5SG9yaXpv
bnRhbFNjcm9sbGJhciA9IGlzTm9uT3ZlcmxheVNjcm9sbGJhcihtX2hCYXIuZ2V0KCkpOwogICAg
IGJvb2wgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhciA9IGlzTm9uT3ZlcmxheVNjcm9s
bGJhcihtX3ZCYXIuZ2V0KCkpOwotICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhl
TGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICBi
b29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSBzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgYm9vbCBoYXZlUmVzaXplciA9IHJlbmRlcmVyLnN0eWxl
KCkucmVzaXplKCkgIT0gUmVzaXplOjpOb25lOwogICAgIGJvb2wgc2Nyb2xsYmFyc0F2b2lkQ29y
bmVyID0gKGhhdmVOb25PdmVybGF5SG9yaXpvbnRhbFNjcm9sbGJhciAmJiBoYXZlTm9uT3Zlcmxh
eVZlcnRpY2FsU2Nyb2xsYmFyKSB8fCAoaGF2ZVJlc2l6ZXIgJiYgKGhhdmVOb25PdmVybGF5SG9y
aXpvbnRhbFNjcm9sbGJhciB8fCBoYXZlTm9uT3ZlcmxheVZlcnRpY2FsU2Nyb2xsYmFyKSk7CiAK
QEAgLTEwMDYsMjEgKzEwMDYsMzAgQEAgTGF5b3V0VW5pdCBSZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhOjpvdmVyZmxvd1JpZ2h0KCkgY29uc3QKIAogdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVB
cmVhOjpjb21wdXRlU2Nyb2xsRGltZW5zaW9ucygpCiB7Ci0gICAgUmVuZGVyQm94KiBib3ggPSBt
X2xheWVyLnJlbmRlckJveCgpOwotICAgIEFTU0VSVChib3gpOwotCiAgICAgbV9zY3JvbGxEaW1l
bnNpb25zRGlydHkgPSBmYWxzZTsKIAogICAgIG1fc2Nyb2xsV2lkdGggPSByb3VuZFRvSW50KG92
ZXJmbG93UmlnaHQoKSAtIG92ZXJmbG93TGVmdCgpKTsKICAgICBtX3Njcm9sbEhlaWdodCA9IHJv
dW5kVG9JbnQob3ZlcmZsb3dCb3R0b20oKSAtIG92ZXJmbG93VG9wKCkpOwogCisgICAgY29tcHV0
ZVNjcm9sbE9yaWdpbigpOworICAgIGNvbXB1dGVIYXNDb21wb3NpdGVkU2Nyb2xsYWJsZU92ZXJm
bG93KCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9s
bE9yaWdpbigpCit7CisgICAgUmVuZGVyQm94KiBib3ggPSBtX2xheWVyLnJlbmRlckJveCgpOwor
ICAgIEFTU0VSVChib3gpOworCiAgICAgaW50IHNjcm9sbGFibGVMZWZ0T3ZlcmZsb3cgPSByb3Vu
ZFRvSW50KG92ZXJmbG93TGVmdCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkpOwotICAgIGlmIChzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVy
ZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVUb3BP
dmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkpOwog
ICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywgLXNj
cm9sbGFibGVUb3BPdmVyZmxvdykpOwogCi0gICAgY29tcHV0ZUhhc0NvbXBvc2l0ZWRTY3JvbGxh
YmxlT3ZlcmZsb3coKTsKKyAgICAvLyBIb3Jpem9udGFsIHNjcm9sbGJhciBvZmZzZXRzIGRlcGVu
ZCBvbiB0aGUgc2Nyb2xsIG9yaWdpbiB3aGVuIHZlcnRpY2FsCisgICAgLy8gc2Nyb2xsYmFycyBh
cmUgb24gdGhlIGxlZnQuCisgICAgaWYgKG1faEJhcikKKyAgICAgICAgbV9oQmFyLT5vZmZzZXRE
aWRDaGFuZ2UoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpjb21wdXRl
SGFzQ29tcG9zaXRlZFNjcm9sbGFibGVPdmVyZmxvdygpCkBAIC0xMDk1LDYgKzExMDQsOSBAQCB2
b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlckxheW91
dCgpCiAgICAgICAgIGlmIChib3gtPmhhc1ZlcnRpY2FsU2Nyb2xsYmFyV2l0aEF1dG9CZWhhdmlv
cigpKQogICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoaGFzVmVydGljYWxPdmVy
Zmxvdyk7CiAKKyAgICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYgc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgY29tcHV0ZVNj
cm9sbE9yaWdpbigpOworCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIo
KTsKIAogICAgICAgICByZW5kZXJlci5yZXBhaW50KCk7CkBAIC0xMzM2LDcgKzEzNDgsNyBAQCB2
b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZShH
cmFwaGljc0NvbnRleHQmIGNvbnRleAogICAgICAgICBjb3JuZXJSZXNpemVyU2l6ZSA9IHJlc2l6
ZUNvcm5lckltYWdlLT5zaXplKCk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgeworICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgY29udGV4dC5zYXZlKCk7CiAgICAgICAgIGNv
bnRleHQudHJhbnNsYXRlKHJlc2l6ZXJDb3JuZXJSZWN0LngoKSArIGNvcm5lclJlc2l6ZXJTaXpl
LndpZHRoKCksIHJlc2l6ZXJDb3JuZXJSZWN0LnkoKSArIHJlc2l6ZXJDb3JuZXJSZWN0LmhlaWdo
dCgpIC0gY29ybmVyUmVzaXplclNpemUuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0LnNjYWxl
KEZsb2F0U2l6ZSgtMS4wLCAxLjApKTsKQEAgLTE0OTcsNyArMTUwOSw3IEBAIGJvb2wgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6aGl0VGVzdFJlc2l6ZXJJbkZyYWdtZW50cyhjb25zdCBMYXll
ckZyYWdtZW50cyYKICAgICBhdXRvIHJlY3RzID0gb3ZlcmZsb3dDb250cm9sc1JlY3RzKCk7CiAK
ICAgICBhdXRvIGNvcm5lclJlY3RJbkZyYWdtZW50ID0gWyZdKGNvbnN0IEludFJlY3QmIGZyYWdt
ZW50Qm91bmRzLCBjb25zdCBJbnRSZWN0JiByZXNpemVyUmVjdCkgewotICAgICAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgICAgIGlmIChz
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgICAgIEludFNp
emUgb2Zmc2V0RnJvbUJvdHRvbUxlZnQgPSBib3JkZXJCb3hSZWN0Lm1pblhNYXhZQ29ybmVyKCkg
LSByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpOwogICAgICAgICAgICAgcmV0dXJuIEludFJl
Y3QgeyBmcmFnbWVudEJvdW5kcy5taW5YTWF4WUNvcm5lcigpIC0gb2Zmc2V0RnJvbUJvdHRvbUxl
ZnQgLSBJbnRTaXplIHsgMCwgcmVzaXplclJlY3QuaGVpZ2h0KCkgfSwgcmVzaXplclJlY3Quc2l6
ZSgpIH07CiAgICAgICAgIH0KQEAgLTE1NTIsMTEgKzE1NjQsMTUgQEAgdm9pZCBSZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBS
ZW5kZXJTdHkKICAgICBPdmVyZmxvdyBvdmVyZmxvd1kgPSBib3gtPnN0eWxlKCkub3ZlcmZsb3dZ
KCk7CiAKICAgICAvLyBUbyBhdm9pZCBkb2luZyBhIHJlbGF5b3V0IGluIHVwZGF0ZVNjcm9sbGJh
cnNBZnRlckxheW91dCwgd2UgdHJ5IHRvIGtlZXAgYW55IGF1dG9tYXRpYyBzY3JvbGxiYXIgdGhh
dCB3YXMgYWxyZWFkeSBwcmVzZW50LgotICAgIGJvb2wgbmVlZHNIb3Jpem9udGFsU2Nyb2xsYmFy
ID0gYm94LT5oYXNPdmVyZmxvd0NsaXAoKSAmJiAoKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiBz
dHlsZURlZmluZXNBdXRvbWF0aWNTY3JvbGxiYXIoYm94LT5zdHlsZSgpLCBIb3Jpem9udGFsU2Ny
b2xsYmFyKSkgfHwgc3R5bGVSZXF1aXJlc1Njcm9sbGJhcihib3gtPnN0eWxlKCksIEhvcml6b250
YWxTY3JvbGxiYXIpKTsKLSAgICBib29sIG5lZWRzVmVydGljYWxTY3JvbGxiYXIgPSBib3gtPmhh
c092ZXJmbG93Q2xpcCgpICYmICgodmVydGljYWxTY3JvbGxiYXIoKSAmJiBzdHlsZURlZmluZXNB
dXRvbWF0aWNTY3JvbGxiYXIoYm94LT5zdHlsZSgpLCBWZXJ0aWNhbFNjcm9sbGJhcikpIHx8IHN0
eWxlUmVxdWlyZXNTY3JvbGxiYXIoYm94LT5zdHlsZSgpLCBWZXJ0aWNhbFNjcm9sbGJhcikpOwor
ICAgIGJvb2wgaGFkVmVydGljYWxTY3JvbGxiYXIgPSBtX3ZCYXI7CisgICAgYm9vbCBuZWVkc0hv
cml6b250YWxTY3JvbGxiYXIgPSBib3gtPmhhc092ZXJmbG93Q2xpcCgpICYmICgobV9oQmFyICYm
IHN0eWxlRGVmaW5lc0F1dG9tYXRpY1Njcm9sbGJhcihib3gtPnN0eWxlKCksIEhvcml6b250YWxT
Y3JvbGxiYXIpKSB8fCBzdHlsZVJlcXVpcmVzU2Nyb2xsYmFyKGJveC0+c3R5bGUoKSwgSG9yaXpv
bnRhbFNjcm9sbGJhcikpOworICAgIGJvb2wgbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciA9IGJveC0+
aGFzT3ZlcmZsb3dDbGlwKCkgJiYgKChtX3ZCYXIgJiYgc3R5bGVEZWZpbmVzQXV0b21hdGljU2Ny
b2xsYmFyKGJveC0+c3R5bGUoKSwgVmVydGljYWxTY3JvbGxiYXIpKSB8fCBzdHlsZVJlcXVpcmVz
U2Nyb2xsYmFyKGJveC0+c3R5bGUoKSwgVmVydGljYWxTY3JvbGxiYXIpKTsKICAgICBzZXRIYXNI
b3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRzSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFz
VmVydGljYWxTY3JvbGxiYXIobmVlZHNWZXJ0aWNhbFNjcm9sbGJhcik7CiAKKyAgICBpZiAoaGFk
VmVydGljYWxTY3JvbGxiYXIgIT0gbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0
aWNhbFNjcm9sbGJhciAmJiBvbGRTdHlsZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkpKQorICAgICAgICBjb21wdXRlU2Nyb2xsT3JpZ2luKCk7CisKICAgICAv
LyBXaXRoIG5vbi1vdmVybGF5IG92ZXJmbG93OnNjcm9sbCwgc2Nyb2xsYmFycyBhcmUgYWx3YXlz
IHZpc2libGUgYnV0IG1heSBiZSBkaXNhYmxlZC4KICAgICAvLyBXaGVuIHN3aXRjaGluZyB0byBh
bm90aGVyIHZhbHVlLCB3ZSBuZWVkIHRvIHJlLWVuYWJsZSB0aGVtIChzZWUgYnVnIDExOTg1KS4K
ICAgICBpZiAobV9oQmFyICYmIG5lZWRzSG9yaXpvbnRhbFNjcm9sbGJhciAmJiBvbGRTdHlsZSAm
JiBvbGRTdHlsZS0+b3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlNjcm9sbCAmJiBvdmVyZmxvd1gg
IT0gT3ZlcmZsb3c6OlNjcm9sbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCmluZGV4IGRlMjZiMzA0ODk2NjY2YTVjZGQ2NGI1
MGY3NmQ2ZDUxZWQ2M2VhZDMuLmFlNDcxOTkzNzIzZGY4YWYwOTdmZDUwOTc2OTg5OGI4N2U3NTZi
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIHVzZXND
b21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB1c2VzQXN5bmNTY3Jv
bGxpbmcoKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBpc1JlbmRlckxh
eWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgaW52YWxpZGF0ZVNj
cm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpIGZpbmFsOwpAQCAtMjMxLDYg
KzIzMSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbGluZ01heVJldmVhbEJhY2tncm91bmQo
KSBjb25zdDsKIAogICAgIHZvaWQgY29tcHV0ZVNjcm9sbERpbWVuc2lvbnMoKTsKKyAgICB2b2lk
IGNvbXB1dGVTY3JvbGxPcmlnaW4oKTsKICAgICB2b2lkIGNvbXB1dGVIYXNDb21wb3NpdGVkU2Ny
b2xsYWJsZU92ZXJmbG93KCk7CiAKICAgICBib29sIGhhc0hvcml6b250YWxPdmVyZmxvdygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDk1
MGIxZDdlMzFkMmMwY2Q4NDc3ZGQxYWI2YTM4YzUwZjU3MmRmOWYuLjNlYTdiNzAyNGFlYThjYjlm
ODUyODBiNWQ4ZjY1YTQ5ZDkwZTg5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCBMYXlvdXRVbml0IFJlbmRlckxpc3RC
b3g6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgYm9vbCBmaXJz
dAogTGF5b3V0UmVjdCBSZW5kZXJMaXN0Qm94OjppdGVtQm91bmRpbmdCb3hSZWN0KGNvbnN0IExh
eW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBpbnQgaW5kZXgpCiB7CiAgICAgTGF5b3V0VW5p
dCB4ID0gYWRkaXRpb25hbE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgp
OwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
bV92QmFyKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
bV92QmFyKQogICAgICAgICB4ICs9IG1fdkJhci0+b2NjdXBpZWRXaWR0aCgpOwogICAgIExheW91
dFVuaXQgeSA9IGFkZGl0aW9uYWxPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9w
KCkgKyBpdGVtSGVpZ2h0KCkgKiAoaW5kZXggLSBtX2luZGV4T2Zmc2V0KTsKICAgICByZXR1cm4g
TGF5b3V0UmVjdCh4LCB5LCBjb250ZW50V2lkdGgoKSwgaXRlbUhlaWdodCgpKTsKQEAgLTM2Myw3
ICszNjMsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50U2Nyb2xsYmFyKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbgogICAgIGlmICghbV92QmFyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMYXlvdXRVbml0IGxlZnQgPSBwYWludE9mZnNldC54KCkgKyAo
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgp
IDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCkpOworICAgIExheW91
dFVuaXQgbGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1f
dkJhci0+d2lkdGgoKSk7CiAgICAgTGF5b3V0VW5pdCB0b3AgPSBwYWludE9mZnNldC55KCkgKyBi
b3JkZXJUb3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAg
IExheW91dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSAoYm9yZGVyVG9wKCkgKyBib3Jk
ZXJCb3R0b20oKSk7CkBAIC00NjksNyArNDY5LDcgQEAgYm9vbCBSZW5kZXJMaXN0Qm94Ojppc1Bv
aW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXQK
ICAgICBpZiAoIW1fdkJhciB8fCAhbV92QmFyLT5zaG91bGRQYXJ0aWNpcGF0ZUluSGl0VGVzdGlu
ZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMYXlvdXRVbml0IHggPSBhY2N1bXVs
YXRlZE9mZnNldC54KCkgKyAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndp
ZHRoKCkpOworICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CiAgICAgTGF5b3V0VW5pdCB5ID0g
YWNjdW11bGF0ZWRPZmZzZXQueSgpICsgYm9yZGVyVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB3aWR0
aCA9IG1fdkJhci0+d2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IHRoaXMtPmhlaWdo
dCgpIC0gYm9yZGVyVG9wKCkgLSBib3JkZXJCb3R0b20oKTsKQEAgLTQ5MSw5ICs0OTEsOSBAQCBp
bnQgUmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQoY29uc3QgTGF5b3V0U2l6ZSYgb2Zm
c2V0KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQgc2Nyb2xsYmFyV2lkdGggPSBtX3ZC
YXIgPyBtX3ZCYXItPndpZHRoKCkgOiAwOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsg
cGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhcldpZHRoIHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgo
KSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQoKSkpCisgICAgaWYgKHNob3VsZFBsYWNl
VmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0
KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRoKCkgPiB3
aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKICAgICAgICAgcmV0dXJu
IC0xOwotICAgIGlmICghc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgfHwgb2Zm
c2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpIC0g
c2Nyb2xsYmFyV2lkdGgpKQorICAgIGlmICghc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkg
fHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdo
dCgpIC0gc2Nyb2xsYmFyV2lkdGgpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQgbmV3
T2Zmc2V0ID0gKG9mZnNldC5oZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gcGFkZGluZ1RvcCgpKSAv
IGl0ZW1IZWlnaHQoKSArIG1faW5kZXhPZmZzZXQ7CkBAIC04MDAsMTQgKzgwMCwxNCBAQCBib29s
IFJlbmRlckxpc3RCb3g6OmlzQWN0aXZlKCkgY29uc3QKIHZvaWQgUmVuZGVyTGlzdEJveDo6aW52
YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3Qm
IHJlY3QpCiB7CiAgICAgSW50UmVjdCBzY3JvbGxSZWN0ID0gcmVjdDsKLSAgICBzY3JvbGxSZWN0
Lm1vdmUoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVy
TGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKSwgYm9y
ZGVyVG9wKCkpOworICAgIHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNj
cm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CiAgICAgcmVwYWludFJlY3RhbmdsZShzY3Jv
bGxSZWN0KTsKIH0KIAogSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gc2Nyb2xsYmFy
UmVjdDsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgp
IC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9y
ZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBi
b3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9wKTsK
ICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRh
aW5pbmdWaWV3KHRoaXMsIHJlY3QpOwpAQCAtODE2LDcgKzgxNiw3IEBAIEludFJlY3QgUmVuZGVy
TGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9s
bGJhciYgc2NyCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYg
cGFyZW50UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSB2aWV3KCkuZnJhbWVWaWV3
KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywgcGFyZW50UmVjdCk7
Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNj
cm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0gYm9yZGVy
VG9wKCk7CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Nyb2xsYmFyVG9wKTsKICAg
ICByZXR1cm4gcmVjdDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBJbnRSZWN0IFJlbmRlckxpc3RCb3g6
OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNj
cgogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xs
YmFyUG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSBzY3JvbGxiYXJQb2ludDsK
LSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Ny
b2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmln
aHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJU
b3AoKTsKICAgICBwb2ludC5tb3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJhclRvcCk7CiAgICAg
cmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVyVG9Db250YWluaW5n
Vmlldyh0aGlzLCBwb2ludCk7CkBAIC04MzQsNyArODM0LDcgQEAgSW50UG9pbnQgUmVuZGVyTGlz
dEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJh
ciYgc2MKIEludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdU
b1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHBh
cmVudFBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gdmlldygpLmZyYW1lVmll
dygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRoaXMsIHBhcmVudFBvaW50
KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
c2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3Jk
ZXJUb3AoKTsKICAgICBwb2ludC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Nyb2xsYmFyVG9wKTsK
ICAgICByZXR1cm4gcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aAppbmRleCAyMWJiYWEyNzgwODYwOTgxZTE4MmFmMGY5OTI2YzRmMjE3ZTEzNDJlLi45ZjkzZDE4
ZTQxZGM5YzczYjllNTk2Mjk1OWU2MDZhNTVlZjBhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcGFpbnRJdGVtQmFja2dyb3VuZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIGlu
dCBsaXN0SW5kZXgpOwogICAgIHZvaWQgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKIAotICAg
IGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7IH0KIAogICAgIGJvb2wgbV9vcHRpb25zQ2hhbmdl
ZDsKICAgICBib29sIG1fc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb25BZnRlckxheW91dDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA0YzNmZjRmYWZkMmViNTIyY2Vl
ZWZkNWMyOWI0ODgzYjk1Y2MxYWQxLi4zY2QzMGRiNzVmNTFmZjJhNjMxNjRiYWE1NjNlYmEyNWRk
MDU0ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00NzMs
NyArNDczLDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZShjb25zdCBM
YXlvdXRSZWN0JiByZXBhaW50UmVjdCkgY29uc3QKICAgICAgICAgLy8gYW5kIHRoZSBSZW5kZXJl
ciB0aGF0IGNvbnRhaW5zIHRoZSBpZnJhbWUuIFRoaXMgdHJhbnNmb3JtYXRpb24gbXVzdCBhY2Nv
dW50IGZvciBhCiAgICAgICAgIC8vIGxlZnQgc2Nyb2xsYmFyIChpZiBvbmUgZXhpc3RzKS4KICAg
ICAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSB0aGlzLT5mcmFtZVZpZXcoKTsKLSAgICAgICAg
aWYgKGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmIChmcmFtZVZpZXcu
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGZyYW1lVmlldy52ZXJ0aWNh
bFNjcm9sbGJhcigpKQogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUoTGF5b3V0U2l6ZShm
cmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKS0+b2NjdXBpZWRXaWR0aCgpLCAwKSk7CiAKICAg
ICAgICAgb3duZXJCb3gtPnJlcGFpbnRSZWN0YW5nbGUoYWRqdXN0ZWRSZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGVkZjE3MGE5
NjlhOTA3ZTk5ODM2OTJlYjk4ODU4OTAyZTdiMzYzNTguLjA5YjgzYzhlMzAzOWQzY2FmZTM3NzEz
MjNhMmI0MDU1NTEwMGMxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcApAQCAtMjU4MSw5ICsyNTgxLDkgQEAgZmxvYXQgUmVuZGVyU3R5bGU6
Om91dGxpbmVPZmZzZXQoKSBjb25zdAogICAgIHJldHVybiBtX2JhY2tncm91bmREYXRhLT5vdXRs
aW5lLm9mZnNldCgpOwogfQogCi1ib29sIFJlbmRlclN0eWxlOjpzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiAhaXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAgcmV0
dXJuICghaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpIHx8IHdyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OwogfQogCiBW
ZWN0b3I8UGFpbnRUeXBlLCAzPiBSZW5kZXJTdHlsZTo6cGFpbnRUeXBlc0ZvclBhaW50T3JkZXIo
UGFpbnRPcmRlciBvcmRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggOTczMDJmYTYyNzE0Yjc5MTNkNTFkOGYwYmE0MTViNDVmNWVhM2Q4NC4u
M2JhMDA0MGYyZDAwOTYwZTUyNzFhYzc5YzFkYjU1Zjk3OTI3YTgwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTgyOSw3ICs4MjksNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNJc29sYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
I2VuZGlmCiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICBUcmFpbGluZ1dv
cmQgdHJhaWxpbmdXb3JkKCkgY29uc3QgeyByZXR1cm4gVHJhaWxpbmdXb3JkOjpBdXRvOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlX
aW4uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5o
CmluZGV4IDU3Y2YwOGZkZDY3NmUyNDVjMTQ4ZDdkY2VmMGYxM2VmNGFlY2E4YzIuLmVlZDNhODRm
NDI5YzI4N2RhNmUwYjQ4NDY2MzJhN2E5YTk0OGYzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCkBAIC04MCw3ICs4MCw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KGJvb2wqID0g
bnVsbHB0cikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgZm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWlu
VGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KICAgICBib29sIGlzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGUoKSBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBoYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUFu
Y2VzdG9yKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCmluZGV4IGI1ZTZlNTE4YmQ1ZjkwMGVj
MGUxZDk0NGZlYjU3NDgyOTczMzkwNjUuLjZjZGJlZGNkMDg1NzJlMGI2NTk5ODU0M2ZkZjQyZjI1
ODQwMjIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luLmgKQEAgLTI1Niw3ICsyNTYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6Oklu
dFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3Jl
OjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNv
bnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZm9yY2VVcGRhdGVT
Y3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3QgZmluYWw7
Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0cmlu
ZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBQREZQbHVnaW4gZnVu
Y3Rpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGVhMGY2NjY0ZDNkOGIzZDA5YWViMmY1YmY0OTZhYmY3M2I3NjU5ZTgu
LjZkZDgxYTNjZmRiNDFkZWI4MzQzMzFmOGE2Zjc3YTZkMWMwYTFkN2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAyMS0wNC0wOCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29t
PgorCisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jaykt
ZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1w
YXJlbnQtZXhwZWN0ZWQudHh0OiBUaGUgc2Nyb2xsYmFyIGlzCisgICAgICAgIG5vdyBvbiB0aGUg
bGVmdCwgc28gdGhlIHJlcGFpbnRlZCByZWN0IGlzIHB1c2hlZCBvdmVyIGEgc2Nyb2xsYmFyJ3MK
KyAgICAgICAgd2lkdGguCisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93
LXNhbWUtZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92ZXJ0
aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbDogQWRkZWQuCisK
KzIwMjEtMDQtMTAgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAg
ICAgICBGaXggaW5pdGlhbCBob3Jpem9udGFsIHNjcm9sbGJhciBwb3NpdGlvbiB3aGVuIHZlcnRp
Y2FsIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtaW5p
dGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1pbml0aWFs
LXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L3J0bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbDogQWRkZWQuCisKIDIwMjEtMDQt
MDggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFwcCBib3VuZCByZXF1ZXN0IGNvbnRleHQgc3Ry
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxOWIyYmQ5NjlkYmMwMDYzMWE3ODQ5Y2MyZDc1ZGM3
NDMyM2EyNTk5Li44OWZlNTczNGQ1NDM0YTlkYjc0NjlmYTk1NmNiZDlkMTg5ZDFlYThlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTQ4NzksNiArNDg3OSwxMCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAwMi5odG1sIFsgSW1h
Z2VPbgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVv
dGUtc2NvcGluZy0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDQuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogCisjIFRlc3RzIHRoYXQgZmFpbCBiZWNhdXNlIHRoZXkgYXNz
dW1lIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIGB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCBl
bGVtZW50cyB3aWxsIGJlIG9uIHRoZSByaWdodC1oYW5kIHNpZGUKK3dlYmtpdC5vcmcvYi8yMjQz
NTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMv
c2l6aW5nLW9ydGhvZy12cmwtaW4taHRiLTAxMy54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20tdmlldy9jc3NvbS1nZXRCb3VuZGluZ0NsaWVudFJlY3QtdmVydGljYWwtcmwuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQorCiAjIEBjb3VudGVyLXN0eWxlIHJlZiB0ZXN0cyB0aGF0IGN1cnJl
bnRseSBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRl
ci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3VudGVyLXN0eWxlcy0wMDYuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50
ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1zdHlsZXMtMDA3Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1v
dmVyZmxvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92
ZXJmbG93LWV4cGVjdGVkLmh0bWwKaW5kZXggNjI1NDcyZjQ3ZjFkZmQxNjEyZjViZTQ4YjFmMWM5
NDdiYjgzNWVhMC4uMGY2YWU4NWFjNjYwYmE4MWRkMjVhYzg1MWI4ZTEzZGM2YzYwZTQ5NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVj
dGVkLmh0bWwKQEAgLTI4LDYgKzI4LDEwIEBACiBwIHsKICAgICBtYXJnaW4tYm90dG9tOiAzMHB4
OwogfQorCisudG9wUmlnaHQgeworICAgIGRpcmVjdGlvbjogcnRsOyAgLyogcGxhY2Ugc2Nyb2xs
YmFycyBvbiB0aGUgTEhTICovCit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1w
YXJlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwMTU1ODlkNzRkOWIxOTU3MjE1ZTIzMGRkMDcyZjA4
NGU5NTBiYWUuLjgyYTRmZWFhYTIzMzU4MzkyODk5MmM3NmY4Y2RlMjEyZWM4NjlkNTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJlcGFpbnQgcmVjdHMK
LSAgKHJlY3QgMjkgMjkgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjkgMTAwIDEwMCkKICkKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93
LXNhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDc3YWJmYmNkNzgxMTdlODllZmMzMTM2N2YzYzNmZGFh
ZDc2Yjg0MWYuLmI3NTkxNDE2NGQ4MThjMzgzYmQxZTMyMzQ1NDI5MTM3NDg2YjM0NWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctc2FtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAocmVwYWludCByZWN0cwotICAo
cmVjdCAyOSAyMSAxMDAgMTAwKQorICAocmVjdCA0NCAyMSAxMDAgMTAwKQogKQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3J0bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI5MWUyZjE3ZThhZWY1YTQyOWFhNTViYzBlMWY4NWI0ZGU3NDg1ZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9b25lIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDog
MTAwcHg7IGRpcmVjdGlvbjogcnRsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9
IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48
L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD10d28gc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgZGlyZWN0aW9uOiBsdHI7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdpbi10b3A6IDFlbTsi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4
IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisvLyBKaWdnbGUgdmFsdWVz
IGFyb3VuZCBzbyB0aGF0IGFzc2lnbmluZyAwIHRvIHNjcm9sbExlZnQgaXNuJ3QgaWdub3JlZCBk
dWUgdG8KKy8vIGl0IGFscmVhZHkgYmVpbmcgMC4KK29uZS5zY3JvbGxMZWZ0ID0gLTE7CitvbmUu
c2Nyb2xsTGVmdCA9IDA7Cit0d28uc2Nyb2xsTGVmdCA9IDE7Cit0d28uc2Nyb2xsTGVmdCA9IDA7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3J0bC1z
Y3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2RlODQ5YTU2ZjU2ODQ3MDViYjdiMDFiZjAxMmJmODliNWQyZjdhYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJz
LWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGRpdiBpZD1vbmUgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsg
ZGlyZWN0aW9uOiBsdHI7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2Pgor
PC9kaXY+Cis8ZGl2IGlkPXR3byBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBk
aXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFyZ2luLXRvcDogMWVtOyI+CisgIDxk
aXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQg
YmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkub2Zmc2V0VG9w
Oworb25lLnN0eWxlLmRpcmVjdGlvbiA9ICJydGwiOwordHdvLnN0eWxlLmRpcmVjdGlvbiA9ICJs
dHIiOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9y
dGwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzQ0ODRjZjYxM2E0ZDM3NWZkM2EwNTRjZDVkODkxY2E3Mjk3Zjkx
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3J0bC1zY3Jv
bGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9ZSBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEw
MHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3
aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9k
aXY+Cis8L2Rpdj4KKzxzY3JpcHQ+CisvLyBKaWdnbGUgdmFsdWVzIGFyb3VuZCBzbyB0aGF0IGFz
c2lnbmluZyAwIHRvIHNjcm9sbExlZnQgaXNuJ3QgaWdub3JlZCBkdWUgdG8KKy8vIGl0IGFscmVh
ZHkgYmVpbmcgMC4KK2Uuc2Nyb2xsTGVmdCA9IC0xOworZS5zY3JvbGxMZWZ0ID0gMDsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJh
cnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcnRs
LXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4OGI2Y2E0OWIy
MWU0MjIxNTA5ODA1NmFhNWIzMzllMzE0OGU2NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwK
QEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAg
PGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xp
ZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYzE3MGI4MGRkMGI4Y2E5N2ZmNTVkMWRiZGUxYjQwZmZhNjQ3ZWI3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwt
c2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGVzZSBm
b3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJp
Z2h0LgorCisKKworCitUaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNh
bCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuCisKKworCisKKyBQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJmYTM5ZGE2OGUyNGYzNzgxYzlmMzdhMmFmMGUxZDE0YmY1ODY2YzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1z
Y3JvbGxiYXItcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzdHlsZT4KK3NlY3Rpb24gPiBkaXYsIHNlY3Rpb24gPiBkaXYgeworICBkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7CisgIGhlaWdodDogMTAwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgb3V0bGluZTog
MXB4IHNvbGlkIGJsYWNrOworICBvdmVyZmxvdy14OiBoaWRkZW47CisgIG92ZXJmbG93LXk6IHNj
cm9sbDsKKyAgbWFyZ2luOiAxMHB4IDEwcHggMCAwOworfQorCisuc3F1YXJlIHsKKyAgd2lkdGg6
IDIwcHg7CisgIGhlaWdodDogMjBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworfQor
CisubHRyIHsgZGlyZWN0aW9uOiBsdHI7IH0KKy5ydGwgeyBkaXJlY3Rpb246IHJ0bDsgfQorLmgt
dGIgeyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7IH0KKy5oLWJ0IHsgLXdlYmtpdC13cml0
aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7IH0KKy52LXJsIHsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNh
bC1ybDsgfQorLnYtbHIgeyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9Cis8L3N0eWxlPgor
PHNlY3Rpb24gY2xhc3M9InJpZ2h0Ij4KKyAgPHA+VGhlc2UgZm91ciBjb250YWluZXJzIHNob3Vs
ZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC48L3A+CisgIDxkaXYgY2xh
c3M9ImgtdGIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2
PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJoLWJ0IGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRh
LWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1sciBsdHIiPjxkaXYg
Y2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xh
c3M9InYtbHIgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2
PjwvZGl2PgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBjbGFzcz0ibGVmdCI+CisgIDxwPlRoZXNl
IGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUg
bGVmdC48L3A+CisgIDxkaXYgY2xhc3M9ImgtdGIgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRh
dGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaC1idCBydGwiPjxk
aXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2
IGNsYXNzPSJ2LXJsIGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+
PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtcmwgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUi
IGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4KKworPHByZSBpZD0i
cmVzdWx0cyI+RkFJTDwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Cit9CisKK2xldCB0ZXh0ID0g
IiI7Citmb3IgKGxldCBzcXVhcmUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNxdWFy
ZSIpKSB7CisgICAgbGV0IGFjdHVhbCA9IHNxdWFyZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54
IC0gc3F1YXJlLnBhcmVudE5vZGUub2Zmc2V0TGVmdDsKKyAgICBsZXQgZXhwZWN0ZWQgPSBzcXVh
cmUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkIik7CisgICAgaWYgKGFjdHVhbCAhPSBleHBl
Y3RlZCkgeworICAgICAgICB0ZXh0ICs9IGBQb3NpdGlvbiBvZiBzcXVhcmUgaW4gJyR7c3F1YXJl
LnBhcmVudE5vZGUuY2xhc3NOYW1lfScgLSBleHBlY3RlZCAke2V4cGVjdGVkfSwgZ290ICR7YWN0
dWFsfVxuYDsKKyAgICB9Cit9CityZXN1bHRzLnRleHRDb250ZW50ID0gdGV4dCB8fCAiUEFTUyI7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhl
ZDdjNDMwNzYzNjNlZjIzNTNjZmVhZDIxNGE2NzRlZDUyYWIuLmUwMjQ0ZmMyNGQxYjJiMmRjMDU3
OTU0NzkxNmVmMzRkYjEzYmNjYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9j
ay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4
dApAQCAtMSwxMCArMSwxMCBAQAogCiBQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRh
bC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxp
Z25tZW50CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2Rl
IHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1
YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlM
IFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geSBleHBlY3RlZCAzMDAgYnV0IGdvdCAxODAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBo
b3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQg
ZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVj
dGVkIDExNSBidXQgZ290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3
cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50
IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdv
dCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdp
dGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxz
OiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwg
U25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5
IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZv
ciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFs
aWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMx
NSBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAz
MTUKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMAorRkFJTCBTbmFwcyBjb3JyZWN0
bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVu
ZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3Rl
ZCAzMDAgYnV0IGdvdCAwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0CmluZGV4IDViZDNiYzcxZGQwM2FjZTJj
ZWM3YTM0NDBhN2JkYzZkZDQyNDY2YjguLjUxMjE2YmI5YTk5MGEwNzU2YWZlYmIwZDRhMGRiM2Iw
Y2E1NjgxZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmll
dy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsNiBAQCBQQVNTIHdyaXRp
bmctbW9kZTpob3Jpem9udGFsLXRiOyBkaXJlY3Rpb246bHRyCiBQQVNTIHdyaXRpbmctbW9kZTpo
b3Jpem9udGFsLXRiOyBkaXJlY3Rpb246cnRsCiBQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1s
cjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlv
bjpydGwKLUZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyIGFzc2Vy
dF9hcHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBleHBlY3RlZCAtMTY1ICsvLSAwLjUg
YnV0IGdvdCAtMTUwCi1GQUlMIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0
bCBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5kaW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSAr
Ly0gMC41IGJ1dCBnb3QgLTE1MAorUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVj
dGlvbjpsdHIKK1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246cnRsCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425831</attachid>
            <date>2021-04-12 21:41:26 -0700</date>
            <delta_ts>2021-04-12 22:33:29 -0700</delta_ts>
            <desc>Squashed patch with dependencies for EWS</desc>
            <filename>bug-224224-20210413144124.patch</filename>
            <type>text/plain</type>
            <size>59512</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uN2QxNmJmY2JhZWEwZGMxNGExMWU0MTFlNjVmZmZj
MmZjYzBkYzUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAyMS0wNC0wOCAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZlcnRp
Y2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcg
bW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0OiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbAorCisg
ICAgICAgIFdlIGN1cnJlbnRseSBvbmx5IGNvbnNpZGVyIG1vdmluZyBhIHZlcnRpY2FsIHNjcm9s
bGJhciB0byB0aGUgbGVmdCBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17
dGIsYnR9OyBkaXJlY3Rpb246IHJ0bGAgY29udGFpbmVycy4gQnV0CisgICAgICAgIGlkZWFsbHkg
d2Ugc2hvdWxkIGFsd2F5cyBwbGFjZSB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGF0IHRoZSBlbmQg
ZWRnZQorICAgICAgICBvZiB0aGUgY29udGFpbmVyICh3aGV0aGVyIHRoYXQncyB0aGUgaW5saW5l
LWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEKKyAgICAgICAgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUs
IG9yIHRoZSBibG9jay1lbmQgZWRnZSwgd2hlbiB1c2luZyBhIHZlcnRpY2FsCisgICAgICAgIHdy
aXRpbmcgbW9kZSkuCisKKyAgICAgICAgU29tZSBmdW5jdGlvbnMgY2FsbGluZyB0aGUgZXhpc3Rp
bmcgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdAorICAgICAgICBpbnN0
ZWFkIHJlYWxseSBjYXJlIGFib3V0IHdoZXRoZXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBv
biB0aGUKKyAgICAgICAgbGVmdCwgbm90IHdoZXRoZXIgdGhlIGJsb2NrIGRpcmVjdGlvbiBzY3Jv
bGxiYXIgaXMgb24gdGhlIGxlZnQgKHNpbmNlCisgICAgICAgIGZvciB2ZXJ0aWNhbCB3cml0aW5n
IG1vZGVzLCB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyB0aGUKKyAgICAgICAgaG9y
aXpvbnRhbCBvbmUgb24gdGhlIGJvdHRvbSkuIFNvIHdlIHJlbmFtZSB0aGlzIHRvCisgICAgICAg
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQsIG1ha2UgaXQgcmV0dXJuIHRydWUg
Zm9yCisgICAgICAgIGB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCwgYW5kIGFkanVzdCBjYWxs
ZXJzIHRoYXQgcmVhbGx5IGRvIGNhcmUKKyAgICAgICAgb25seSBhYm91dCBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFycyB0byBhZGRpdGlvbmFsbHkgY2hlY2sgdGhlaXIKKyAgICAgICAgd3JpdGlu
ZyBtb2RlLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRnJhbWVW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6bG9jYXRpb25PZkNvbnRlbnRzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Fkd2Fp
dGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
clRoZW1lQWR3YWl0YTo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lR3RrOjpwYWludCk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0ZVNjcm9sbGVySW1wKToKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vUG9wdXBNZW51V2luLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNv
bnRlbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdo
dE9mZnNldEZvckNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVM
b2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxX
aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRC
b3hSZWN0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmlu
Z1JlY3RGb3JTdGlja3lQb3NpdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZXNpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Om92ZXJmbG93Q29udHJvbHNSZWN0cyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lciBjb25z
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVy
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlY3Rz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNv
bXB1dGVTY3JvbGxEaW1lbnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdEJveDo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUgY29uc3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKKzIwMjEtMDQtMTIgIENhbWVyb24g
TWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBSVEwgbW9jayBz
Y3JvbGxiYXJzIG9uIGlPUy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNDQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisKIDIwMjEtMDQtMTIgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzNmEzYzI0OWZkOGJmOWNhZGQ4OTc0M2M2MWFlNzgzYzkw
ZTU5OTcuLjkzYmQzM2I1ZWFlY2ExY2NhZjA4OTA5ODYyNjliZjFkZjY4ZWRjODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMDggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2Ft
QGFwcGxlLmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxp
bmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlBvcHVw
TWVudVByb3h5V2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4uaDoKKwogMjAyMS0wNC0xMiAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEZvcmNlIHRoZSBXZWJBdXRobiBjb21wYXRpYmxlIG1vZGUgdG8gYWx3YXlzIHNo
b3cgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAyNzU5MDhkZDFkYjY2
MzNlYTc2NWJkZWY3ZTNlNTY5MzBhZWI0NmQzLi5jNGViZTI2MDViYzE2OTVkNTBkZTVlMDM2ZDc0
NTRhOWFlZTI1MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTE1
LDcgKzE1MTUsNyBAQCBPcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaAogICAgICAgICAgICAgYXV0byYg
bGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxPYmplY3Q+KCpyZW5kZXJl
cik7CiAgICAgICAgICAgICBpblJlc2l6ZXIgPSBsYXllclJlbmRlcmVyLmxheWVyKCktPmlzUG9p
bnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZEludFBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkpKTsK
ICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxheWVy
UmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gc291
dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0aEVhc3RSZXNpemVDdXJzb3IoKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNv
cigpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKChlZGl0YWJsZSB8fCAocmVuZGVyZXIgJiYg
cmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUtPmNhblN0YXJ0U2VsZWN0aW9uKCkpKSAmJiAhaW5S
ZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3MTFmODRiZTExMjQ5NDdjODY1OS4uMDIxN2QzNDJi
ZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdjNTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAgSW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUu
d2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0IH07CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgRnJhbWVW
aWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVy
VmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDA2YWUzYTQ3MTEwYzU3NDcwMzMwZmY5NTljZTNj
OGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2FjNDNmYTQzMWY1ZjllYzg2N2U5OTIxMmUwNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjU1LDcgKzY1NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAg
IGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwog
CiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA4ZTZiM2FhYjU5OGEzNzRjNzEzMjQzNmY4
YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIxNjkzMGVlZmFhZWJlMDNlNTAyZjEwNTUyMDM0YjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDIyLDcgKzQyMiw3
IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGlu
UmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24mCiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxWaWV3Ojpk
b2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4oKSBjb25zdAogewogICAg
IHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0gSW50U2l6ZSgKLSAgICAgICAgc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAorICAgICAgICBzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1f
dmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCiAgICAgICAgIGhlYWRlckhl
aWdodCgpICsgdG9wQ29udGVudEluc2V0KFRvcENvbnRlbnRJbnNldFR5cGU6OldlYkNvcmVPclBs
YXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAKQEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3Np
dGlvbikKICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGll
bnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgIEludFJlY3QgaEJhclJlY3Qo
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxT
Y3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAorICAg
ICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRX
aWR0aCgpIDogMCwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSAobV92ZXJ0aWNhbFNjcm9sbGJhciA/
IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDApLAogICAgICAgICAgICAg
bV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSk7CkBAIC03NTEsNyArNzUxLDcgQEAgdm9p
ZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNp
cmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaW50
IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0
KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2QmFy
UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lk
dGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgIEludFJlY3QgdkJh
clJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkg
LSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgdG9wQ29udGVudElu
c2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAg
ICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKSAtIChtX2hvcml6b250YWxTY3JvbGxi
YXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXItPm9jY3VwaWVkSGVpZ2h0KCkgOiAwKSk7CkBAIC0x
MTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCgp
IGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciA9IGhlaWdodCgpIC0gdG9w
Q29udGVudEluc2V0KCk7CiAKICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmIHdpZHRo
KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCkgPiAwKSB7Ci0gICAgICAgIGNvcm5l
clJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAorICAgICAgICBjb3Ju
ZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdo
dCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRo
KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBtX2hvcml6
b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAgaWYgKG1fdmVydGljYWxT
Y3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJh
ci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1f
dmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50
UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAt
IG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRlbnRJbnNldCgpLAogICAgICAgICAgICAgbV92ZXJ0
aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdodFRyYWNrZWRCeVNjcm9s
bGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CkBAIC0xNTM4LDcgKzE1Mzgs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxlQW5kUmVuZGVyVHJlZURpZENoYW5nZSgpCiBJbnRQ
b2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMoKSBjb25zdAogewogICAgIEludFBv
aW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKQorICAgIGlmIChzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhcikK
ICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgp
LCAwKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNkYjdmNjc5Mzk4YTdjODc3MzEyZWQ0OTdjMTZmZThk
OS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3N2M4ZmQ1MGI3MzhhZjlhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0zNDIsNyArMzQyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9ja1Njcm9sbEFuaW1hdG9yKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2Fn
ZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKICAg
ICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1l
QWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRo
ZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1NGJhMWUyYjdjMDYxZTljZWI0NTlmNGNjNTUwZWFl
NWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNlZTk3OTM3ZDljMzhiY2EzZmQ4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVB
ZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRh
OjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAK
ICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJlY3Q7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3Jp
ZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgZnJhbWUu
bW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIDApOwogICAg
ICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUpOwogICAg
ICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0
YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwog
ICAgIEludFJlY3QgdGh1bWIgPSByZWN0OwogICAgIGlmIChzY3JvbGxiYXIuaG92ZXJlZFBhcnQo
KSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNj
cm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxl
QXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAg
ICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRo
dW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIu
bW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJsYXlUaHVtYlNpemUgKyB0aHVtYkJvcmRlclNpemUp
ICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXpl
KTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQo
U2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZl
cnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNp
emUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSAtIGhvdmVyZWRTY3JvbGxi
YXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKHNjcm9sbGJh
clNpemUgLyAyICsgdGh1bWJTaXplIC8gMiksIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0
ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3Bw
CmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcxNjA4MTU3ZjNlZmVjZDY4NGE3YjAuLjI4OTZjN2Yz
YjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThmYzIxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBA
IHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclBhcnRTdGF0ZUZsYWdzKFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBzdGF0aWMgUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5
cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9sbGJhciwgR3RrU3RhdGVG
bGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkg
PT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxl
QXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAg
ICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIHJldHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19T
VEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2Fs
U2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9s
bEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJldHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFU
RV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Ny
b2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJ
bmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0zODAsNyArMzgwLDcgQEAgYm9vbCBTY3JvbGxiYXJU
aGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRoZSBpbmRpY2F0b3Igd2UgbmVlZCB0byBhZGp1c3Qg
dGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFsIHNpemUgaW4gaW5kaWNhdG9yIG1vZGUuCiAgICAg
aWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAg
ICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9s
bGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAg
ICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3ZlKHN0ZDo6YWJzKHJlY3Qud2lkdGgoKSAtIHByZWZl
cnJlZFNpemUud2lkdGgoKSksIDApOwogICAgICAgICAgICAgY29udGVudHNSZWN0LnNldFdpZHRo
KHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBiZDA2MTVmMjJkMzU4NjIw
NGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41Mzk2MWE3YjcyMDQwMWY3MmUyMjQ1Y2JiNGUyMWI3
Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
YmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6
ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIpCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVySW1wID0gcGFpbnRlckZvclNjcm9sbGJh
cihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChzY3JvbGxlckltcCk7Ci0gICAgc2Nyb2xsZXJJbXAu
dXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgp
LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9M
ZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5kZXggN2Q1N2RhYTljZGZhODFjNGU1ZDc1N2E2Y2I2
NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1MmVkZjMzMDE5ZWExNjljYjJiMTM2MWJmNmNiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtMTA0LDcg
KzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxs
cHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFp
blRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBz
ZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGlu
dCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
YmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZkNWYzZmY0MzQ0ZGMwYS4uMjYwNmQ1MmU3NjE4ZmQ2
OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2Nr
Ojp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QKIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2lj
YWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQp
IGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldCA9IHN0eWxlKCkuaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBi
b3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNh
bExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIGlmICghZnJhZ21l
bnQpCiAgICAgICAgIHJldHVybiBsb2dpY2FsTGVmdE9mZnNldDsKQEAgLTE5MzQsNyArMTkzNCw3
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChS
ZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dp
Y2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVu
dCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodE9mZnNldCA9IHN0eWxlKCku
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkg
OiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9n
aWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICBsb2dpY2Fs
UmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXgg
MjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3ZDcxNzFjYTZiNTUzYy4uMzZjMTkxZDA1YTI4ODMy
Njk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4Myw3ICs4ODMsNyBAQCBMYXlvdXRVbml0IFJlbmRl
ckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9yU2VsZkNvbGxhcHNpbmdCbG9jaygpCiB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRl
ckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVsdGFNb2RlIGFwcGx5RGVsdGEpCiB7CiAgICAgTGF5
b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9yZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpOwot
ICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQogICAgICAgICBzdGFydFBvc2l0aW9uICs9IChzdHlsZSgpLmlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkgKiB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAg
ICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA9IGJvcmRlckFuZFBhZGRp
bmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDU3NmVlNWRjYzlhM2U2ZGY3ZTUxYmU5ZTJi
MjYyZjJiMjAwNzMyYjQuLjhmY2JiNTllNmViYmNiMTBjYTM1NjZkMjlkZTFiZmVkNmM2ZWJhMTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03MjIsNyArNzIyLDcg
QEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpyb3VuZGVkQm9yZGVyQm94UmVjdCgpIGNvbnN0CiBM
YXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGluZ0JveFJlY3QoKSBjb25zdAogewogICAgIGF1dG8g
dmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsK
LSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNjcm9sbGJhciA9IHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggOiAwOworICAg
IExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xsYmFyID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA6IDA7CiAKICAgICByZXR1cm4g
TGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBvZmZzZXRGb3JTY3JvbGxiYXIsIGJvcmRlclRvcCgp
LAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVyTGVmdCgpIC0gYm9yZGVyUmlnaHQoKSAtIHZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYsNyArNzM2LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJC
b3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QKIAogTGF5b3V0UG9pbnQgUmVuZGVyQm94Ojpjb250
ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewotICAgIExheW91dFVuaXQgc2Nyb2xsYmFyU3BhY2Ug
PSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKCkgOiAwOworICAgIExheW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRo
KCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3Jv
bGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgfTsKIH0KIApAQCAtMTk2NCw3
ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3Qg
TGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJGcmFnbWUKIAogICAgIC8vIFN1YnRyYWN0IG91
dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhlbS4KICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFy
ZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6IG51bGxwdHIpIHsKLSAg
ICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAg
ICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgo
cmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KHNjcm9sbGFibGVBcmVh
LT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSksIHNjcm9sbGFibGVBcmVhLT5ob3Jp
em9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2YW5jeSkpOwogICAgIH0KQEAgLTM3NTgsNyArMzc1
OCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aChMb2dp
Y2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1CiAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRl
bnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwogICAgIGlmIChpczxSZW5kZXJCb3g+KGNvbnRhaW5l
ckJsb2NrKSkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQm94ID0gZG93bmNhc3Q8UmVuZGVy
Qm94Pihjb250YWluZXJCbG9jayk7Ci0gICAgICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKGNvbnRhaW5p
bmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX3Bvc2l0aW9uICs9
IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIH0KICAgICAKQEAg
LTQ5NzksNyArNDk3OSw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpmbGlwcGVkQ2xpZW50Qm94
UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3QpOwogICAgIC8vIFN1YnRy
YWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9sbGJhcnMuIFRoZXkgYXJlIGF0IHRoZWlyIHBoeXNp
Y2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRlCiAgICAgLy8gc3lzdGVtLCBzbyBvcmRlciBpcyBp
bXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwgdGhlbiBzdWJ0cmFjdCBzY3JvbGxiYXJzLgotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1vdmUodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAw
KTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSwgaG9yaXpvbnRh
bFNjcm9sbGJhckhlaWdodCgpKTsKICAgICByZXR1cm4gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGI0NjNmYzlkY2Iy
MjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIzZTkuLmZhYTc2MDkxZDA0ZDQ1NWU4MmIzMzMyMjhh
ZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIEZsb2F0UmVjdCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uKCkgY29uc3QK
ICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9IEZsb2F0UG9pbnQoKSArIHNjcm9sbGFibGVBcmVh
LT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAgICBmbG9hdCBzY3JvbGxiYXJPZmZzZXQgPSAwOwot
ICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBpbmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdD
bGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
c2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlmIChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXll
cigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKICAgICAgICAgICAgIHNjcm9sbGJhck9mZnNldCA9
IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKElnbm9yZU92ZXJsYXlTY3Jv
bGxiYXJTaXplKTsKIAogICAgICAgICBjb25zdHJhaW5pbmdSZWN0LnNldExvY2F0aW9uKEZsb2F0
UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNjcm9sbGJhck9mZnNldCwgc2Nyb2xsT2Zmc2V0Lnko
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2E1OTU4
YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEzN2I0MjMxMS4uNTY5NTYxYmM3NGQzZDdjMGQzYjUx
ZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVj
dFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAg
ICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2UgdGhlIHJlY3RhbmdsZSByZWxhdGl2ZSB0byB0aGUg
c2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KC1MYXlvdXRQ
b2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94LT5ib3JkZXJUb3AoKSkpOwogCi0gICAgICAgIGlm
IChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgewotICAg
ICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjogcnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwt
dGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSBy
ZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMgZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiBzY3JvbGwg
YmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9zZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNh
bWUgcG9zaXRpb24gdG9vLgorICAgICAgICBpZiAoYm94LT5zaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgICAgIC8vIEZvciBgZGlyZWN0aW9uOiBydGw7IHdy
aXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIsYnR9YCBhbmQgYHdyaXRpbmctbW9kZTogdmVydGlj
YWwtcmxgCisgICAgICAgICAgICAvLyBib3hlcywgdGhlIHNjcm9sbCBiYXIgaXMgb24gdGhlIGxl
ZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBzdGFydHMgZnJvbSB0aGUgcmlnaHQgc2lkZQorICAg
ICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVj
dCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28uCiAgICAgICAgICAgICBs
b2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91dFBvaW50KC1zY3JvbGxhYmxlQXJlYS0+dmVydGlj
YWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAgICAgICAgIH0KICAgICAgICAgTGF5b3V0UmVjdCBs
YXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gtPmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVp
Z2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAg
ICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKG1pbmltdW1TaXplKTsKICAgICAK
ICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xkT2Zmc2V0ID0gTGF5b3V0U2l6ZShvbGRPZmZzZXQu
d2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9mZnNldC5oZWlnaHQoKSAvIHpvb21GYWN0b3IpOwot
ICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0LnNldFdpZHRoKC1uZXdPZmZzZXQud2lkdGgoKSk7
CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0LnNldFdpZHRoKC1hZGp1c3RlZE9sZE9mZnNldC53
aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcgKzI3MzQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZs
b3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6Om92ZXJmbG93Q29udHJvbHNSZWN0cygpIGNvbnN0
CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5zaWRlIHRoZSBib3JkZXIgYm94LgogICAgIGF1dG8g
b3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5nUmVjdCA9IHNuYXBwZWRJbnRSZWN0KHJlbmRlckJv
eC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Njcm9sbGJhcigpKTsKIAotICAgIGJvb2wgcGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHJlbmRlckJveC5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9
IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJmbG93Q29udHJvbFJlY3RzIHJlc3VsdDsKQEAgLTI3
ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6ZGVidWdEZXNjcmlwdGlvbigpIGNv
bnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyKGNvbnN0IElu
dFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAogewogICAgIGF1dG8gcmVzaXplclJlY3QgPSBvdmVy
Zmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVyOwotICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVu
ZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNp
emVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsK
KyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJlbmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKSA6IHJlc2l6ZXJS
ZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAgcmV0dXJuIGxvY2FsUG9pbnQgLSByZXNpemVDb3Ju
ZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1MDBlYTBlYjcxMWUwNzk4NGIzODE0MWQ4N2E2ZDYx
ZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3OGM5MDAyMTA1MTExMjc3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTIy
MzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlv
bkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3
LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJuIEZsb2F0UG9pbnQoCi0gICAgICAgIGZyYW1lVmll
dy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBmcmFtZVZpZXcu
aG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIDogMCwKKyAgICAgICAgZnJhbWVWaWV3LnNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFs
U2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAogICAgICAgICBGcmFtZVZpZXc6OnlQb3NpdGlvbkZv
ckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpLCBmcmFtZVZpZXcudG9w
Q29udGVudEluc2V0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGRhYjVlYTk4NGU3MmUxYTVkZmJmYjEx
NDk4YzdiNzI4ZmI5OWY3YWYuLjgxYzU3OWJlNWU5MDVlYTlmMjM2NDg5ZDBmNDIwNDgzMTU2MTky
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKQEAgLTIwNywyMSArMjA3LDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7CiAv
LyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lzdGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5
c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNlcnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4g
aU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQorICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzOjptb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCiAgICAgc3dpdGNoIChzZXR0aW5ncygpLnVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ko
KSkgewogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6Q29udGVudDoKLSAg
ICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpOworICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OjpTeXN0
ZW06CiAgICAgICAgIHJldHVybiBzZXR0aW5ncygpLnN5c3RlbUxheW91dERpcmVjdGlvbigpID09
IFRleHREaXJlY3Rpb246OlJUTDsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpOwotI2VuZGlmCisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpOwogfQogCiBPcHRpb25hbDxMYXllclJlcGFpbnRSZWN0cz4gUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6bGF5ZXJSZXBhaW50UmVjdHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggOWM5NjZmN2Vi
MmYwMjdkNjMwZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEyZDc4YTUzZGRkNWM2
YWYzZDdmZjhkYzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJh
ck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVjdHM+IGxheWVyUmVw
YWludFJlY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1MDJhYjk1ZWI4NDk5ZTBh
ZDY4NTIxNDlmMDFmMTlhM2MxYTQxLi44YjI2ZmI3Njg5ZjQ1Y2ViZDA1NWY5NTY4NDE3ZTZlMzNm
ZTIxMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9pZCBSZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIGVsZW1lbnQtPnNl
dFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAotYm9vbCBSZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGF5ZXIucmVu
ZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAg
cmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCk7CiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTY1NCw3ICs2NTQs
NyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZlTm9uT3ZlcmxheUhv
cml6b250YWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9oQmFyLmdldCgpKTsK
ICAgICBib29sIGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlT
Y3JvbGxiYXIobV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJP
blRoZUxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7Cisg
ICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlci5z
dHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNjcm9sbGJhcnNBdm9p
ZENvcm5lciA9IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgJiYgaGF2ZU5vbk92
ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmIChoYXZlTm9uT3Zlcmxh
eUhvcml6b250YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikp
OwogCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6
OmNvbXB1dGVTY3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwogCiAgICAgaW50IHNjcm9s
bGFibGVMZWZ0T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0gYm94LT5ib3Jk
ZXJMZWZ0KCkpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAg
ICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3Ao
KSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Ny
b2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpAQCAtMTEwNCw3
ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcldp
dGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGhh
c1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVydGljYWxTY3JvbGxCYXJD
aGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdpbigp
OwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKQEAgLTEzNDgs
NyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3Jt
UmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6
ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUo
KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29y
bmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNv
cm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAtMTUwOSw3ICsxNTA5LDcg
QEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRy
b2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3Qg
SW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0g
ICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsK
KyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAg
ICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWlu
WE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAg
ICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZz
ZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCBy
ZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRz
SG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNW
ZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVl
ZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHls
ZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVkc1ZlcnRpY2FsU2Nyb2xs
YmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIGJveC0+c3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0gb2xkU3R5bGUtPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAgIGNvbXB1dGVTY3JvbGxP
cmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZsb3c6c2Nyb2xsLCBzY3Jv
bGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5k
ZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZlOC4uYWU0NzE5OTM3MjNk
ZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9v
bCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBmNTcyZGY5Zi4uM2VhN2I3
MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIExheW91dFVuaXQg
UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBl
LCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAg
ICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7
CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwog
ICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkp
OwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFt
X3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zm
c2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBi
b3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zm
c2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndp
ZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJU
b3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxp
c3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNv
bnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRl
SW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExheW91dFVuaXQg
eCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQu
eCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQo
KSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlv
dXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlv
dXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
dGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkg
KzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBzY3JvbGxiYXJX
aWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRo
KCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQu
d2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
cGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAog
ICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRk
aW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAw
LDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJM
aXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAg
IHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsKICAgICByZXBhaW50UmVj
dGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3Qg
PSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9s
bGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5k
ZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50
UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXco
KS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBw
YXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJU
b3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxi
YXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNj
cm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9s
bGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkg
LSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRv
cCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFy
VG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJU
b0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2lu
dCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3
KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywg
cGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRo
KCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJh
clRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYwZjk5MjZjNGYyMTdlMTM0
MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFkMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlv
bigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6
OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29w
dGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5
b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZh
ZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJh
YTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQg
dGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlv
biBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBl
eGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygp
OwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYg
KGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVW
aWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShM
YXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCks
IDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1OC4uMDliODNjOGUzMDM5
ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1ODEsOSBAQCBmbG9hdCBS
ZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3Vu
ZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHls
ZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9y
UGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0
NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcg
KzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAg
IFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6
OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThj
Mi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgw
LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9s
bGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJl
cmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1
MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4
NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxi
YXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBE
RlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNkZmE1YTI4NDdlNjNlMWMwOWQ2NDgwOTQyNWU5
NGJkMTQxZjVmOC4uYWNjZjQxNzdiYTI3YjM2NzZmMWU4MTM1NDBiNTFkNzgwZDAyN2E2MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA0LTA4ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5s
aW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2Fs
LW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6IFRoZSBzY3JvbGxiYXIgaXMKKyAgICAgICAg
bm93IG9uIHRoZSBsZWZ0LCBzbyB0aGUgcmVwYWludGVkIHJlY3QgaXMgcHVzaGVkIG92ZXIgYSBz
Y3JvbGxiYXIncworICAgICAgICB3aWR0aC4KKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGlj
YWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1s
OiBBZGRlZC4KKwogMjAyMS0wNC0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzU3OTMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA4NmFiNmQzZjZkMzM5Y2NmMzQ3YmZmMWYwMjcwNDRhMjU3MDA2M2YyLi5h
MGI1NzI0NWZlNzdhZTY2YWI2NzZjOTQ0NDA0OWFkNGNhOGQwNjU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQ4NzAsNiArNDg3MCwxMCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAwMi5odG1sIFsgSW1hZ2VPbgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0w
MDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDQuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogCisjIFRlc3RzIHRoYXQgZmFpbCBiZWNhdXNlIHRoZXkgYXNzdW1lIGEgdmVydGlj
YWwgc2Nyb2xsYmFyIGluIGB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCBlbGVtZW50cyB3aWxs
IGJlIG9uIHRoZSByaWdodC1oYW5kIHNpZGUKK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvc2l6aW5nLW9ydGhv
Zy12cmwtaW4taHRiLTAxMy54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8y
MjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9jc3Nv
bS1nZXRCb3VuZGluZ0NsaWVudFJlY3QtdmVydGljYWwtcmwuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQorCiAjIEBjb3VudGVyLXN0eWxlIHJlZiB0ZXN0cyB0aGF0IGN1cnJlbnRseSBmYWlsCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvYXJt
ZW5pYW4vY3NzMy1jb3VudGVyLXN0eWxlcy0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2Fy
bWVuaWFuL2NzczMtY291bnRlci1zdHlsZXMtMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVj
dGVkLmh0bWwKaW5kZXggNjI1NDcyZjQ3ZjFkZmQxNjEyZjViZTQ4YjFmMWM5NDdiYjgzNWVhMC4u
MGY2YWU4NWFjNjYwYmE4MWRkMjVhYzg1MWI4ZTEzZGM2YzYwZTQ5NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKQEAg
LTI4LDYgKzI4LDEwIEBACiBwIHsKICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogfQorCisudG9w
UmlnaHQgeworICAgIGRpcmVjdGlvbjogcnRsOyAgLyogcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUg
TEhTICovCit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0
ZWQudHh0CmluZGV4IDAwMTU1ODlkNzRkOWIxOTU3MjE1ZTIzMGRkMDcyZjA4NGU5NTBiYWUuLjgy
YTRmZWFhYTIzMzU4MzkyODk5MmM3NmY4Y2RlMjEyZWM4NjlkNTYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkg
MjkgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjkgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0
ZWQudHh0CmluZGV4IDc3YWJmYmNkNzgxMTdlODllZmMzMTM2N2YzYzNmZGFhZDc2Yjg0MWYuLmI3
NTkxNDE2NGQ4MThjMzgzYmQxZTMyMzQ1NDI5MTM3NDg2YjM0NWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAocmVwYWludCByZWN0cwotICAocmVjdCAyOSAyMSAx
MDAgMTAwKQorICAocmVjdCA0NCAyMSAxMDAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9s
bGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjQxNmI0NzI3YTBiOGJhZWU5YTY0NTFhYjc4YjVlZTNmY2Y1OTQ1OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246
IHJ0bDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhl
aWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxk
aXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBsdHI7IG92
ZXJmbG93OiBzY3JvbGw7IG1hcmdpbi10b3A6IDFlbTsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDog
MTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xs
YmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NjBmNzA2Yzk2M2Y2MGMxZGRkNzJiOGRlMjY4ODgxYTEyZTYyZDNhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWlu
aXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGRpdiBpZD1vbmUgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3Jp
dGluZy1tb2RlOiBob3Jpem9udGFsLXRiOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5
bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7
Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD10d28gc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0
OiAxMDBweDsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFy
Z2luLXRvcDogMWVtOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJw
eDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2Rv
Y3VtZW50LmJvZHkub2Zmc2V0VG9wOworb25lLnN0eWxlLndyaXRpbmdNb2RlID0gInZlcnRpY2Fs
LXJsIjsKK3R3by5zdHlsZS53cml0aW5nTW9kZSA9ICJob3Jpem9udGFsLXRiIjsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJz
LWluaXRpYWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODg4YjZjYTQ5YjIxZTQyMjE1MDk4MDU2YWE1YjMzOWUzMTQ4ZTY1ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0
aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBy
dGw7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWln
aHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlh
bC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxi
YXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2EwYmYwODMyOTBjM2U1NTVk
MTU4NjIyODQ3Y2NhNGE3OTZkZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbApAQCAtMCww
ICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWln
aHQ6IDEwMHB4OyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyBvdmVyZmxvdzogc2Nyb2xsOyI+
CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHgg
c29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNzBiODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0
N2ViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhl
c2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRo
ZSByaWdodC4KKworCisKKworVGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVy
dGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZmEzOWRhNjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2
NmM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGlj
YWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8c3R5bGU+CitzZWN0aW9uID4gZGl2LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTog
aW5saW5lLWJsb2NrOworICBoZWlnaHQ6IDEwMHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxp
bmU6IDFweCBzb2xpZCBibGFjazsKKyAgb3ZlcmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15
OiBzY3JvbGw7CisgIG1hcmdpbjogMTBweCAxMHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdp
ZHRoOiAyMHB4OworICBoZWlnaHQ6IDIwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsK
K30KKworLmx0ciB7IGRpcmVjdGlvbjogbHRyOyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0K
Ky5oLXRiIHsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQt
d3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVy
dGljYWwtcmw7IH0KKy52LWxyIHsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHls
ZT4KKzxzZWN0aW9uIGNsYXNzPSJyaWdodCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBz
aG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2
IGNsYXNzPSJoLXRiIGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48
L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIg
ZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48
ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2
IGNsYXNzPSJ2LWxyIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48
L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5U
aGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24g
dGhlIGxlZnQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJl
IiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRs
Ij48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAg
PGRpdiBjbGFzcz0idi1ybCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0i
ODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUg
aWQ9InJlc3VsdHMiPkZBSUw8L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4
dCA9ICIiOworZm9yIChsZXQgc3F1YXJlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5z
cXVhcmUiKSkgeworICAgIGxldCBhY3R1YWwgPSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkueCAtIHNxdWFyZS5wYXJlbnROb2RlLm9mZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0g
c3F1YXJlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0g
ZXhwZWN0ZWQpIHsKKyAgICAgICAgdGV4dCArPSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3Nx
dWFyZS5wYXJlbnROb2RlLmNsYXNzTmFtZX0nIC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAk
e2FjdHVhbH1cbmA7CisgICAgfQorfQorcmVzdWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBB
U1MiOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAppbmRleCA2
OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUzY2ZlYWQyMTRhNjc0ZWQ1MmFiLi5lMDI0NGZjMjRkMWIyYjJk
YzA1Nzk1NDc5MTZlZjM0ZGIxM2JjY2MxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUt
YmxvY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3Rl
ZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAogUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6
b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQn
IGFsaWdubWVudAogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcg
bW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0
X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDMwMAot
RkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdz
Y3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxp
Z25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBz
IGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFw
LWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVj
dGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMTgwCiBGQUlMIFNuYXBzIGNvcnJlY3RseSBm
b3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0
YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBl
eHBlY3RlZCAxMTUgYnV0IGdvdCAwCiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwt
bHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1
dCBnb3QgMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9k
ZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1G
QUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25h
cC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJl
Y3RseSBvbiB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3Rs
eSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5k
JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVk
IC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwg
d3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBn
b3QgMzE1CitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdz
Y3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxp
Z25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDAKK0ZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFy
dCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhw
ZWN0ZWQgMzAwIGJ1dCBnb3QgMAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dAppbmRleCA1YmQzYmM3MWRkMDNh
Y2UyY2VjN2EzNDQwYTdiZGM2ZGQ0MjQ2NmI4Li41MTIxNmJiOWE5OTBhMDc1NmFmZWJiMGQ0YTBk
YjNiMGNhNTY4MWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29t
LXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDYgQEAgUEFTUyB3
cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1v
ZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0aW9uOnJ0bAogUEFTUyB3cml0aW5nLW1vZGU6dmVydGlj
YWwtbHI7IGRpcmVjdGlvbjpsdHIKIFBBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJl
Y3Rpb246cnRsCi1GQUlMIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBh
c3NlcnRfYXBwcm94X2VxdWFsczogZW5kaW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0g
MC41IGJ1dCBnb3QgLTE1MAotRkFJTCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlv
bjpydGwgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0x
NjUgKy8tIDAuNSBidXQgZ290IC0xNTAKK1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBk
aXJlY3Rpb246bHRyCitQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0
bAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425835</attachid>
            <date>2021-04-12 22:33:35 -0700</date>
            <delta_ts>2021-04-12 23:21:27 -0700</delta_ts>
            <desc>Squashed patch with dependencies for EWS</desc>
            <filename>bug-224224-20210413153333.patch</filename>
            <type>text/plain</type>
            <size>60866</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uYWE1MzkyMWNiZDY1ZjlmYmVjY2ExMDAwNjY0YzNi
ZWE0MjczOWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAyMS0wNC0xMiAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZlcnRp
Y2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcg
bW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0czogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHlu
YW1pYy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMt
aW5pdGlhbC1wb3NpdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy92ZXJ0
aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbAorCisgICAgICAgIFdlIGN1cnJlbnRseSBvbmx5
IGNvbnNpZGVyIG1vdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciB0byB0aGUgbGVmdCBmb3IKKyAg
ICAgICAgYHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIsYnR9OyBkaXJlY3Rpb246IHJ0bGAg
Y29udGFpbmVycy4gQnV0CisgICAgICAgIGlkZWFsbHkgd2Ugc2hvdWxkIGFsd2F5cyBwbGFjZSB0
aGUgdmVydGljYWwgc2Nyb2xsYmFyIGF0IHRoZSBlbmQgZWRnZQorICAgICAgICBvZiB0aGUgY29u
dGFpbmVyICh3aGV0aGVyIHRoYXQncyB0aGUgaW5saW5lLWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEK
KyAgICAgICAgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUsIG9yIHRoZSBibG9jay1lbmQgZWRnZSwg
d2hlbiB1c2luZyBhIHZlcnRpY2FsCisgICAgICAgIHdyaXRpbmcgbW9kZSkuCisKKyAgICAgICAg
U29tZSBmdW5jdGlvbnMgY2FsbGluZyB0aGUgZXhpc3Rpbmcgc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdAorICAgICAgICBpbnN0ZWFkIHJlYWxseSBjYXJlIGFib3V0IHdo
ZXRoZXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBvbiB0aGUKKyAgICAgICAgbGVmdCwgbm90
IHdoZXRoZXIgdGhlIGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXIgaXMgb24gdGhlIGxlZnQgKHNp
bmNlCisgICAgICAgIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzLCB0aGUgYmxvY2sgZGlyZWN0
aW9uIHNjcm9sbGJhciBpcyB0aGUKKyAgICAgICAgaG9yaXpvbnRhbCBvbmUgb24gdGhlIGJvdHRv
bSkuIFNvIHdlIHJlbmFtZSB0aGlzIHRvCisgICAgICAgIHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQsIG1ha2UgaXQgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIGB3cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsYCwgYW5kIGFkanVzdCBjYWxsZXJzIHRoYXQgcmVhbGx5IGRvIGNhcmUK
KyAgICAgICAgb25seSBhYm91dCBibG9jayBkaXJlY3Rpb24gc2Nyb2xsYmFycyB0byBhZGRpdGlv
bmFsbHkgY2hlY2sgdGhlaXIKKyAgICAgICAgd3JpdGluZyBtb2RlLgorCisgICAgICAgICogcGFn
ZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxl
Y3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9z
aXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnNjcm9sbENvcm5lclJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
bG9jYXRpb25PZkNvbnRlbnRzIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lR3RrOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0
ZVNjcm9sbGVySW1wKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hp
bGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmluZ1JlY3RGb3JTdGlja3lQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpyZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
Om92ZXJmbG93Q29udHJvbHNSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxPcmlnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJh
cnNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWlu
aW5nVmlldyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKKzIwMjEt
MDQtMTIgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBB
bGxvdyBSVEwgbW9jayBzY3JvbGxiYXJzIG9uIGlPUy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisKIDIwMjEtMDQtMTIgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzNmEzYzI0OWZkOGJmOWNhZGQ4
OTc0M2M2MWFlNzgzYzkwZTU5OTcuLjdmZTUzMGZlMGQ5NWM2ODA5ZDYyZTE0NzcxYjU0ZTBiM2M0
ZmEwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTIgIENhbWVyb24gTWND
b3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3Jv
bGxiYXJzIGF0IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4uaDoKKwogMjAyMS0wNC0xMiAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHRoZSBXZWJBdXRobiBjb21wYXRpYmxlIG1v
ZGUgdG8gYWx3YXlzIHNob3cgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCAyNzU5MDhkZDFkYjY2MzNlYTc2NWJkZWY3ZTNlNTY5MzBhZWI0NmQzLi5jNGViZTI2MDViYzE2
OTVkNTBkZTVlMDM2ZDc0NTRhOWFlZTI1MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBPcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxl
cjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaAogICAg
ICAgICAgICAgYXV0byYgbGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxP
YmplY3Q+KCpyZW5kZXJlcik7CiAgICAgICAgICAgICBpblJlc2l6ZXIgPSBsYXllclJlbmRlcmVy
LmxheWVyKCktPmlzUG9pbnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZEludFBvaW50KHJlc3VsdC5s
b2NhbFBvaW50KCkpKTsKICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJh
ck9uTGVmdCgpID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0aEVhc3RSZXNpemVDdXJz
b3IoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRo
RWFzdFJlc2l6ZUN1cnNvcigpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKChlZGl0YWJsZSB8
fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUtPmNhblN0YXJ0U2VsZWN0
aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFyKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3MTFmODRiZTExMjQ5NDdj
ODY1OS4uMDIxN2QzNDJiZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdjNTE1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAgSW50U2l6ZSBGcmFtZVZp
ZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAogICAgIHJldHVybiB7
ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0IH07CiB9CiAKLWJvb2wg
RnJhbWVWaWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVybiByZW5kZXJW
aWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZy
YW1lVmlldyYgdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDA2YWUzYTQ3MTEwYzU3
NDcwMzMwZmY5NTljZTNjOGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2FjNDNmYTQzMWY1ZjllYzg2
N2U5OTIxMmUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjU1LDcgKzY1NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsK
IAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA4ZTZiM2FhYjU5
OGEzNzRjNzEzMjQzNmY4YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIxNjkzMGVlZmFhZWJlMDNl
NTAyZjEwNTUyMDM0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApA
QCAtNDIyLDcgKzQyMiw3IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmFkanVzdFNjcm9s
bFBvc2l0aW9uV2l0aGluUmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24mCiBTY3JvbGxQb3NpdGlv
biBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4o
KSBjb25zdAogewogICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0gSW50U2l6ZSgKLSAgICAg
ICAgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGlj
YWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAor
ICAgICAgICBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNh
bFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCiAg
ICAgICAgIGhlYWRlckhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KFRvcENvbnRlbnRJbnNldFR5
cGU6OldlYkNvcmVPclBsYXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAKQEAgLTczMiw3ICs3MzIs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CiAg
ICAgICAgIGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwogICAgICAgICBJbnRSZWN0
IG9sZFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgIElu
dFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdp
ZHRoKCkgOiAwLAorICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9s
bGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSAobV92ZXJ0
aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAp
LAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSk7CkBAIC03NTEs
NyArNzUxLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIp
IHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICAgICAg
SW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAg
ICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAg
ICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAg
ICAgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKSAtIChtX2hv
cml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXItPm9jY3VwaWVkSGVpZ2h0
KCkgOiAwKSk7CkBAIC0xMTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6c2Ny
b2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciA9
IGhlaWdodCgpIC0gdG9wQ29udGVudEluc2V0KCk7CiAKICAgICBpZiAobV9ob3Jpem9udGFsU2Ny
b2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCkgPiAwKSB7
Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgp
LAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAg
ICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAg
ICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAg
aWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92
ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5p
dGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAw
IDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgIGNvcm5l
clJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
PyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAg
ICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRlbnRJbnNldCgpLAogICAg
ICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdo
dFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CkBA
IC0xNTM4LDcgKzE1MzgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxlQW5kUmVuZGVyVHJlZURp
ZENoYW5nZSgpCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMoKSBjb25z
dAogewogICAgIEludFBvaW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0gICAgaWYgKHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFy
KQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0
aWNhbFNjcm9sbGJhcikKICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0aWNhbFNjcm9sbGJhci0+
b2NjdXBpZWRXaWR0aCgpLCAwKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNkYjdmNjc5Mzk4YTdjODc3
MzEyZWQ0OTdjMTZmZThkOS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3N2M4ZmQ1MGI3MzhhZjlh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0zNDIsNyAr
MzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9ja1Njcm9sbEFuaW1hdG9y
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbG9nTW9ja1Njcm9s
bEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07CiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkg
Y29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRh
L1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdh
aXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1NGJhMWUyYjdjMDYxZTlj
ZWI0NTlmNGNjNTUwZWFlNWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNlZTk3OTM3ZDljMzhiY2Ez
ZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxi
YXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEv
U2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgU2Nyb2xs
YmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250
ZXh0JiBncmFwaGljCiAKICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJlY3Q7CiAgICAgICAgIGlm
IChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xs
YWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAg
ICAgICAgICAgZnJhbWUubW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRl
clNpemUsIDApOwogICAgICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92ZXJlZFNjcm9sbGJhckJv
cmRlclNpemUpOwogICAgICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFNjcm9s
bGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29u
dGV4dCYgZ3JhcGhpYwogICAgIEludFJlY3QgdGh1bWIgPSByZWN0OwogICAgIGlmIChzY3JvbGxi
YXIuaG92ZXJlZFBhcnQoKSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkpIHsK
ICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXpl
LCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJsYXlUaHVtYlNpemUgKyB0
aHVtYkJvcmRlclNpemUpICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsg
dGh1bWJCb3JkZXJTaXplKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29sIFNjcm9sbGJhclRoZW1l
QWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpYwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xs
YmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5t
b3ZlKHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSAt
IGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJT
aXplIC0gKHNjcm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMiksIHRodW1iUG9zICsgdGh1
bWJCb3JkZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
YmFyVGhlbWVHdGsuY3BwCmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcxNjA4MTU3ZjNlZmVjZDY4
NGE3YjAuLjI4OTZjN2YzYjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThmYzIxM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcApAQCAt
MTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclBhcnRTdGF0ZUZs
YWdzKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBzdGF0aWMgUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9s
bGJhciwgR3RrU3RhdGVGbGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAgICBpZiAoc2Nyb2xsYmFy
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIHJldHVybiBzY3JvbGxi
YXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6
OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBl
OjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJldHVybiBzY3JvbGxiYXJT
dGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5
cGU6OlZlcnRpY2FsU2Nyb2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6
VmVydGljYWxTY3JvbGxJbmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0zODAsNyArMzgwLDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRoZSBpbmRpY2F0b3Igd2Ug
bmVlZCB0byBhZGp1c3QgdGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFsIHNpemUgaW4gaW5kaWNh
dG9yIG1vZGUuCiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Ny
b2xsYmFyKSB7CiAgICAgICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJlZmVycmVkU2l6ZS53aWR0
aCgpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmICgh
c2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpKQogICAgICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3ZlKHN0ZDo6YWJzKHJlY3Qu
d2lkdGgoKSAtIHByZWZlcnJlZFNpemUud2lkdGgoKSksIDApOwogICAgICAgICAgICAgY29udGVu
dHNSZWN0LnNldFdpZHRoKHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBi
ZDA2MTVmMjJkMzU4NjIwNGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41Mzk2MWE3YjcyMDQwMWY3
MmUyMjQ1Y2JiNGUyMWI3Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBTY3Jv
bGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIp
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVySW1wID0gcGFp
bnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChzY3JvbGxlckltcCk7Ci0g
ICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5z
Y3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Nyb2xsZXJJbXAudXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRv
UmlnaHQ7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5kZXggN2Q1N2RhYTljZGZh
ODFjNGU1ZDc1N2E2Y2I2NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1MmVkZjMzMDE5ZWExNjlj
YjJiMTM2MWJmNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjb250ZW50c1Np
emUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGZvcmNlVXBkYXRl
U2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29s
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkg
dGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4KICAgICB2
b2lkIHNjcm9sbFRvKGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggYmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZkNWYzZmY0MzQ0ZGMwYS4u
MjYwNmQ1MmU3NjE4ZmQ2OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBMYXlvdXRV
bml0IFJlbmRlckJsb2NrOjp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QKIExheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRh
aW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNl
dCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
ICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwog
ICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybiBsb2dpY2FsTGVmdE9mZnNldDsKQEAg
LTE5MzQsNyArMTkzNCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhCiBMYXlvdXRVbml0IFJl
bmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29u
dGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodE9m
ZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSAr
IHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSkKICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgo
KTsKICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAg
ICAgaWYgKCFmcmFnbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKaW5kZXggMjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3ZDcxNzFjYTZiNTUzYy4u
MzZjMTkxZDA1YTI4ODMyNjk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4Myw3ICs4ODMsNyBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9yU2VsZkNvbGxhcHNpbmdC
bG9jaygpCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlv
bkZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVsdGFNb2RlIGFwcGx5RGVs
dGEpCiB7CiAgICAgTGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9yZGVyU3RhcnQoKSArIHBh
ZGRpbmdTdGFydCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAm
JiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBzdGFydFBvc2l0aW9uICs9IChz
dHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkgKiB2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA9
IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDU3NmVlNWRjYzlh
M2U2ZGY3ZTUxYmU5ZTJiMjYyZjJiMjAwNzMyYjQuLjhmY2JiNTllNmViYmNiMTBjYTM1NjZkMjlk
ZTFiZmVkNmM2ZWJhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBA
IC03MjIsNyArNzIyLDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpyb3VuZGVkQm9yZGVyQm94
UmVjdCgpIGNvbnN0CiBMYXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGluZ0JveFJlY3QoKSBjb25z
dAogewogICAgIGF1dG8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNjcm9sbGJhciA9IHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFy
V2lkdGggOiAwOworICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xsYmFyID0gc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA6IDA7
CiAKICAgICByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBvZmZzZXRGb3JTY3JvbGxi
YXIsIGJvcmRlclRvcCgpLAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVyTGVmdCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYsNyArNzM2LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QKIAogTGF5b3V0UG9pbnQg
UmVuZGVyQm94Ojpjb250ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewotICAgIExheW91dFVuaXQg
c2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOworICAgIExheW91dFVuaXQgc2Nyb2xs
YmFyU3BhY2UgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNh
bFNjcm9sbGJhcldpZHRoKCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRlckxlZnQoKSArIHBhZGRp
bmdMZWZ0KCkgKyBzY3JvbGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgfTsK
IH0KIApAQCAtMTk2NCw3ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6Om92ZXJmbG93
Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJGcmFnbWUKIAogICAg
IC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhlbS4KICAgICBpZiAoYXV0
byogc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6
IG51bGxwdHIpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0
KHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSksIHNjcm9s
bGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2YW5jeSkpOwogICAgIH0K
QEAgLTM3NTgsNyArMzc1OCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExv
Z2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1CiAgICAgY29tcHV0
ZWRWYWx1ZXMubV9leHRlbnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwogICAgIGlmIChpczxSZW5k
ZXJCb3g+KGNvbnRhaW5lckJsb2NrKSkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQm94ID0g
ZG93bmNhc3Q8UmVuZGVyQm94Pihjb250YWluZXJCbG9jayk7Ci0gICAgICAgIGlmIChjb250YWlu
aW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAg
ICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBjb21wdXRlZFZhbHVl
cy5tX3Bvc2l0aW9uICs9IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwog
ICAgIH0KICAgICAKQEAgLTQ5NzksNyArNDk3OSw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpm
bGlwcGVkQ2xpZW50Qm94UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3Qp
OwogICAgIC8vIFN1YnRyYWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9sbGJhcnMuIFRoZXkgYXJl
IGF0IHRoZWlyIHBoeXNpY2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRlCiAgICAgLy8gc3lzdGVt
LCBzbyBvcmRlciBpcyBpbXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwgdGhlbiBzdWJ0cmFjdCBz
Y3JvbGxiYXJzLgotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1vdmUodmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpLCAwKTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRpY2FsU2Nyb2xsYmFyV2lk
dGgoKSwgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpKTsKICAgICByZXR1cm4gcmVjdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmlu
ZGV4IGI0NjNmYzlkY2IyMjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIzZTkuLmZhYTc2MDkxZDA0
ZDQ1NWU4MmIzMzMyMjhhZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIEZs
b2F0UmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBv
c2l0aW9uKCkgY29uc3QKICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9IEZsb2F0UG9pbnQoKSAr
IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAgICBmbG9hdCBzY3JvbGxi
YXJPZmZzZXQgPSAwOwotICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBpbmdCb3guaGFzTGF5ZXIo
KSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlmIChlbmNsb3NpbmdDbGlw
cGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKICAgICAgICAgICAgIHNj
cm9sbGJhck9mZnNldCA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKEln
bm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgICAgICBjb25zdHJhaW5pbmdSZWN0LnNl
dExvY2F0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNjcm9sbGJhck9mZnNldCwg
c2Nyb2xsT2Zmc2V0LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggN2E1OTU4YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEzN2I0MjMxMS4uNTY5NTYx
YmM3NGQzZDdjMGQzYjUxZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3Qs
IGJvb2wgaW5zaWQKICAgICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2UgdGhlIHJlY3RhbmdsZSBy
ZWxhdGl2ZSB0byB0aGUgc2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBsb2NhbEV4cG9zZVJlY3Qu
bW92ZUJ5KC1MYXlvdXRQb2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94LT5ib3JkZXJUb3AoKSkp
OwogCi0gICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkgewotICAgICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjogcnRsOyB3cml0aW5nLW1v
ZGU6IGhvcml6b250YWwtdGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRl
LiBUaGUgdmlzaWJsZSByZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMgZnJvbSB0aGUgcmlnaHQg
c2lkZSBvZiBzY3JvbGwgYmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9zZVJlY3Qgc2hvdWxkIHN0
YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9vLgorICAgICAgICBpZiAoYm94LT5zaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgICAgIC8vIEZvciBgZGly
ZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIsYnR9YCBhbmQgYHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmxgCisgICAgICAgICAgICAvLyBib3hlcywgdGhlIHNjcm9sbCBi
YXIgaXMgb24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBzdGFydHMgZnJvbSB0aGUg
cmlnaHQgc2lkZQorICAgICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9m
IGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28u
CiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91dFBvaW50KC1zY3JvbGxh
YmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAgICAgICAgIH0KICAgICAg
ICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gtPmNsaWVudFdpZHRoKCks
IGJveC0+Y2xpZW50SGVpZ2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0LCBjb25zdCBMYXlvdXRT
aXplJiBvbGRPZmYKICAgICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKG1pbmlt
dW1TaXplKTsKICAgICAKICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xkT2Zmc2V0ID0gTGF5b3V0
U2l6ZShvbGRPZmZzZXQud2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9mZnNldC5oZWlnaHQoKSAv
IHpvb21GYWN0b3IpOwotICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0LnNldFdpZHRoKC1uZXdP
ZmZzZXQud2lkdGgoKSk7CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0LnNldFdpZHRoKC1hZGp1
c3RlZE9sZE9mZnNldC53aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcgKzI3MzQsNyBAQCBSZW5k
ZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6Om92ZXJmbG93Q29udHJv
bHNSZWN0cygpIGNvbnN0CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5zaWRlIHRoZSBib3JkZXIg
Ym94LgogICAgIGF1dG8gb3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5nUmVjdCA9IHNuYXBwZWRJ
bnRSZWN0KHJlbmRlckJveC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Njcm9sbGJhcigpKTsKIAot
ICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHJlbmRlckJveC5zaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIoKS5zdHls
ZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJmbG93Q29udHJvbFJlY3Rz
IHJlc3VsdDsKQEAgLTI3ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6ZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXpl
Q29ybmVyKGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAogewogICAgIGF1dG8gcmVz
aXplclJlY3QgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVyOwotICAgIGF1dG8gcmVz
aXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4
WE1heFlDb3JuZXIoKTsKKyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJlbmRlcmVyKCkuc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJlY3QubWluWE1heFlDb3Ju
ZXIoKSA6IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAgcmV0dXJuIGxvY2FsUG9p
bnQgLSByZXNpemVDb3JuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1MDBlYTBlYjcxMWUwNzk4
NGIzODE0MWQ4N2E2ZDYxZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3OGM5MDAyMTA1MTExMjc3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTIyMzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAgYXV0byYgZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJuIEZsb2F0UG9pbnQoCi0g
ICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIDogMCwKKyAgICAg
ICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGZyYW1l
Vmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAogICAgICAgICBGcmFtZVZp
ZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigp
LCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGRhYjVlYTk4
NGU3MmUxYTVkZmJmYjExNDk4YzdiNzI4ZmI5OWY3YWYuLjgxYzU3OWJlNWU5MDVlYTlmMjM2NDg5
ZDBmNDIwNDgzMTU2MTkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTIwNywyMSArMjA3LDIxIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lzdGVtIHN1cHBv
cnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNlcnRhaW4gdmVy
c2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQorICAgIGlmICghRGVwcmVj
YXRlZEdsb2JhbFNldHRpbmdzOjptb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCiAgICAgc3dpdGNoIChzZXR0aW5ncygpLnVzZXJJbnRlcmZhY2VE
aXJlY3Rpb25Qb2xpY3koKSkgewogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eTo6Q29udGVudDoKLSAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5OjpTeXN0ZW06CiAgICAgICAgIHJldHVybiBzZXR0aW5ncygpLnN5c3RlbUxheW91
dERpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTDsKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpOwotI2VuZGlmCisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogfQogCiBPcHRpb25hbDxMYXllclJlcGFpbnRS
ZWN0cz4gUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6bGF5ZXJSZXBhaW50UmVjdHMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgK
aW5kZXggOWM5NjZmN2ViMmYwMjdkNjMwZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5
OWEyZDc4YTUzZGRkNWM2YWYzZDdmZjhkYzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50
UmVjdHM+IGxheWVyUmVwYWludFJlY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1
MDJhYjk1ZWI4NDk5ZTBhZDY4NTIxNDlmMDFmMTlhM2MxYTQxLi44YjI2ZmI3Njg5ZjQ1Y2ViZDA1
NWY5NTY4NDE3ZTZlMzNmZTIxMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAg
dm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQog
ICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0K
IAotYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
QEAgLTY1NCw3ICs2NTQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBo
YXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIo
bV9oQmFyLmdldCgpKTsKICAgICBib29sIGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIg
PSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0g
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6
ZXIgPSByZW5kZXJlci5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29s
IHNjcm9sbGJhcnNBdm9pZENvcm5lciA9IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxi
YXIgJiYgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYm
IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0
aWNhbFNjcm9sbGJhcikpOwogCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVy
U2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwog
CiAgICAgaW50IHNjcm9sbGFibGVMZWZ0T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVm
dCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9J
bnQob3ZlcmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdp
bihJbnRQb2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxv
dykpOwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
Ojp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0
aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKGhhc1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVy
dGljYWxTY3JvbGxCYXJDaGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYg
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0
ZVNjcm9sbE9yaWdpbigpOwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5
ZXIoKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAg
ICAgIGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9
CiAKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7
CisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAg
ICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5l
clJlY3QueCgpICsgY29ybmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3Qu
eSgpICsgcmVzaXplckNvcm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWln
aHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAt
MTUwOSw3ICsxNTA5LDcgQEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0
UmVzaXplckluRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMg
PSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21l
bnQgPSBbJl0oY29uc3QgSW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJl
c2l6ZXJSZWN0KSB7Ci0gICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkpIHsKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSkgewogICAgICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJv
cmRlckJveFJlY3QubWluWE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVy
KCk7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZ
Q29ybmVyKCkgLSBvZmZzZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVj
dC5oZWlnaHQoKSB9LCByZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3
ICsxNTcwLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFs
U2Nyb2xsYmFyKG5lZWRzSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxT
Y3JvbGxiYXIobmVlZHNWZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxT
Y3JvbGxiYXIgIT0gbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9s
bGJhciAmJiBvbGRTdHlsZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVk
c1ZlcnRpY2FsU2Nyb2xsYmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxl
ICYmIGJveC0+c3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0g
b2xkU3R5bGUtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAg
IGNvbXB1dGVTY3JvbGxPcmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZs
b3c6c2Nyb2xsLCBzY3JvbGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2Fi
bGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmgKaW5kZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZl
OC4uYWU0NzE5OTM3MjNkZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBA
IC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZp
bmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBm
NTcyZGY5Zi4uM2VhN2I3MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3
IEBAIExheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxp
bmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0
ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGlu
dCBpbmRleCkKIHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJv
cmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5v
Y2N1cGllZFdpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkg
KyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1f
aW5kZXhPZmZzZXQpOwogICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgp
LCBpdGVtSGVpZ2h0KCkpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6
cGFpbnRTY3JvbGxiYXIoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWluCiAgICAgaWYgKCFtX3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQg
bGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1f
dkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0
IHRvcCA9IHBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lk
dGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWln
aHQoKSAtIChib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBA
QCBib29sIFJlbmRlckxpc3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVz
dWx0JiByZXN1bHQsIGNvbnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNo
b3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0g
Ym9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNj
dW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0
aCgpKTsKICAgICBMYXlvdXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJU
b3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91
dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRv
bSgpOwpAQCAtNDkxLDkgKzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9m
ZnNldChjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAg
IGludCBzY3JvbGxiYXJXaWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAg
aWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0
LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGgg
fHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdo
dCgpKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChv
ZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJX
aWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBi
b3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAg
IHJldHVybiAtMTsKIAogICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9y
ZGVyVG9wKCkgLSBwYWRkaW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsK
QEAgLTgwMCwxNCArODAwLDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25z
dAogdm9pZCBSZW5kZXJMaXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIm
IHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJl
Y3QgPSByZWN0OwotICAgIHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3Zl
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsK
ICAgICByZXBhaW50UmVjdGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxp
c3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxi
YXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAg
ICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0g
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgp
IDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQg
c2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJv
cmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3Jv
bGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCku
Y29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYs
NyArODE2LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRv
Q29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJv
eDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJl
Y3QgcmVjdCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9S
ZW5kZXJlcih0aGlzLCBwYXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9s
bGJhckxlZnQgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJM
ZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAg
IGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJh
ckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3
IEBAIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2lu
dCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lk
dGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xs
YmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxl
ZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAg
aW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFy
TGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZl
cnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4
MzQsNyBAQCBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29u
dGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6
Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Ny
b2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9p
bnQgcG9pbnQgPSB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1Rv
UmVuZGVyZXIodGhpcywgcGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDog
d2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Ny
b2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAg
ICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9s
bGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYw
Zjk5MjZjNGYyMTdlMTM0MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFk
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcg
KzE3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxU
b1JldmVhbFNlbGVjdGlvbigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93Ojpz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBS
ZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQog
CiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNl
bGVjdGlvbkFmdGVyTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CmluZGV4IDRjM2ZmNGZhZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3
NWY1MWZmMmE2MzE2NGJhYTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJl
cGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAog
ICAgICAgICAvLyBhbmQgdGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhp
cyB0cmFuc2Zvcm1hdGlvbiBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3Jv
bGxiYXIgKGlmIG9uZSBleGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRo
aXMtPmZyYW1lVmlldygpOwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIo
KSkKKyAgICAgICAgaWYgKGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgJiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1
c3RlZFJlY3QubW92ZShMYXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5v
Y2N1cGllZFdpZHRoKCksIDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3Rhbmds
ZShhZGp1c3RlZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1
OC4uMDliODNjOGUzMDM5ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1
ODEsOSBAQCBmbG9hdCBSZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fYmFja2dyb3VuZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVy
U3R5bGU6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAor
Ym9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
JiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5n
TW9kZTo6UmlnaHRUb0xlZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxl
OjpwYWludFR5cGVzRm9yUGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkx
M2Q1MWQ4ZjBiYTQxNWI0NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVm
OTc5MjdhODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtODI5LDcgKzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJ
TElOR19XT1JEKQogICAgIFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVy
biBUcmFpbGluZ1dvcmQ6OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2Rj
ZWYwZjEzZWY0YWVjYThjMi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXpl
IHZpc2libGVTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250
ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFi
bGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBi
b29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JS
dWJiZXJiYW5kYWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Nj
cm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
LmgKaW5kZXggYjVlNmU1MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVk
Y2QwODU3MmUwYjY1OTk4NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0Nv
bnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9p
bnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNj
cm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3Jt
YW5jZVRlc3RpbmcoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5h
bDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNkZmE1YTI4NDdlNjNl
MWMwOWQ2NDgwOTQyNWU5NGJkMTQxZjVmOC4uNTg0ZTNmNWIwNmJkZWU1OTBkMzg1OTAxNzlmM2I1
MWJlMjVmOWE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA0LTEyICBDYW1lcm9uIE1j
Q29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Ny
b2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ct
c2FtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxi
YXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFy
cy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9s
bGJhci1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMS0wNC0xMiAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzU3OTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjOWQwZTc3YjMzZWU4
NTZmZGYxNjAyNGI5MWZiODRlMzU5MWU4NGRlLi5hMDU3NjM1YWU1ZWFmN2Q5MGM4YjQyYzEzOTIw
MDgzNjU4OWIwZjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wNC0xMiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5k
IGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1z
bmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQ6CisKIDIw
MjEtMDQtMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc1NzkzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ODZhYjZkM2Y2ZDMzOWNjZjM0N2JmZjFmMDI3MDQ0YTI1NzAwNjNmMi4uYTBiNTcyNDVmZTc3YWU2
NmFiNjc2Yzk0NDQwNDlhZDRjYThkMDY1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODcwLDYg
KzQ4NzAsMTAgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vcXVvdGUtc2NvcGluZy0wMDIuaHRtbCBbIEltYWdlT24KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3BpbmctMDAzLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL3F1b3RlLXNjb3BpbmctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBU
ZXN0cyB0aGF0IGZhaWwgYmVjYXVzZSB0aGV5IGFzc3VtZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBp
biBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAgZWxlbWVudHMgd2lsbCBiZSBvbiB0aGUgcmln
aHQtaGFuZCBzaWRlCit3ZWJraXQub3JnL2IvMjI0MzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3NpemluZy1vcnRob2ctdnJsLWluLWh0Yi0w
MTMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI0MzU3IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvY3Nzb20tZ2V0Qm91bmRpbmdD
bGllbnRSZWN0LXZlcnRpY2FsLXJsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogIyBAY291
bnRlci1zdHlsZSByZWYgdGVzdHMgdGhhdCBjdXJyZW50bHkgZmFpbAogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291
bnRlci1zdHlsZXMtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcm1lbmlhbi9jc3MzLWNv
dW50ZXItc3R5bGVzLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCmluZGV4
IDYyNTQ3MmY0N2YxZGZkMTYxMmY1YmU0OGIxZjFjOTQ3YmI4MzVlYTAuLjBmNmFlODVhYzY2MGJh
ODFkZDI1YWM4NTFiOGUxM2RjNmM2MGU0OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCkBAIC0yOCw2ICsyOCwxMCBA
QAogcCB7CiAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKIH0KKworLnRvcFJpZ2h0IHsKKyAgICBk
aXJlY3Rpb246IHJ0bDsgIC8qIHBsYWNlIHNjcm9sbGJhcnMgb24gdGhlIExIUyAqLworfQogPC9z
dHlsZT4KIDwvaGVhZD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAppbmRleCAw
MDE1NTg5ZDc0ZDliMTk1NzIxNWUyMzBkZDA3MmYwODRlOTUwYmFlLi44MmE0ZmVhYWEyMzM1ODM5
Mjg5OTJjNzZmOGNkZTIxMmVjODY5ZDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0IDI5IDI5IDEwMCAxMDApCisg
IChyZWN0IDQ0IDI5IDEwMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3
N2FiZmJjZDc4MTE3ZTg5ZWZjMzEzNjdmM2MzZmRhYWQ3NmI4NDFmLi5iNzU5MTQxNjRkODE4YzM4
M2JkMWUzMjM0NTQyOTEzNzQ4NmIzNDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjEgMTAwIDEwMCkKKyAgKHJl
Y3QgNDQgMjEgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwt
cG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MTZiNDcyN2EwYjhi
YWVlOWE2NDUxYWI3OGI1ZWUzZmNmNTk0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWlj
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93
OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBi
b3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjogbHRyOyBvdmVyZmxvdzogc2Nyb2xs
OyBtYXJnaW4tdG9wOiAxZW07Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6
IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1w
b3NpdGlvbi1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNj
cm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYwZjcw
NmM5NjNmNjBjMWRkZDcyYjhkZTI2ODg4MWExMmU2MmQzYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9u
LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9
b25lIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC10Yjsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTky
cHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rp
dj4KKzxkaXYgaWQ9dHdvIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdpbi10b3A6IDFlbTsi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4
IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Citkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKK29uZS5zdHlsZS53cml0aW5nTW9kZSA9ICJ2ZXJ0aWNhbC1ybCI7Cit0d28uc3R5
bGUud3JpdGluZ01vZGUgPSAiaG9yaXpvbnRhbC10YiI7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0
aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9s
bGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4OGI2Y2E0
OWIyMWU0MjIxNTA5ODA1NmFhNWIzMzllMzE0OGU2NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjogcnRsOyBvdmVyZmxvdzog
c2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9y
ZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhMGJmMDgzMjkwYzNlNTU1ZDE1ODYyMjg0N2NjYTRh
Nzk2ZGYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Yt
cmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3Jp
dGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxl
PSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+
PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Zl
cnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJjMTcwYjgwZGQwYjhjYTk3ZmY1NWQxZGJkZTFiNDBmZmE2NDdlYjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoZXNlIGZvdXIgY29udGFp
bmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuCisKKwor
CisKK1RoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJh
ciBvbiB0aGUgbGVmdC4KKworCisKKworIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmZhMzlkYTY4ZTI0ZjM3ODFjOWYzN2EyYWYwZTFkMTRiZjU4NjZjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1w
b3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgor
c2VjdGlvbiA+IGRpdiwgc2VjdGlvbiA+IGRpdiB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgaGVpZ2h0OiAxMDBweDsKKyAgd2lkdGg6IDEwMHB4OworICBvdXRsaW5lOiAxcHggc29saWQg
YmxhY2s7CisgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgb3ZlcmZsb3cteTogc2Nyb2xsOworICBt
YXJnaW46IDEwcHggMTBweCAwIDA7Cit9CisKKy5zcXVhcmUgeworICB3aWR0aDogMjBweDsKKyAg
aGVpZ2h0OiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cit9CisKKy5sdHIgeyBk
aXJlY3Rpb246IGx0cjsgfQorLnJ0bCB7IGRpcmVjdGlvbjogcnRsOyB9CisuaC10YiB7IHdyaXRp
bmctbW9kZTogaG9yaXpvbnRhbC10YjsgfQorLmgtYnQgeyAtd2Via2l0LXdyaXRpbmctbW9kZTog
aG9yaXpvbnRhbC1idDsgfQorLnYtcmwgeyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyB9Cisu
di1sciB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0KKzwvc3R5bGU+Cis8c2VjdGlvbiBj
bGFzcz0icmlnaHQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2
ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJpZ2h0LjwvcD4KKyAgPGRpdiBjbGFzcz0iaC10YiBs
dHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+Cisg
IDxkaXYgY2xhc3M9ImgtYnQgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9
IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIGx0ciI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1sciBy
dGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+Cis8
L3NlY3Rpb24+CisKKzxzZWN0aW9uIGNsYXNzPSJsZWZ0Ij4KKyAgPHA+VGhlc2UgZm91ciBjb250
YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0LjwvcD4K
KyAgPGRpdiBjbGFzcz0iaC10YiBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3Rl
ZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJoLWJ0IHJ0bCI+PGRpdiBjbGFzcz0i
c3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYt
cmwgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rp
dj4KKyAgPGRpdiBjbGFzcz0idi1ybCBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBl
Y3RlZD0iODAiPjwvZGl2PjwvZGl2PgorPC9zZWN0aW9uPgorCis8cHJlIGlkPSJyZXN1bHRzIj5G
QUlMPC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKK30KKworbGV0IHRleHQgPSAiIjsKK2ZvciAo
bGV0IHNxdWFyZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3F1YXJlIikpIHsKKyAg
ICBsZXQgYWN0dWFsID0gc3F1YXJlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggLSBzcXVhcmUu
cGFyZW50Tm9kZS5vZmZzZXRMZWZ0OworICAgIGxldCBleHBlY3RlZCA9IHNxdWFyZS5nZXRBdHRy
aWJ1dGUoImRhdGEtZXhwZWN0ZWQiKTsKKyAgICBpZiAoYWN0dWFsICE9IGV4cGVjdGVkKSB7Cisg
ICAgICAgIHRleHQgKz0gYFBvc2l0aW9uIG9mIHNxdWFyZSBpbiAnJHtzcXVhcmUucGFyZW50Tm9k
ZS5jbGFzc05hbWV9JyAtIGV4cGVjdGVkICR7ZXhwZWN0ZWR9LCBnb3QgJHthY3R1YWx9XG5gOwor
ICAgIH0KK30KK3Jlc3VsdHMudGV4dENvbnRlbnQgPSB0ZXh0IHx8ICJQQVNTIjsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwt
c25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKaW5kZXggNjhkOGVkN2M0MzA3NjM2
M2VmMjM1M2NmZWFkMjE0YTY3NGVkNTJhYi4uZTAyNDRmYzI0ZDFiMmIyZGMwNTc5NTQ3OTE2ZWYz
NGRiMTNiY2NjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CkBAIC0xLDEw
ICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRp
bmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQKIEZB
SUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWdu
cyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAzMDAKLUZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9y
IHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0
YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVj
dGVkIDMwMCBidXQgZ290IDE4MAogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwt
dGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1
dCBnb3QgMAogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9k
ZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKLUZBSUwg
U25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xs
LXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBj
b3JyZWN0bHkgb24geCBleHBlY3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBjb3Jy
ZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBz
dGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBl
Y3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rp
b246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3Qg
LTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3
aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFs
czogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDMxNQorRkFJTCBT
bmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2Rp
cmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1l
bnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBidXQg
Z290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsTGVmdFRvcC1leHBlY3RlZC50eHQKaW5kZXggNWJkM2JjNzFkZDAzYWNlMmNlYzdhMzQ0MGE3
YmRjNmRkNDI0NjZiOC4uNTEyMTZiYjlhOTkwYTA3NTZhZmViYjBkNGEwZGIzYjBjYTU2ODFmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExl
ZnRUb3AtZXhwZWN0ZWQudHh0CkBAIC0xMSw2ICsxMSw2IEBAIFBBU1Mgd3JpdGluZy1tb2RlOmhv
cml6b250YWwtdGI7IGRpcmVjdGlvbjpsdHIKIFBBU1Mgd3JpdGluZy1tb2RlOmhvcml6b250YWwt
dGI7IGRpcmVjdGlvbjpydGwKIFBBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rp
b246bHRyCiBQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjsgZGlyZWN0aW9uOnJ0bAotRkFJ
TCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpsdHIgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0x
NTAKLUZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246cnRsIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBleHBlY3RlZCAtMTY1ICsvLSAwLjUgYnV0
IGdvdCAtMTUwCitQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0cgor
UEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425839</attachid>
            <date>2021-04-12 23:21:34 -0700</date>
            <delta_ts>2021-04-13 16:47:25 -0700</delta_ts>
            <desc>Squashed patch with dependencies for EWS</desc>
            <filename>bug-224224-20210413162132.patch</filename>
            <type>text/plain</type>
            <size>60866</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uYWE1MzkyMWNiZDY1ZjlmYmVjY2ExMDAwNjY0YzNi
ZWE0MjczOWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNyBAQAorMjAyMS0wNC0xMiAgQ2Ft
ZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZlcnRp
Y2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcg
bW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0czogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHlu
YW1pYy5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMt
aW5pdGlhbC1wb3NpdGlvbi5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Njcm9sbGluZy92ZXJ0
aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbAorCisgICAgICAgIFdlIGN1cnJlbnRseSBvbmx5
IGNvbnNpZGVyIG1vdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciB0byB0aGUgbGVmdCBmb3IKKyAg
ICAgICAgYHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIsYnR9OyBkaXJlY3Rpb246IHJ0bGAg
Y29udGFpbmVycy4gQnV0CisgICAgICAgIGlkZWFsbHkgd2Ugc2hvdWxkIGFsd2F5cyBwbGFjZSB0
aGUgdmVydGljYWwgc2Nyb2xsYmFyIGF0IHRoZSBlbmQgZWRnZQorICAgICAgICBvZiB0aGUgY29u
dGFpbmVyICh3aGV0aGVyIHRoYXQncyB0aGUgaW5saW5lLWVuZCBlZGdlLCB3aGVuIHVzaW5nIGEK
KyAgICAgICAgaG9yaXpvbnRhbCB3cml0aW5nIG1vZGUsIG9yIHRoZSBibG9jay1lbmQgZWRnZSwg
d2hlbiB1c2luZyBhIHZlcnRpY2FsCisgICAgICAgIHdyaXRpbmcgbW9kZSkuCisKKyAgICAgICAg
U29tZSBmdW5jdGlvbnMgY2FsbGluZyB0aGUgZXhpc3Rpbmcgc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdAorICAgICAgICBpbnN0ZWFkIHJlYWxseSBjYXJlIGFib3V0IHdo
ZXRoZXIgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciBpcyBvbiB0aGUKKyAgICAgICAgbGVmdCwgbm90
IHdoZXRoZXIgdGhlIGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXIgaXMgb24gdGhlIGxlZnQgKHNp
bmNlCisgICAgICAgIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzLCB0aGUgYmxvY2sgZGlyZWN0
aW9uIHNjcm9sbGJhciBpcyB0aGUKKyAgICAgICAgaG9yaXpvbnRhbCBvbmUgb24gdGhlIGJvdHRv
bSkuIFNvIHdlIHJlbmFtZSB0aGlzIHRvCisgICAgICAgIHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQsIG1ha2UgaXQgcmV0dXJuIHRydWUgZm9yCisgICAgICAgIGB3cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsYCwgYW5kIGFkanVzdCBjYWxsZXJzIHRoYXQgcmVhbGx5IGRvIGNhcmUK
KyAgICAgICAgb25seSBhYm91dCBibG9jayBkaXJlY3Rpb24gc2Nyb2xsYmFycyB0byBhZGRpdGlv
bmFsbHkgY2hlY2sgdGhlaXIKKyAgICAgICAgd3JpdGluZyBtb2RlLgorCisgICAgICAgICogcGFn
ZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxl
Y3RDdXJzb3IpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9z
aXRpb25SZWxhdGl2ZVRvVmlld09yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnNjcm9sbENvcm5lclJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
bG9jYXRpb25PZkNvbnRlbnRzIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhclRoZW1lR3RrOjpwYWludCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OmRpZENyZWF0
ZVNjcm9sbGVySW1wKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2FsTGVmdFBvc2l0aW9uRm9yQ2hp
bGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94OjpwYWRkaW5nQm94UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0IGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbnN0cmFpbmluZ1JlY3RGb3JTdGlja3lQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpyZXNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
Om92ZXJmbG93Q29udHJvbHNSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyIGNvbnN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllck1vZGVsT2JqZWN0OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxPcmlnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJh
cnNBZnRlclN0eWxlQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWlu
aW5nVmlldyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKKzIwMjEt
MDQtMTIgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBB
bGxvdyBSVEwgbW9jayBzY3JvbGxiYXJzIG9uIGlPUy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCBjb25zdCk6CisKIDIwMjEtMDQtMTIgIERvbiBP
bG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBSZW1vdmUgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzNmEzYzI0OWZkOGJmOWNhZGQ4
OTc0M2M2MWFlNzgzYzkwZTU5OTcuLjdmZTUzMGZlMGQ5NWM2ODA5ZDYyZTE0NzcxYjU0ZTBiM2M0
ZmEwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTIgIENhbWVyb24gTWND
b3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3Jv
bGxiYXJzIGF0IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4uaDoKKwogMjAyMS0wNC0xMiAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIHRoZSBXZWJBdXRobiBjb21wYXRpYmxlIG1v
ZGUgdG8gYWx3YXlzIHNob3cgVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCAyNzU5MDhkZDFkYjY2MzNlYTc2NWJkZWY3ZTNlNTY5MzBhZWI0NmQzLi5jNGViZTI2MDViYzE2
OTVkNTBkZTVlMDM2ZDc0NTRhOWFlZTI1MjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBPcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxl
cjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaAogICAg
ICAgICAgICAgYXV0byYgbGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJlbmRlckxheWVyTW9kZWxP
YmplY3Q+KCpyZW5kZXJlcik7CiAgICAgICAgICAgICBpblJlc2l6ZXIgPSBsYXllclJlbmRlcmVy
LmxheWVyKCktPmlzUG9pbnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZEludFBvaW50KHJlc3VsdC5s
b2NhbFBvaW50KCkpKTsKICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJh
ck9uTGVmdCgpID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0aEVhc3RSZXNpemVDdXJz
b3IoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRo
RWFzdFJlc2l6ZUN1cnNvcigpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKChlZGl0YWJsZSB8
fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUtPmNhblN0YXJ0U2VsZWN0
aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFyKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3MTFmODRiZTExMjQ5NDdj
ODY1OS4uMDIxN2QzNDJiZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdjNTE1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAgSW50U2l6ZSBGcmFtZVZp
ZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdAogICAgIHJldHVybiB7
ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0IH07CiB9CiAKLWJvb2wg
RnJhbWVWaWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRlclZpZXcoKS0+c2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVybiByZW5kZXJW
aWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZy
YW1lVmlldyYgdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDA2YWUzYTQ3MTEwYzU3
NDcwMzMwZmY5NTljZTNjOGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2FjNDNmYTQzMWY1ZjllYzg2
N2U5OTIxMmUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjU1LDcgKzY1NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lkIGhpZGUoKSBmaW5hbDsK
IAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA4ZTZiM2FhYjU5
OGEzNzRjNzEzMjQzNmY4YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIxNjkzMGVlZmFhZWJlMDNl
NTAyZjEwNTUyMDM0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApA
QCAtNDIyLDcgKzQyMiw3IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmFkanVzdFNjcm9s
bFBvc2l0aW9uV2l0aGluUmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24mCiBTY3JvbGxQb3NpdGlv
biBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4o
KSBjb25zdAogewogICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0gSW50U2l6ZSgKLSAgICAg
ICAgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGlj
YWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAor
ICAgICAgICBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNh
bFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAsCiAg
ICAgICAgIGhlYWRlckhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KFRvcENvbnRlbnRJbnNldFR5
cGU6OldlYkNvcmVPclBsYXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAKQEAgLTczMiw3ICs3MzIs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgU2Nyb2xsUG9zaXRp
b24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CiAg
ICAgICAgIGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwogICAgICAgICBJbnRSZWN0
IG9sZFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgIElu
dFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdp
ZHRoKCkgOiAwLAorICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9s
bGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSAobV92ZXJ0
aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lkdGgoKSA6IDAp
LAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSk7CkBAIC03NTEs
NyArNzUxLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxiYXJzKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIp
IHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICAgICAg
SW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKLSAgICAg
ICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAg
ICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAg
ICAgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKSAtIChtX2hv
cml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXItPm9jY3VwaWVkSGVpZ2h0
KCkgOiAwKSk7CkBAIC0xMTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3QgU2Nyb2xsVmlldzo6c2Ny
b2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciA9
IGhlaWdodCgpIC0gdG9wQ29udGVudEluc2V0KCk7CiAKICAgICBpZiAobV9ob3Jpem9udGFsU2Ny
b2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCkgPiAwKSB7
Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgp
LAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAg
ICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAg
ICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAg
aWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92
ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5p
dGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAw
IDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgIGNvcm5l
clJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
PyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAg
ICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRlbnRJbnNldCgpLAogICAg
ICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdo
dFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CkBA
IC0xNTM4LDcgKzE1MzgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxlQW5kUmVuZGVyVHJlZURp
ZENoYW5nZSgpCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9mQ29udGVudHMoKSBjb25z
dAogewogICAgIEludFBvaW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0gICAgaWYgKHNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFy
KQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgbV92ZXJ0
aWNhbFNjcm9sbGJhcikKICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0aWNhbFNjcm9sbGJhci0+
b2NjdXBpZWRXaWR0aCgpLCAwKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNkYjdmNjc5Mzk4YTdjODc3
MzEyZWQ0OTdjMTZmZThkOS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3N2M4ZmQ1MGI3MzhhZjlh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0zNDIsNyAr
MzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9ja1Njcm9sbEFuaW1hdG9y
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbG9nTW9ja1Njcm9s
bEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07CiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkg
Y29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdhaXRh
L1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdh
aXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1NGJhMWUyYjdjMDYxZTlj
ZWI0NTlmNGNjNTUwZWFlNWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNlZTk3OTM3ZDljMzhiY2Ez
ZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxi
YXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fkd2FpdGEv
U2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgU2Nyb2xs
YmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3NDb250
ZXh0JiBncmFwaGljCiAKICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJlY3Q7CiAgICAgICAgIGlm
IChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xs
YWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAg
ICAgICAgICAgZnJhbWUubW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRl
clNpemUsIDApOwogICAgICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92ZXJlZFNjcm9sbGJhckJv
cmRlclNpemUpOwogICAgICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAsNyBAQCBib29sIFNjcm9s
bGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29u
dGV4dCYgZ3JhcGhpYwogICAgIEludFJlY3QgdGh1bWIgPSByZWN0OwogICAgIGlmIChzY3JvbGxi
YXIuaG92ZXJlZFBhcnQoKSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkpIHsK
ICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXpl
LCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJsYXlUaHVtYlNpemUgKyB0
aHVtYkJvcmRlclNpemUpICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsg
dGh1bWJCb3JkZXJTaXplKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29sIFNjcm9sbGJhclRoZW1l
QWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpYwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xs
YmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5t
b3ZlKHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSAt
IGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7
CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJT
aXplIC0gKHNjcm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMiksIHRodW1iUG9zICsgdGh1
bWJCb3JkZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9T
Y3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xs
YmFyVGhlbWVHdGsuY3BwCmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcxNjA4MTU3ZjNlZmVjZDY4
NGE3YjAuLjI4OTZjN2YzYjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThmYzIxM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcApAQCAt
MTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclBhcnRTdGF0ZUZs
YWdzKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBzdGF0aWMgUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihTY3JvbGxiYXImIHNjcm9s
bGJhciwgR3RrU3RhdGVGbGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAgICBpZiAoc2Nyb2xsYmFy
Lm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIHJldHVybiBzY3JvbGxi
YXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6
OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1lU2Nyb2xsYmFyOjpUeXBl
OjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJldHVybiBzY3JvbGxiYXJT
dGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5
cGU6OlZlcnRpY2FsU2Nyb2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZTo6
VmVydGljYWxTY3JvbGxJbmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0zODAsNyArMzgwLDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRoZSBpbmRpY2F0b3Igd2Ug
bmVlZCB0byBhZGp1c3QgdGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFsIHNpemUgaW4gaW5kaWNh
dG9yIG1vZGUuCiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Ny
b2xsYmFyKSB7CiAgICAgICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJlZmVycmVkU2l6ZS53aWR0
aCgpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmICgh
c2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpKQogICAgICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3ZlKHN0ZDo6YWJzKHJlY3Qu
d2lkdGgoKSAtIHByZWZlcnJlZFNpemUud2lkdGgoKSksIDApOwogICAgICAgICAgICAgY29udGVu
dHNSZWN0LnNldFdpZHRoKHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCBi
ZDA2MTVmMjJkMzU4NjIwNGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41Mzk2MWE3YjcyMDQwMWY3
MmUyMjQ1Y2JiNGUyMWI3Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBTY3Jv
bGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xsYmFyJiBzY3JvbGxiYXIp
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNjcm9sbGVySW1wID0gcGFp
bnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChzY3JvbGxlckltcCk7Ci0g
ICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5z
Y3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Nyb2xsZXJJbXAudXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERp
cmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRv
UmlnaHQ7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5kZXggN2Q1N2RhYTljZGZh
ODFjNGU1ZDc1N2E2Y2I2NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1MmVkZjMzMDE5ZWExNjlj
YjJiMTM2MWJmNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBjb250ZW50c1Np
emUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGZvcmNlVXBkYXRl
U2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29s
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkg
dGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4KICAgICB2
b2lkIHNjcm9sbFRvKGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKaW5kZXggYmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZkNWYzZmY0MzQ0ZGMwYS4u
MjYwNmQ1MmU3NjE4ZmQ2OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBMYXlvdXRV
bml0IFJlbmRlckJsb2NrOjp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QKIExheW91dFVuaXQgUmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRh
aW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNl
dCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkK
ICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwog
ICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybiBsb2dpY2FsTGVmdE9mZnNldDsKQEAg
LTE5MzQsNyArMTkzNCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJhCiBMYXlvdXRVbml0IFJl
bmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29u
dGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodE9m
ZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSAr
IHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgIGlmIChzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSkKICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgo
KTsKICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAg
ICAgaWYgKCFmcmFnbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKaW5kZXggMjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3ZDcxNzFjYTZiNTUzYy4u
MzZjMTkxZDA1YTI4ODMyNjk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4Myw3ICs4ODMsNyBAQCBM
YXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9yU2VsZkNvbGxhcHNpbmdC
bG9jaygpCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9naWNhbExlZnRQb3NpdGlv
bkZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVsdGFNb2RlIGFwcGx5RGVs
dGEpCiB7CiAgICAgTGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9yZGVyU3RhcnQoKSArIHBh
ZGRpbmdTdGFydCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAm
JiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBzdGFydFBvc2l0aW9uICs9IChz
dHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkgKiB2ZXJ0aWNhbFNjcm9s
bGJhcldpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA9
IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDU3NmVlNWRjYzlh
M2U2ZGY3ZTUxYmU5ZTJiMjYyZjJiMjAwNzMyYjQuLjhmY2JiNTllNmViYmNiMTBjYTM1NjZkMjlk
ZTFiZmVkNmM2ZWJhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBA
IC03MjIsNyArNzIyLDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpyb3VuZGVkQm9yZGVyQm94
UmVjdCgpIGNvbnN0CiBMYXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGluZ0JveFJlY3QoKSBjb25z
dAogewogICAgIGF1dG8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRoaXMtPnZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNjcm9sbGJhciA9IHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFy
V2lkdGggOiAwOworICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xsYmFyID0gc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA6IDA7
CiAKICAgICByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBvZmZzZXRGb3JTY3JvbGxi
YXIsIGJvcmRlclRvcCgpLAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVyTGVmdCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYsNyArNzM2LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QKIAogTGF5b3V0UG9pbnQg
UmVuZGVyQm94Ojpjb250ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewotICAgIExheW91dFVuaXQg
c2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOworICAgIExheW91dFVuaXQgc2Nyb2xs
YmFyU3BhY2UgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNh
bFNjcm9sbGJhcldpZHRoKCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRlckxlZnQoKSArIHBhZGRp
bmdMZWZ0KCkgKyBzY3JvbGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkgfTsK
IH0KIApAQCAtMTk2NCw3ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6Om92ZXJmbG93
Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJGcmFnbWUKIAogICAg
IC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhlbS4KICAgICBpZiAoYXV0
byogc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6
IG51bGxwdHIpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSkKICAgICAgICAgICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0
KHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSksIHNjcm9s
bGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2YW5jeSkpOwogICAgIH0K
QEAgLTM3NTgsNyArMzc1OCw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21wdXRlUG9zaXRpb25lZExv
Z2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1CiAgICAgY29tcHV0
ZWRWYWx1ZXMubV9leHRlbnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwogICAgIGlmIChpczxSZW5k
ZXJCb3g+KGNvbnRhaW5lckJsb2NrKSkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQm94ID0g
ZG93bmNhc3Q8UmVuZGVyQm94Pihjb250YWluZXJCbG9jayk7Ci0gICAgICAgIGlmIChjb250YWlu
aW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAg
ICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
ICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBjb21wdXRlZFZhbHVl
cy5tX3Bvc2l0aW9uICs9IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwog
ICAgIH0KICAgICAKQEAgLTQ5NzksNyArNDk3OSw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94Ojpm
bGlwcGVkQ2xpZW50Qm94UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldyaXRpbmdNb2RlKHJlY3Qp
OwogICAgIC8vIFN1YnRyYWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9sbGJhcnMuIFRoZXkgYXJl
IGF0IHRoZWlyIHBoeXNpY2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRlCiAgICAgLy8gc3lzdGVt
LCBzbyBvcmRlciBpcyBpbXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwgdGhlbiBzdWJ0cmFjdCBz
Y3JvbGxiYXJzLgotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1vdmUodmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpLCAwKTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRpY2FsU2Nyb2xsYmFyV2lk
dGgoKSwgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpKTsKICAgICByZXR1cm4gcmVjdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmlu
ZGV4IGI0NjNmYzlkY2IyMjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIzZTkuLmZhYTc2MDkxZDA0
ZDQ1NWU4MmIzMzMyMjhhZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2LDcgKzU1Niw3IEBAIEZs
b2F0UmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBv
c2l0aW9uKCkgY29uc3QKICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9IEZsb2F0UG9pbnQoKSAr
IHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAgICBmbG9hdCBzY3JvbGxi
YXJPZmZzZXQgPSAwOwotICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBpbmdCb3guaGFzTGF5ZXIo
KSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlmIChlbmNsb3NpbmdDbGlw
cGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKICAgICAgICAgICAgIHNj
cm9sbGJhck9mZnNldCA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKEln
bm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgICAgICBjb25zdHJhaW5pbmdSZWN0LnNl
dExvY2F0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNjcm9sbGJhck9mZnNldCwg
c2Nyb2xsT2Zmc2V0LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKaW5kZXggN2E1OTU4YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEzN2I0MjMxMS4uNTY5NTYx
YmM3NGQzZDdjMGQzYjUxZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3Qs
IGJvb2wgaW5zaWQKICAgICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2UgdGhlIHJlY3RhbmdsZSBy
ZWxhdGl2ZSB0byB0aGUgc2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBsb2NhbEV4cG9zZVJlY3Qu
bW92ZUJ5KC1MYXlvdXRQb2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94LT5ib3JkZXJUb3AoKSkp
OwogCi0gICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkgewotICAgICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjogcnRsOyB3cml0aW5nLW1v
ZGU6IGhvcml6b250YWwtdGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRl
LiBUaGUgdmlzaWJsZSByZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMgZnJvbSB0aGUgcmlnaHQg
c2lkZSBvZiBzY3JvbGwgYmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9zZVJlY3Qgc2hvdWxkIHN0
YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9vLgorICAgICAgICBpZiAoYm94LT5zaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgICAgIC8vIEZvciBgZGly
ZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIsYnR9YCBhbmQgYHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmxgCisgICAgICAgICAgICAvLyBib3hlcywgdGhlIHNjcm9sbCBi
YXIgaXMgb24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBzdGFydHMgZnJvbSB0aGUg
cmlnaHQgc2lkZQorICAgICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9m
IGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28u
CiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91dFBvaW50KC1zY3JvbGxh
YmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAgICAgICAgIH0KICAgICAg
ICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gtPmNsaWVudFdpZHRoKCks
IGJveC0+Y2xpZW50SGVpZ2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0LCBjb25zdCBMYXlvdXRT
aXplJiBvbGRPZmYKICAgICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKG1pbmlt
dW1TaXplKTsKICAgICAKICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xkT2Zmc2V0ID0gTGF5b3V0
U2l6ZShvbGRPZmZzZXQud2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9mZnNldC5oZWlnaHQoKSAv
IHpvb21GYWN0b3IpOwotICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0LnNldFdpZHRoKC1uZXdP
ZmZzZXQud2lkdGgoKSk7CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0LnNldFdpZHRoKC1hZGp1
c3RlZE9sZE9mZnNldC53aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcgKzI3MzQsNyBAQCBSZW5k
ZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6Om92ZXJmbG93Q29udHJv
bHNSZWN0cygpIGNvbnN0CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5zaWRlIHRoZSBib3JkZXIg
Ym94LgogICAgIGF1dG8gb3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5nUmVjdCA9IHNuYXBwZWRJ
bnRSZWN0KHJlbmRlckJveC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Njcm9sbGJhcigpKTsKIAot
ICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHJlbmRlckJveC5zaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIoKS5zdHls
ZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJmbG93Q29udHJvbFJlY3Rz
IHJlc3VsdDsKQEAgLTI3ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5kZXJMYXllcjo6ZGVidWdE
ZXNjcmlwdGlvbigpIGNvbnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpvZmZzZXRGcm9tUmVzaXpl
Q29ybmVyKGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAogewogICAgIGF1dG8gcmVz
aXplclJlY3QgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVyOwotICAgIGF1dG8gcmVz
aXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4
WE1heFlDb3JuZXIoKTsKKyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJlbmRlcmVyKCkuc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJlY3QubWluWE1heFlDb3Ju
ZXIoKSA6IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAgcmV0dXJuIGxvY2FsUG9p
bnQgLSByZXNpemVDb3JuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1MDBlYTBlYjcxMWUwNzk4
NGIzODE0MWQ4N2E2ZDYxZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3OGM5MDAyMTA1MTExMjc3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTIyMzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAgYXV0byYgZnJhbWVWaWV3
ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJuIEZsb2F0UG9pbnQoCi0g
ICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIDogMCwKKyAgICAg
ICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGZyYW1l
Vmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAogICAgICAgICBGcmFtZVZp
ZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigp
LCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IGRhYjVlYTk4
NGU3MmUxYTVkZmJmYjExNDk4YzdiNzI4ZmI5OWY3YWYuLjgxYzU3OWJlNWU5MDVlYTlmMjM2NDg5
ZDBmNDIwNDgzMTU2MTkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTIwNywyMSArMjA3LDIxIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lzdGVtIHN1cHBv
cnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNlcnRhaW4gdmVy
c2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICByZXR1cm4gZmFsc2U7Ci0jZWxzZQorICAgIGlmICghRGVwcmVj
YXRlZEdsb2JhbFNldHRpbmdzOjptb2NrU2Nyb2xsYmFyc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCiAgICAgc3dpdGNoIChzZXR0aW5ncygpLnVzZXJJbnRlcmZhY2VE
aXJlY3Rpb25Qb2xpY3koKSkgewogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eTo6Q29udGVudDoKLSAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5OjpTeXN0ZW06CiAgICAgICAgIHJldHVybiBzZXR0aW5ncygpLnN5c3RlbUxheW91
dERpcmVjdGlvbigpID09IFRleHREaXJlY3Rpb246OlJUTDsKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpOwotI2VuZGlmCisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogfQogCiBPcHRpb25hbDxMYXllclJlcGFpbnRS
ZWN0cz4gUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6bGF5ZXJSZXBhaW50UmVjdHMoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgK
aW5kZXggOWM5NjZmN2ViMmYwMjdkNjMwZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5
OWEyZDc4YTUzZGRkNWM2YWYzZDdmZjhkYzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50
UmVjdHM+IGxheWVyUmVwYWludFJlY3RzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1
MDJhYjk1ZWI4NDk5ZTBhZDY4NTIxNDlmMDFmMTlhM2MxYTQxLi44YjI2ZmI3Njg5ZjQ1Y2ViZDA1
NWY5NTY4NDE3ZTZlMzNmZTIxMTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAg
dm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQog
ICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0K
IAotYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCk7CisgICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRp
Y2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
QEAgLTY1NCw3ICs2NTQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBo
YXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIo
bV9oQmFyLmdldCgpKTsKICAgICBib29sIGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIg
PSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCk7CisgICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0g
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6
ZXIgPSByZW5kZXJlci5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29s
IHNjcm9sbGJhcnNBdm9pZENvcm5lciA9IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxi
YXIgJiYgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYm
IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0
aWNhbFNjcm9sbGJhcikpOwogCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVy
U2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVTY3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwog
CiAgICAgaW50IHNjcm9sbGFibGVMZWZ0T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVm
dCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9J
bnQob3ZlcmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdp
bihJbnRQb2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxv
dykpOwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
Ojp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0
aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKGhhc1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVy
dGljYWxTY3JvbGxCYXJDaGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYg
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0
ZVNjcm9sbE9yaWdpbigpOwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5
ZXIoKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAg
ICAgIGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9
CiAKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7
CisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAg
ICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5l
clJlY3QueCgpICsgY29ybmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3Qu
eSgpICsgcmVzaXplckNvcm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWln
aHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAt
MTUwOSw3ICsxNTA5LDcgQEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0
UmVzaXplckluRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMg
PSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21l
bnQgPSBbJl0oY29uc3QgSW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJl
c2l6ZXJSZWN0KSB7Ci0gICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkpIHsKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSkgewogICAgICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJv
cmRlckJveFJlY3QubWluWE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVy
KCk7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZ
Q29ybmVyKCkgLSBvZmZzZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVj
dC5oZWlnaHQoKSB9LCByZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3
ICsxNTcwLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFs
U2Nyb2xsYmFyKG5lZWRzSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxT
Y3JvbGxiYXIobmVlZHNWZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxT
Y3JvbGxiYXIgIT0gbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9s
bGJhciAmJiBvbGRTdHlsZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVk
c1ZlcnRpY2FsU2Nyb2xsYmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxl
ICYmIGJveC0+c3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0g
b2xkU3R5bGUtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAg
IGNvbXB1dGVTY3JvbGxPcmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZs
b3c6c2Nyb2xsLCBzY3JvbGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2Fi
bGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmgKaW5kZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZl
OC4uYWU0NzE5OTM3MjNkZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBA
IC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxp
bmcoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZp
bmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBm
NTcyZGY5Zi4uM2VhN2I3MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3
IEBAIExheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxp
bmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0
ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGlu
dCBpbmRleCkKIHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJv
cmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5v
Y2N1cGllZFdpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkg
KyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1f
aW5kZXhPZmZzZXQpOwogICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgp
LCBpdGVtSGVpZ2h0KCkpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6
cGFpbnRTY3JvbGxiYXIoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWluCiAgICAgaWYgKCFtX3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQg
bGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1f
dkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0
IHRvcCA9IHBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lk
dGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWln
aHQoKSAtIChib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBA
QCBib29sIFJlbmRlckxpc3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVz
dWx0JiByZXN1bHQsIGNvbnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNo
b3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0g
Ym9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNj
dW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0
aCgpKTsKICAgICBMYXlvdXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJU
b3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91
dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRv
bSgpOwpAQCAtNDkxLDkgKzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9m
ZnNldChjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAg
IGludCBzY3JvbGxiYXJXaWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAg
aWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0
LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGgg
fHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdo
dCgpKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChv
ZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJX
aWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBi
b3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAg
IHJldHVybiAtMTsKIAogICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9y
ZGVyVG9wKCkgLSBwYWRkaW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsK
QEAgLTgwMCwxNCArODAwLDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25z
dAogdm9pZCBSZW5kZXJMaXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIm
IHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJl
Y3QgPSByZWN0OwotICAgIHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3Zl
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsK
ICAgICByZXBhaW50UmVjdGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxp
c3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxi
YXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAg
ICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0g
c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgp
IDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQg
c2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJv
cmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3Jv
bGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCku
Y29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYs
NyArODE2LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRv
Q29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJv
eDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJl
Y3QgcmVjdCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9S
ZW5kZXJlcih0aGlzLCBwYXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9s
bGJhckxlZnQgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJM
ZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAg
IGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJh
ckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3
IEBAIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2lu
dCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lk
dGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xs
YmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxl
ZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAg
aW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFy
TGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZl
cnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4
MzQsNyBAQCBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29u
dGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6
Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Ny
b2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9p
bnQgcG9pbnQgPSB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1Rv
UmVuZGVyZXIodGhpcywgcGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDog
d2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Ny
b2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAg
ICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9s
bGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYw
Zjk5MjZjNGYyMTdlMTM0MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFk
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcg
KzE3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxU
b1JldmVhbFNlbGVjdGlvbigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93Ojpz
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBS
ZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQog
CiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNl
bGVjdGlvbkFmdGVyTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CmluZGV4IDRjM2ZmNGZhZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3
NWY1MWZmMmE2MzE2NGJhYTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJl
cGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAog
ICAgICAgICAvLyBhbmQgdGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhp
cyB0cmFuc2Zvcm1hdGlvbiBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3Jv
bGxiYXIgKGlmIG9uZSBleGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRo
aXMtPmZyYW1lVmlldygpOwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIo
KSkKKyAgICAgICAgaWYgKGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgJiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1
c3RlZFJlY3QubW92ZShMYXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5v
Y2N1cGllZFdpZHRoKCksIDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3Rhbmds
ZShhZGp1c3RlZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKaW5kZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1
OC4uMDliODNjOGUzMDM5ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1
ODEsOSBAQCBmbG9hdCBSZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fYmFja2dyb3VuZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVy
U3R5bGU6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAor
Ym9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
JiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5n
TW9kZTo6UmlnaHRUb0xlZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxl
OjpwYWludFR5cGVzRm9yUGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkx
M2Q1MWQ4ZjBiYTQxNWI0NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVm
OTc5MjdhODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtODI5LDcgKzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJ
TElOR19XT1JEKQogICAgIFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVy
biBUcmFpbGluZ1dvcmQ6OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2Rj
ZWYwZjEzZWY0YWVjYThjMi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVBy
b3h5V2luLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXpl
IHZpc2libGVTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250
ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFi
bGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBi
b29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JS
dWJiZXJiYW5kYWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Nj
cm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
LmgKaW5kZXggYjVlNmU1MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVk
Y2QwODU3MmUwYjY1OTk4NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBA
IHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0Nv
bnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9p
bnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNj
cm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3Jt
YW5jZVRlc3RpbmcoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAg
IGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5h
bDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmNkZmE1YTI4NDdlNjNl
MWMwOWQ2NDgwOTQyNWU5NGJkMTQxZjVmOC4uNTg0ZTNmNWIwNmJkZWU1OTBkMzg1OTAxNzlmM2I1
MWJlMjVmOWE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA0LTEyICBDYW1lcm9uIE1j
Q29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Ny
b2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ct
c2FtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxi
YXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFy
cy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
c2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9s
bGJhci1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMS0wNC0xMiAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzU3OTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBjOWQwZTc3YjMzZWU4
NTZmZGYxNjAyNGI5MWZiODRlMzU5MWU4NGRlLi5hMDU3NjM1YWU1ZWFmN2Q5MGM4YjQyYzEzOTIw
MDgzNjU4OWIwZjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wNC0xMiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5k
IGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1z
bmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQ6CisKIDIw
MjEtMDQtMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc1NzkzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
ODZhYjZkM2Y2ZDMzOWNjZjM0N2JmZjFmMDI3MDQ0YTI1NzAwNjNmMi4uYTBiNTcyNDVmZTc3YWU2
NmFiNjc2Yzk0NDQwNDlhZDRjYThkMDY1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODcwLDYg
KzQ4NzAsMTAgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vcXVvdGUtc2NvcGluZy0wMDIuaHRtbCBbIEltYWdlT24KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3BpbmctMDAzLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL3F1b3RlLXNjb3BpbmctMDA0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBU
ZXN0cyB0aGF0IGZhaWwgYmVjYXVzZSB0aGV5IGFzc3VtZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBp
biBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAgZWxlbWVudHMgd2lsbCBiZSBvbiB0aGUgcmln
aHQtaGFuZCBzaWRlCit3ZWJraXQub3JnL2IvMjI0MzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3NpemluZy1vcnRob2ctdnJsLWluLWh0Yi0w
MTMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMjI0MzU3IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvY3Nzb20tZ2V0Qm91bmRpbmdD
bGllbnRSZWN0LXZlcnRpY2FsLXJsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogIyBAY291
bnRlci1zdHlsZSByZWYgdGVzdHMgdGhhdCBjdXJyZW50bHkgZmFpbAogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291
bnRlci1zdHlsZXMtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcm1lbmlhbi9jc3MzLWNv
dW50ZXItc3R5bGVzLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCmluZGV4
IDYyNTQ3MmY0N2YxZGZkMTYxMmY1YmU0OGIxZjFjOTQ3YmI4MzVlYTAuLjBmNmFlODVhYzY2MGJh
ODFkZDI1YWM4NTFiOGUxM2RjNmM2MGU0OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Nz
czMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sCkBAIC0yOCw2ICsyOCwxMCBA
QAogcCB7CiAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKIH0KKworLnRvcFJpZ2h0IHsKKyAgICBk
aXJlY3Rpb246IHJ0bDsgIC8qIHBsYWNlIHNjcm9sbGJhcnMgb24gdGhlIExIUyAqLworfQogPC9z
dHlsZT4KIDwvaGVhZD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAppbmRleCAw
MDE1NTg5ZDc0ZDliMTk1NzIxNWUyMzBkZDA3MmYwODRlOTUwYmFlLi44MmE0ZmVhYWEyMzM1ODM5
Mjg5OTJjNzZmOGNkZTIxMmVjODY5ZDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dApA
QCAtMSw0ICsxLDQgQEAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0IDI5IDI5IDEwMCAxMDApCisg
IChyZWN0IDQ0IDI5IDEwMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3
N2FiZmJjZDc4MTE3ZTg5ZWZjMzEzNjdmM2MzZmRhYWQ3NmI4NDFmLi5iNzU5MTQxNjRkODE4YzM4
M2JkMWUzMjM0NTQyOTEzNzQ4NmIzNDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjEgMTAwIDEwMCkKKyAgKHJl
Y3QgNDQgMjEgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwt
cG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0MTZiNDcyN2EwYjhi
YWVlOWE2NDUxYWI3OGI1ZWUzZmNmNTk0NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWlj
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93
OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBi
b3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IHN0eWxlPSJ3aWR0
aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjogbHRyOyBvdmVyZmxvdzogc2Nyb2xs
OyBtYXJnaW4tdG9wOiAxZW07Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6
IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1w
b3NpdGlvbi1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNj
cm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYwZjcw
NmM5NjNmNjBjMWRkZDcyYjhkZTI2ODg4MWExMmU2MmQzYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9u
LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgaWQ9
b25lIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRpbmctbW9kZTogaG9y
aXpvbnRhbC10Yjsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTky
cHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rp
dj4KKzxkaXYgaWQ9dHdvIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdpbi10b3A6IDFlbTsi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4
IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Citkb2N1bWVudC5ib2R5Lm9m
ZnNldFRvcDsKK29uZS5zdHlsZS53cml0aW5nTW9kZSA9ICJ2ZXJ0aWNhbC1ybCI7Cit0d28uc3R5
bGUud3JpdGluZ01vZGUgPSAiaG9yaXpvbnRhbC10YiI7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0
aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9s
bGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4OGI2Y2E0
OWIyMWU0MjIxNTA5ODA1NmFhNWIzMzllMzE0OGU2NWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjogcnRsOyBvdmVyZmxvdzog
c2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9y
ZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhMGJmMDgzMjkwYzNlNTU1ZDE1ODYyMjg0N2NjYTRh
Nzk2ZGYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Yt
cmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3Jp
dGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxl
PSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+
PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Zl
cnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJjMTcwYjgwZGQwYjhjYTk3ZmY1NWQxZGJkZTFiNDBmZmE2NDdlYjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoZXNlIGZvdXIgY29udGFp
bmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuCisKKwor
CisKK1RoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJh
ciBvbiB0aGUgbGVmdC4KKworCisKKworIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmZhMzlkYTY4ZTI0ZjM3ODFjOWYzN2EyYWYwZTFkMTRiZjU4NjZjNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1w
b3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgor
c2VjdGlvbiA+IGRpdiwgc2VjdGlvbiA+IGRpdiB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgaGVpZ2h0OiAxMDBweDsKKyAgd2lkdGg6IDEwMHB4OworICBvdXRsaW5lOiAxcHggc29saWQg
YmxhY2s7CisgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgb3ZlcmZsb3cteTogc2Nyb2xsOworICBt
YXJnaW46IDEwcHggMTBweCAwIDA7Cit9CisKKy5zcXVhcmUgeworICB3aWR0aDogMjBweDsKKyAg
aGVpZ2h0OiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cit9CisKKy5sdHIgeyBk
aXJlY3Rpb246IGx0cjsgfQorLnJ0bCB7IGRpcmVjdGlvbjogcnRsOyB9CisuaC10YiB7IHdyaXRp
bmctbW9kZTogaG9yaXpvbnRhbC10YjsgfQorLmgtYnQgeyAtd2Via2l0LXdyaXRpbmctbW9kZTog
aG9yaXpvbnRhbC1idDsgfQorLnYtcmwgeyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyB9Cisu
di1sciB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0KKzwvc3R5bGU+Cis8c2VjdGlvbiBj
bGFzcz0icmlnaHQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2
ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJpZ2h0LjwvcD4KKyAgPGRpdiBjbGFzcz0iaC10YiBs
dHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+Cisg
IDxkaXYgY2xhc3M9ImgtYnQgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9
IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIGx0ciI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1sciBy
dGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+Cis8
L3NlY3Rpb24+CisKKzxzZWN0aW9uIGNsYXNzPSJsZWZ0Ij4KKyAgPHA+VGhlc2UgZm91ciBjb250
YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0LjwvcD4K
KyAgPGRpdiBjbGFzcz0iaC10YiBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3Rl
ZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJoLWJ0IHJ0bCI+PGRpdiBjbGFzcz0i
c3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYt
cmwgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rp
dj4KKyAgPGRpdiBjbGFzcz0idi1ybCBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBl
Y3RlZD0iODAiPjwvZGl2PjwvZGl2PgorPC9zZWN0aW9uPgorCis8cHJlIGlkPSJyZXN1bHRzIj5G
QUlMPC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKK30KKworbGV0IHRleHQgPSAiIjsKK2ZvciAo
bGV0IHNxdWFyZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc3F1YXJlIikpIHsKKyAg
ICBsZXQgYWN0dWFsID0gc3F1YXJlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnggLSBzcXVhcmUu
cGFyZW50Tm9kZS5vZmZzZXRMZWZ0OworICAgIGxldCBleHBlY3RlZCA9IHNxdWFyZS5nZXRBdHRy
aWJ1dGUoImRhdGEtZXhwZWN0ZWQiKTsKKyAgICBpZiAoYWN0dWFsICE9IGV4cGVjdGVkKSB7Cisg
ICAgICAgIHRleHQgKz0gYFBvc2l0aW9uIG9mIHNxdWFyZSBpbiAnJHtzcXVhcmUucGFyZW50Tm9k
ZS5jbGFzc05hbWV9JyAtIGV4cGVjdGVkICR7ZXhwZWN0ZWR9LCBnb3QgJHthY3R1YWx9XG5gOwor
ICAgIH0KK30KK3Jlc3VsdHMudGV4dENvbnRlbnQgPSB0ZXh0IHx8ICJQQVNTIjsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwt
c25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKaW5kZXggNjhkOGVkN2M0MzA3NjM2
M2VmMjM1M2NmZWFkMjE0YTY3NGVkNTJhYi4uZDZiNzc5NTcyYjY0MzE5NmNjYjlkN2RlZGJjYTIw
MTBlOTE4N2UxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CkBAIC0xLDEw
ICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRp
bmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQKIEZB
SUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWdu
cyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAzMDAKLUZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9y
IHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0
YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVj
dGVkIDMwMCBidXQgZ290IDE2NQogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwt
dGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1
dCBnb3QgMAogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9k
ZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKLUZBSUwg
U25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xs
LXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBj
b3JyZWN0bHkgb24geCBleHBlY3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBjb3Jy
ZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBz
dGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBl
Y3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rp
b246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3Qg
LTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3
aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFs
czogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDMwMAorRkFJTCBT
bmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2Rp
cmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1l
bnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBidXQg
Z290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Ny
b2xsTGVmdFRvcC1leHBlY3RlZC50eHQKaW5kZXggNWJkM2JjNzFkZDAzYWNlMmNlYzdhMzQ0MGE3
YmRjNmRkNDI0NjZiOC4uNTEyMTZiYjlhOTkwYTA3NTZhZmViYjBkNGEwZGIzYjBjYTU2ODFmMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExl
ZnRUb3AtZXhwZWN0ZWQudHh0CkBAIC0xMSw2ICsxMSw2IEBAIFBBU1Mgd3JpdGluZy1tb2RlOmhv
cml6b250YWwtdGI7IGRpcmVjdGlvbjpsdHIKIFBBU1Mgd3JpdGluZy1tb2RlOmhvcml6b250YWwt
dGI7IGRpcmVjdGlvbjpydGwKIFBBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rp
b246bHRyCiBQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjsgZGlyZWN0aW9uOnJ0bAotRkFJ
TCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpsdHIgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0x
NTAKLUZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246cnRsIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBleHBlY3RlZCAtMTY1ICsvLSAwLjUgYnV0
IGdvdCAtMTUwCitQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0cgor
UEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425931</attachid>
            <date>2021-04-13 16:47:32 -0700</date>
            <delta_ts>2021-04-13 17:32:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210414094729.patch</filename>
            <type>text/plain</type>
            <size>60488</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uYmJiOGNlZTg0ZWZmOWVkNjI0NTA5YTZlYWYwYzI4
NzhiNzcxODE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTEyICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFJl
bW92ZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTM2YTNjMjQ5
ZmQ4YmY5Y2FkZDg5NzQzYzYxYWU3ODNjOTBlNTk5Ny4uN2ZlNTMwZmUwZDk1YzY4MDlkNjJlMTQ3
NzFiNTRlMGIzYzRmYTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0xMiAg
Q2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZl
cnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRp
bmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTEyICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgdGhlIFdlYkF1dGhuIGNv
bXBhdGlibGUgbW9kZSB0byBhbHdheXMgc2hvdyBVSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDI3NTkwOGRkMWRiNjYzM2VhNzY1YmRlZjdlM2U1NjkzMGFlYjQ2ZDMuLmM0
ZWJlMjYwNWJjMTY5NWQ1MGRlNWUwMzZkNzQ1NGE5YWVlMjUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTE1MTUsNyArMTUxNSw3IEBAIE9wdGlvbmFsPEN1cnNvcj4g
RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBi
b29sIHNoCiAgICAgICAgICAgICBhdXRvJiBsYXllclJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdD4oKnJlbmRlcmVyKTsKICAgICAgICAgICAgIGluUmVzaXplciA9IGxh
eWVyUmVuZGVyZXIubGF5ZXIoKS0+aXNQb2ludEluUmVzaXplQ29udHJvbChyb3VuZGVkSW50UG9p
bnQocmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogICAgICAgICAgICAgaWYgKGluUmVzaXplcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFz
dFJlc2l6ZUN1cnNvcigpOworICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNv
cigpIDogc291dGhFYXN0UmVzaXplQ3Vyc29yKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
KGVkaXRhYmxlIHx8IChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNUZXh0KCkgJiYgbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSkpICYmICFpblJlc2l6ZXIgJiYgIXJlc3VsdC5zY3JvbGxiYXIoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjNTkxN2ZmOWFhN2MyMmU5MGU1NjcxMWY4
NGJlMTEyNDk0N2M4NjU5Li4wMjE3ZDM0MmJmOGYzYmNjMWI5OGE0ZTlmNTU0OThkNWIyN2M1MTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01NTUzLDkgKzU1NTMsOSBAQCBJbnRT
aXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
IH0KIAotYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAorYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmll
dygpLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0
dXJuIHJlbmRlclZpZXcoKSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgRnJhbWVWaWV3JiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDZh
ZTNhNDcxMTBjNTc0NzAzMzBmZjk1OWNlM2M4ZmIzZjNmNjVjYi4uZjRhNjA3OGU5MjY3YWM0M2Zh
NDMxZjVmOWVjODY3ZTk5MjEyZTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NTUs
NyArNjU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogICAgIHZvaWQgaGlk
ZSgpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4
IDhlNmIzYWFiNTk4YTM3NGM3MTMyNDM2ZjhiMjE0YjFhODNjZjY1NGEuLmVkZjA1NDg2YjE2OTMw
ZWVmYWFlYmUwM2U1MDJmMTA1NTIwMzRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCkBAIC00MjIsNyArNDIyLDcgQEAgU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6
YWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShjb25zdCBTY3JvbGxQb3NpdGlvbiYKIFNj
cm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRv
Vmlld09yaWdpbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkgLSBJbnRT
aXplKAotICAgICAgICBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lk
dGgoKSA6IDAsCisgICAgICAgIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAm
JiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0
aCgpIDogMCwKICAgICAgICAgaGVhZGVySGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoVG9wQ29u
dGVudEluc2V0VHlwZTo6V2ViQ29yZU9yUGxhdGZvcm1Db250ZW50SW5zZXQpKTsKIH0KIApAQCAt
NzMyLDcgKzczMiw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgZGVzaXJlZFBvc2l0aW9uKQogICAgIGlmIChtX2hvcml6b250YWxTY3Jv
bGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudFdpZHRoID0gdmlzaWJsZVdpZHRoKCk7CiAgICAg
ICAgIEludFJlY3Qgb2xkUmVjdChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsK
LSAgICAgICAgSW50UmVjdCBoQmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXIt
Pm9jY3VwaWVkV2lkdGgoKSA6IDAsCisgICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICAgICAgaGVpZ2h0
KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAgICAgd2lkdGgo
KSAtIChtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRX
aWR0aCgpIDogMCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgp
KTsKQEAgLTc1MSw3ICs3NTEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV92ZXJ0aWNh
bFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgp
OwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0
KCkpOwotICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lk
dGgoKSwKKyAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICB0b3BDb250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxT
Y3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNl
dCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+b2Nj
dXBpZWRIZWlnaHQoKSA6IDApKTsKQEAgLTExNzksMTQgKzExNzksMTQgQEAgSW50UmVjdCBTY3Jv
bGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QKICAgICBpbnQgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyID0gaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKTsKIAogICAgIGlmIChtX2hv
cml6b250YWxTY3JvbGxiYXIgJiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3JvbGxi
YXItPndpZHRoKCksCisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhl
aWdodCgpLAogICAgICAgICAgICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSwKICAgICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKICAg
ICB9CiAKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhciAmJiBoZWlnaHRUcmFja2VkQnlTY3Jv
bGxiYXIgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29y
bmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAg
ICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwK
ICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpICsgdG9wQ29udGVudElu
c2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAg
ICAgICAgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVp
Z2h0KCkpKTsKQEAgLTE1MzgsNyArMTUzOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c3R5bGVBbmRS
ZW5kZXJUcmVlRGlkQ2hhbmdlKCkKIEludFBvaW50IFNjcm9sbFZpZXc6OmxvY2F0aW9uT2ZDb250
ZW50cygpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcmVzdWx0ID0gbG9jYXRpb24oKTsKLSAgICBp
ZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGlj
YWxTY3JvbGxiYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKQogICAgICAgICByZXN1bHQubW92ZShtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAzNTg3MTc5Y2RiN2Y2
NzkzOThhN2M4NzczMTJlZDQ5N2MxNmZlOGQ5Li5kNDgxZjdlZGNiZmJmMzNiZGFiNjYzNjc3Yzhm
ZDUwYjczOGFmOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgK
QEAgLTM0Miw3ICszNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNNb2NrU2Ny
b2xsQW5pbWF0b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBs
b2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgPSAwOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVz
Y3JpcHRpb24oKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcAppbmRleCA0YjcyMTU0YmEx
ZTJiN2MwNjFlOWNlYjQ1OWY0Y2M1NTBlYWU1ZDQyLi44N2JhNGFkOTU1ZThmNDQ4NWVhY2VlOTc5
MzdkOWMzOGJjYTNmZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdh
aXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
cmFwaGljc0NvbnRleHQmIGdyYXBoaWMKIAogICAgICAgICBJbnRSZWN0IGZyYW1lID0gcmVjdDsK
ICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSkKICAgICAgICAgICAgICAgICBmcmFtZS5tb3ZlKGZyYW1lLndpZHRoKCkgLSBob3ZlcmVkU2Ny
b2xsYmFyQm9yZGVyU2l6ZSwgMCk7CiAgICAgICAgICAgICBmcmFtZS5zZXRXaWR0aChob3ZlcmVk
U2Nyb2xsYmFyQm9yZGVyU2l6ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTQwLDcgKzE0MCw3IEBA
IGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwg
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAgICAgSW50UmVjdCB0aHVtYiA9IHJlY3Q7CiAgICAg
aWYgKHNjcm9sbGJhci5ob3ZlcmVkUGFydCgpID09IE5vUGFydCAmJiB1c2VzT3ZlcmxheVNjcm9s
bGJhcnMoKSkgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEo
KS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoaG92ZXJlZFNjcm9sbGJh
ckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAob3ZlcmxheVRo
dW1iU2l6ZSArIHRodW1iQm9yZGVyU2l6ZSkgKyBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwg
dGh1bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGJvb2wgU2Ny
b2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3ND
b250ZXh0JiBncmFwaGljCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2Ny
b2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAg
IGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAg
ICAgIHRodW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1i
U2l6ZSAvIDIpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJC
b3JkZXJTaXplKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3Zl
KHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSwgdGh1
bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggZmU1NTU4YzM1ODQ3YTg3Y2YyNzE2MDgx
NTdmM2VmZWNkNjg0YTdiMC4uMjg5NmM3ZjNiMGQyNzhkYjA5YjgwMDkzNDczZmI2YmZhOGZjMjEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1l
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGsuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFy
UGFydFN0YXRlRmxhZ3MoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKIHN0YXRp
YyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZSB3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKFNjcm9s
bGJhciYgc2Nyb2xsYmFyLCBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclN0YXRlKQogewogICAgIGlm
IChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVh
KCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgcmV0
dXJuIHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVt
ZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJMZWZ0IDogUmVuZGVyVGhlbWVTY3Jv
bGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9yTGVmdDsKICAgICAgICAgcmV0dXJu
IHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJSaWdodCA6IFJlbmRlclRoZW1lU2Nyb2xs
YmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvclJpZ2h0OwogICAgIH0KQEAgLTM4MCw3
ICszODAsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludChTY3JvbGxiYXImIHNjcm9s
bGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbgogICAgIC8vIGRyYXdpbmcgdGhlIGlu
ZGljYXRvciB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgcmVjdGFuZ2xlIHRvIGl0cyBhY3R1YWwgc2l6
ZSBpbiBpbmRpY2F0b3IgbW9kZS4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0g
VmVydGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBwcmVmZXJy
ZWRTaXplLndpZHRoKCkpIHsKLSAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKCFzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoc3Rk
OjphYnMocmVjdC53aWR0aCgpIC0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSwgMCk7CiAgICAgICAg
ICAgICBjb250ZW50c1JlY3Quc2V0V2lkdGgocHJlZmVycmVkU2l6ZS53aWR0aCgpKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
Lm1tCmluZGV4IGJkMDYxNWYyMmQzNTg2MjA0Y2JiYTBlNzhiMmEyNDI3ZmJhMTdmMGEuLjUzOTYx
YTdiNzIwNDAxZjcyZTIyNDVjYmI0ZTIxYjc2Nzk1YWQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw3ICsxNTksNyBA
QCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXIm
IHNjcm9sbGJhcikKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xs
ZXJJbXAgPSBwYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgQVNTRVJUKHNjcm9s
bGVySW1wKTsKLSAgICBzY3JvbGxlckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0g
c2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQg
OiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsKKyAgICBzY3JvbGxl
ckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25MZWZ0VG9SaWdodDsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCA3
ZDU3ZGFhOWNkZmE4MWM0ZTVkNzU3YTZjYjY1YzUwNDQ0Mzk3NWUxLi43MmUwZTVjZjg4ZjUyZWRm
MzMwMTllYTE2OWNiMmIxMzYxYmY2Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXpl
IGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFy
ZWFCb3VuZGluZ0JveChib29sKiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Zm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCBieSB0aGUgb3ZlcnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVB
cmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50IG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBiYjRkZjdjYzg3OGQxYWRmNmVlNDU5MWY5ZmQ1ZjNm
ZjQzNDRkYzBhLi4yNjA2ZDUyZTc2MThmZDY5NTEzNDEwMDZkYmFlYjhmZTg0NDlmY2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5MjMsNyArMTkyMyw3
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQoKSBjb25zdAogTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZy
YWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsTGVmdE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0
T2Zmc2V0OwpAQCAtMTkzNCw3ICsxOTM0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9n
aWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmEKIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQoUmVuZGVy
RnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVuaXQgbG9n
aWNhbFJpZ2h0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwot
ICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGxvZ2ljYWxSaWdodE9mZnNldCArPSBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKTsKICAgICBpZiAoIWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAyMmYzZmEwNmU1ZDRiMzhmNDQyZWMyODQwNTdkNzE3
MWNhNmI1NTNjLi4zNmMxOTFkMDVhMjg4MzI2OTdlNjA1YjkwZThmN2M5MTdlNGYzZGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtODgzLDcg
Kzg4Myw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjptYXJnaW5PZmZzZXRGb3JTZWxm
Q29sbGFwc2luZ0Jsb2NrKCkKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2Fs
TGVmdFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgQXBwbHlMYXlvdXREZWx0YU1v
ZGUgYXBwbHlEZWx0YSkKIHsKICAgICBMYXlvdXRVbml0IHN0YXJ0UG9zaXRpb24gPSBib3JkZXJT
dGFydCgpICsgcGFkZGluZ1N0YXJ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHN0YXJ0UG9z
aXRpb24gKz0gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IC0xKSAqIHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsQXZhaWxhYmxlTG9n
aWNhbFdpZHRoID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpICsgYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NTc2ZWU1ZGNjOWEzZTZkZjdlNTFiZTllMmIyNjJmMmIyMDA3MzJiNC4uOGZjYmI1OWU2ZWJiY2Ix
MGNhMzU2NmQyOWRlMWJmZWQ2YzZlYmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTcyMiw3ICs3MjIsNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJCb3g6OnJvdW5k
ZWRCb3JkZXJCb3hSZWN0KCkgY29uc3QKIExheW91dFJlY3QgUmVuZGVyQm94OjpwYWRkaW5nQm94
UmVjdCgpIGNvbnN0CiB7CiAgICAgYXV0byB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+
dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwotICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGlj
YWxTY3JvbGxiYXJXaWR0aCA6IDA7CisgICAgTGF5b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIg
PSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoIDogMDsKIAogICAgIHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIG9mZnNl
dEZvclNjcm9sbGJhciwgYm9yZGVyVG9wKCksCiAgICAgICAgIHdpZHRoKCkgLSBib3JkZXJMZWZ0
KCkgLSBib3JkZXJSaWdodCgpIC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCwKQEAgLTczNiw3ICs3
MzYsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y29udGVudEJveFJlY3QoKSBjb25zdAogCiBM
YXlvdXRQb2ludCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbigpIGNvbnN0CiB7Ci0gICAg
TGF5b3V0VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0
VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CiAgICAgcmV0dXJuIHsgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhclNwYWNlLCBib3JkZXJUb3AoKSArIHBhZGRp
bmdUb3AoKSB9OwogfQogCkBAIC0xOTY0LDcgKzE5NjQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJv
eDo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlckZy
YWdtZQogCiAgICAgLy8gU3VidHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYgd2UgaGF2ZSB0aGVtLgog
ICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxh
YmxlQXJlYSgpIDogbnVsbHB0cikgewotICAgICAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY2xpcFJlY3QubW92ZShzY3JvbGxhYmxlQXJl
YS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpLCAwKTsKICAgICAgICAgY2xpcFJl
Y3QuY29udHJhY3Qoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZh
bmN5KSwgc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5
KSk7CiAgICAgfQpAQCAtMzc1OCw3ICszNzU4LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQ
b3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUK
ICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCArPSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAg
aWYgKGlzPFJlbmRlckJveD4oY29udGFpbmVyQmxvY2spKSB7CiAgICAgICAgIGF1dG8mIGNvbnRh
aW5pbmdCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKTsKLSAgICAgICAg
aWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKQorICAgICAgICBpZiAoY29udGFpbmluZ0JveC5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIGNv
bXB1dGVkVmFsdWVzLm1fcG9zaXRpb24gKz0gY29udGFpbmluZ0JveC52ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgfQogICAgIApAQCAtNDk3OSw3ICs0OTc5LDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0KCkgY29uc3QKICAgICBmbGlwRm9yV3JpdGlu
Z01vZGUocmVjdCk7CiAgICAgLy8gU3VidHJhY3Qgc3BhY2Ugb2NjdXBpZWQgYnkgc2Nyb2xsYmFy
cy4gVGhleSBhcmUgYXQgdGhlaXIgcGh5c2ljYWwgZWRnZSBpbiB0aGlzIGNvb3JkaW5hdGUKICAg
ICAvLyBzeXN0ZW0sIHNvIG9yZGVyIGlzIGltcG9ydGFudCBoZXJlOiBmaXJzdCBmbGlwLCB0aGVu
IHN1YnRyYWN0IHNjcm9sbGJhcnMuCi0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJlY3QubW92ZSh2
ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwogICAgIHJlY3QuY29udHJhY3QodmVydGljYWxT
Y3JvbGxiYXJXaWR0aCgpLCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkpOwogICAgIHJldHVy
biByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKaW5kZXggYjQ2M2ZjOWRjYjIyNGFkOTgzZGU1ZDY5YWUzZWUzNWZjYjYyMjNlOS4u
ZmFhNzYwOTFkMDRkNDU1ZTgyYjMzMzIyOGFmYTQyMTM4N2Q1ZmNkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01NTYsNyAr
NTU2LDcgQEAgRmxvYXRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb25zdHJhaW5pbmdSZWN0
Rm9yU3RpY2t5UG9zaXRpb24oKSBjb25zdAogICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gRmxv
YXRQb2ludCgpICsgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpOwogCiAgICAgICAgIGZs
b2F0IHNjcm9sbGJhck9mZnNldCA9IDA7Ci0gICAgICAgIGlmIChlbmNsb3NpbmdDbGlwcGluZ0Jv
eC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKKyAgICAgICAgaWYgKGVu
Y2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVyKCkgJiYgZW5jbG9zaW5nQ2xpcHBpbmdCb3guc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIHNjcm9sbGFibGVBcmVhKQogICAg
ICAgICAgICAgc2Nyb2xsYmFyT2Zmc2V0ID0gc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogCiAgICAgICAgIGNvbnN0cmFp
bmluZ1JlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXQueCgpICsgc2Nyb2xs
YmFyT2Zmc2V0LCBzY3JvbGxPZmZzZXQueSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA3YTU5NThjOTIzYTIxNDg2MjFhZmNkYzNjNGRiY2Y0YTM3YjQy
MzExLi41Njk1NjFiYzc0ZDNkN2MwZDNiNTFkYjRjZjY0N2UzMjgxZmQzNmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0MzAsOSArMjQzMCwxMCBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFi
c29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAvLyBib3JkZXIgZWRnZS4gTWFrZSB0aGUg
cmVjdGFuZ2xlIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGxhYmxlIGFyZWEuCiAgICAgICAgIGxvY2Fs
RXhwb3NlUmVjdC5tb3ZlQnkoLUxheW91dFBvaW50KGJveC0+Ym9yZGVyTGVmdCgpLCBib3gtPmJv
cmRlclRvcCgpKSk7CiAKLSAgICAgICAgaWYgKGJveC0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7Ci0gICAgICAgICAgICAvLyBGb3IgZGlyZWN0aW9uOiBydGw7
IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YiBib3gsIHRoZSBzY3JvbGwgYmFyIGlzIG9uIHRo
ZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3QKLSAgICAgICAgICAgIC8vIHN0YXJ0cyBmcm9t
IHRoZSByaWdodCBzaWRlIG9mIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVj
dCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28uCisgICAgICAgIGlmIChi
b3gtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgeworICAgICAgICAgICAg
Ly8gRm9yIGBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH1g
IGFuZCBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAKKyAgICAgICAgICAgIC8vIGJveGVzLCB0
aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0IHN0YXJ0
cyBmcm9tIHRoZSByaWdodCBzaWRlCisgICAgICAgICAgICAvLyBvZiB0aGUgc2Nyb2xsIGJhci4g
U28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBzdGFydCBmcm9tIHRoZSBzYW1lIHBv
c2l0aW9uIHRvby4KICAgICAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlQnkoTGF5b3V0UG9p
bnQoLXNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApKTsKICAgICAg
ICAgfQogICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRzKDBfbHUsIDBfbHUsIGJveC0+Y2xp
ZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQoKSk7CkBAIC0yNjc2LDcgKzI2NzcsNyBAQCB2
b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldnQsIGNv
bnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIGVsZW1lbnQtPnNldE1pbmltdW1TaXplRm9yUmVz
aXppbmcobWluaW11bVNpemUpOwogICAgIAogICAgIExheW91dFNpemUgYWRqdXN0ZWRPbGRPZmZz
ZXQgPSBMYXlvdXRTaXplKG9sZE9mZnNldC53aWR0aCgpIC8gem9vbUZhY3Rvciwgb2xkT2Zmc2V0
LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7Ci0gICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBuZXdPZmZzZXQuc2V0
V2lkdGgoLW5ld09mZnNldC53aWR0aCgpKTsKICAgICAgICAgYWRqdXN0ZWRPbGRPZmZzZXQuc2V0
V2lkdGgoLWFkanVzdGVkT2xkT2Zmc2V0LndpZHRoKCkpOwogICAgIH0KQEAgLTI3MzMsNyArMjcz
NCw3IEBAIFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xSZWN0cyBSZW5kZXJMYXllcjo6b3Zl
cmZsb3dDb250cm9sc1JlY3RzKCkgY29uc3QKICAgICAvLyBTY3JvbGxiYXJzIHNpdCBpbnNpZGUg
dGhlIGJvcmRlciBib3guCiAgICAgYXV0byBvdmVyZmxvd0NvbnRyb2xzUG9zaXRpb25pbmdSZWN0
ID0gc25hcHBlZEludFJlY3QocmVuZGVyQm94LnBhZGRpbmdCb3hSZWN0SW5jbHVkaW5nU2Nyb2xs
YmFyKCkpOwogCi0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVu
ZGVyQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICBi
b29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSByZW5kZXJCb3guc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5k
ZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUmVzaXplOjpOb25lOwogCiAgICAgT3ZlcmZsb3dD
b250cm9sUmVjdHMgcmVzdWx0OwpAQCAtMjc4Niw3ICsyNzg3LDcgQEAgU3RyaW5nIFJlbmRlckxh
eWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIEludFNpemUgUmVuZGVyTGF5ZXI6Om9mZnNl
dEZyb21SZXNpemVDb3JuZXIoY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiB7CiAg
ICAgYXV0byByZXNpemVyUmVjdCA9IG92ZXJmbG93Q29udHJvbHNSZWN0cygpLnJlc2l6ZXI7Ci0g
ICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCkgOiByZXNp
emVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOworICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVy
ZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5t
aW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKICAgICByZXR1
cm4gbG9jYWxQb2ludCAtIHJlc2l6ZUNvcm5lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBkY2NlY2NmZDUwMGVh
MGViNzExZTA3OTg0YjM4MTQxZDg3YTZkNjFkLi41Njg0MDhkOGE4MzA2ZWY3NDhkOWM5Yjc4Yzkw
MDIxMDUxMTEyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIzMCw3ICsyMjMwLDcgQEAgRmxvYXRQb2ludCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKICAgICBhdXRv
JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAKICAgICByZXR1cm4gRmxv
YXRQb2ludCgKLSAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkg
OiAwLAorICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSA6IDAsCiAgICAg
ICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIoZnJhbWVWaWV3LnNjcm9s
bFBvc2l0aW9uKCksIGZyYW1lVmlldy50b3BDb250ZW50SW5zZXQoKSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5k
ZXggZGFiNWVhOTg0ZTcyZTFhNWRmYmZiMTE0OThjN2I3MjhmYjk5ZjdhZi4uMmJiNWE1NTI4OWY2
NDg5ODAxNGY3NDVlYjRlMWIxMzAxMGE1MTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAtMjA3LDcgKzIwNyw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lz
dGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNl
cnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNSwxMiArMjE1LDEyIEBAIGJvb2wgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0CiAjZWxzZQogICAgIHN3aXRjaCAoc2V0dGluZ3MoKS51c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5KCkpIHsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k6
OkNvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeTo6U3lzdGVtOgogICAgICAgICByZXR1cm4gc2V0dGluZ3MoKS5zeXN0ZW1MYXlvdXRE
aXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEw7CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggOWM5NjZmN2ViMmYwMjdkNjMw
ZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEyZDc4YTUzZGRkNWM2YWYzZDdmZjhk
YzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVjdHM+IGxheWVyUmVwYWludFJlY3Rz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1MDJhYjk1ZWI4NDk5ZTBhZDY4NTIxNDlm
MDFmMTlhM2MxYTQxLi41NzgwNjU2ZTk0NDVkN2VhZWNkMTM2MDdkNDgyY2U5YmY3ZGIwNTQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5
ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5z
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIG1f
bGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9
CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTY1NCw3ICs2NTQsNyBAQCBSZW5k
ZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6
b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZlTm9uT3ZlcmxheUhvcml6b250YWxT
Y3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9oQmFyLmdldCgpKTsKICAgICBib29s
IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIo
bV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBw
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlci5zdHlsZSgpLnJl
c2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNjcm9sbGJhcnNBdm9pZENvcm5lciA9
IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgJiYgaGF2ZU5vbk92ZXJsYXlWZXJ0
aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmIChoYXZlTm9uT3ZlcmxheUhvcml6b250
YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikpOwogCkBAIC0x
MDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVT
Y3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwogCiAgICAgaW50IHNjcm9sbGFibGVMZWZ0
T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkp
OwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisg
ICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSB8fCB3cml0aW5nTW9k
ZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCkKICAgICAgICAgc2Nyb2xsYWJsZUxlZnRP
dmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgaW50IHNjcm9sbGFibGVU
b3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3AoKSAtIGJveC0+Ym9yZGVyVG9wKCkp
OwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdywg
LXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpAQCAtMTEwNCw3ICsxMTA0LDcgQEAgdm9pZCBSZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKQogICAg
ICAgICBpZiAoYm94LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3IoKSkKICAg
ICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGhhc1ZlcnRpY2FsT3ZlcmZsb3cpOwog
Ci0gICAgICAgIGlmIChhdXRvVmVydGljYWxTY3JvbGxCYXJDaGFuZ2VkICYmIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKGF1dG9WZXJ0aWNh
bFNjcm9sbEJhckNoYW5nZWQgJiYgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
KQogICAgICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdpbigpOwogCiAgICAgICAgIG1fbGF5ZXIu
dXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKQEAgLTEzNDgsNyArMTM0OCw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6ZXJTaXplID0gcmVzaXplQ29ybmVy
SW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUoKTsKICAgICAgICAgY29udGV4dC50
cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29ybmVyUmVzaXplclNpemUud2lkdGgo
KSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNvcm5lclJlY3QuaGVpZ2h0KCkgLSBj
b3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRT
aXplKC0xLjAsIDEuMCkpOwpAQCAtMTUwOSw3ICsxNTA5LDcgQEAgYm9vbCBSZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21l
bnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKTsKIAogICAgIGF1
dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3QgSW50UmVjdCYgZnJhZ21lbnRCb3Vu
ZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0gICAgICAgIGlmIChzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAgaWYgKHNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICAgICAgSW50U2l6ZSBvZmZz
ZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWluWE1heFlDb3JuZXIoKSAtIHJlc2l6
ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAgICByZXR1cm4gSW50UmVjdCB7IGZy
YWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZzZXRGcm9tQm90dG9tTGVmdCAtIElu
dFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCByZXNpemVyUmVjdC5zaXplKCkgfTsK
ICAgICAgICAgfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHkK
ICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRzSG9yaXpvbnRhbFNjcm9sbGJhcik7
CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNWZXJ0aWNhbFNjcm9sbGJhcik7CiAK
LSAgICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciB8
fCAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHlsZSAmJiBib3gtPnN0eWxlKCkuc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICE9IG9sZFN0eWxlLT5zaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpKQorICAgIGlmIChoYWRWZXJ0
aWNhbFNjcm9sbGJhciAhPSBuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyIHx8IChuZWVkc1ZlcnRpY2Fs
U2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIGJveC0+c3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgIT0gb2xkU3R5bGUtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSkpCiAgICAgICAgIGNvbXB1dGVTY3JvbGxPcmlnaW4oKTsKIAogICAgIC8vIFdp
dGggbm9uLW92ZXJsYXkgb3ZlcmZsb3c6c2Nyb2xsLCBzY3JvbGxiYXJzIGFyZSBhbHdheXMgdmlz
aWJsZSBidXQgbWF5IGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5kZXggMjgyNDU1MTRkY2FiOGNjMzg0
YTUxNTZiZDQ5ODNlN2NkYTRiNDZlOC4uYWU0NzE5OTM3MjNkZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3
ZTc1NmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
U2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgIGJvb2wg
dXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHVzZXNBc3lu
Y1Njcm9sbGluZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzUmVu
ZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBpbnZhbGlk
YXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggOTUwYjFkN2UzMWQy
YzBjZDg0NzdkZDFhYjZhMzhjNTBmNTcyZGY5Zi4uM2VhN2I3MDI0YWVhOGNiOWY4NTI4MGI1ZDhm
NjVhNDlkOTBlODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIExheW91dFVuaXQgUmVuZGVyTGlzdEJveDo6YmFzZWxp
bmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBib29sIGZpcnN0CiBMYXlvdXRS
ZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJlY3QoY29uc3QgTGF5b3V0UG9pbnQm
IGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAgICBMYXlvdXRVbml0IHggPSBhZGRp
dGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCk7Ci0gICAgaWYg
KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCisg
ICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZCYXIpCiAg
ICAgICAgIHggKz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB5ID0g
YWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSArIGl0ZW1I
ZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwogICAgIHJldHVybiBMYXlvdXRSZWN0
KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkpOwpAQCAtMzYzLDcgKzM2Myw3IEBA
IHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFtX3ZCYXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0
ID0gcGFpbnRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0
aCgpKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zmc2V0LnkoKSArIGJvcmRlclRvcCgp
OwogICAgIExheW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5p
dCBoZWlnaHQgPSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgp
KTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxpc3RCb3g6OmlzUG9pbnRJbk92ZXJm
bG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExheW91dAogICAgIGlmICgh
bV92QmFyIHx8ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0
LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3Jk
ZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7Cisg
ICAgTGF5b3V0VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHkgPSBhY2N1bXVsYXRl
ZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFy
LT53aWR0aCgpOwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSBib3Jk
ZXJUb3AoKSAtIGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkgKzQ5MSw5IEBAIGludCBSZW5kZXJM
aXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpCiAgICAg
ICAgIHJldHVybiAtMTsKIAogICAgIGludCBzY3JvbGxiYXJXaWR0aCA9IG1fdkJhciA/IG1fdkJh
ci0+d2lkdGgoKSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRp
bmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBi
b3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAg
aWYgKCFzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNl
dC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgo
KSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJX
aWR0aCkpCisgICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYg
KG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSB8fCBvZmZzZXQu
d2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkgLSBzY3Jv
bGxiYXJXaWR0aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBuZXdPZmZzZXQgPSAo
b2Zmc2V0LmhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRkaW5nVG9wKCkpIC8gaXRlbUhlaWdo
dCgpICsgbV9pbmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAwLDE0IEBAIGJvb2wgUmVuZGVyTGlz
dEJveDo6aXNBY3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJMaXN0Qm94OjppbnZhbGlkYXRlU2Ny
b2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAgIHNjcm9sbFJlY3QubW92ZShzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3
aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7
CisgICAgc2Nyb2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndp
ZHRoKCksIGJvcmRlclRvcCgpKTsKICAgICByZXBhaW50UmVjdGFuZ2xlKHNjcm9sbFJlY3QpOwog
fQogCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWlu
aW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xs
YmFyUmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwotICAg
IGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxi
YXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgp
IC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgp
OwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwogICAgIHJldHVy
biB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXco
dGhpcywgcmVjdCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpj
b252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3IK
IEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xs
YmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0
KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJlbnRSZWN0KTsKLSAgICBpbnQg
c2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndp
ZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNj
cm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAg
ICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiBy
ZWN0OwpAQCAtODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2NyCiBJbnRQb2lu
dCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkg
Y29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIGludCBz
Y3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
ID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lk
dGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Ny
b2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAg
IHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4gdmll
dygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRoaXMs
IHBvaW50KTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzYwogSW50
UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFy
KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQp
IGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVy
dEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywgcGFyZW50UG9pbnQpOwotICAgIGlu
dCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIu
d2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
c2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwog
ICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVy
biBwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDIx
YmJhYTI3ODA4NjA5ODFlMTgyYWYwZjk5MjZjNGYyMTdlMTM0MmUuLjlmOTNkMThlNDFkYzljNzNi
OWU1OTYyOTU5ZTYwNmE1NWVmMGFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludEl0
ZW1CYWNrZ3JvdW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgaW50IGxpc3RJbmRl
eCk7CiAgICAgdm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlvbigpOwogCi0gICAgYm9vbCBzaG91
bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1
cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25M
ZWZ0KCk7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwogICAgIGJv
b2wgbV9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZhZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4
ODNiOTVjYzFhZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJhYTU2M2ViYTI1ZGQwNTRmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQ3Myw3ICs0NzMsNyBA
QCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3Qm
IHJlcGFpbnRSZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQgdGhlIFJlbmRlcmVyIHRoYXQgY29u
dGFpbnMgdGhlIGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlvbiBtdXN0IGFjY291bnQgZm9yIGEK
ICAgICAgICAgLy8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBleGlzdHMpLgogICAgICAgICBGcmFt
ZVZpZXcmIGZyYW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygpOwotICAgICAgICBpZiAoZnJhbWVW
aWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZp
ZXcudmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYgKGZyYW1lVmlldy5zaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFy
KCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShMYXlvdXRTaXplKGZyYW1lVmlldy52
ZXJ0aWNhbFNjcm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCksIDApKTsKIAogICAgICAgICBvd25l
ckJveC0+cmVwYWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZWRmMTcwYTk2OWE5MDdlOTk4
MzY5MmViOTg4NTg5MDJlN2IzNjM1OC4uMDliODNjOGUzMDM5ZDNjYWZlMzc3MTMyM2EyYjQwNTU1
MTAwYzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC0yNTgxLDkgKzI1ODEsOSBAQCBmbG9hdCBSZW5kZXJTdHlsZTo6b3V0bGluZU9m
ZnNldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3VuZERhdGEtPm91dGxpbmUub2Zmc2V0
KCk7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFpc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKTsKKyAgICByZXR1cm4gKCFpc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkgfHwgd3Jp
dGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQ7CiB9CiAKIFZlY3RvcjxQYWlu
dFR5cGUsIDM+IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9yUGFpbnRPcmRlcihQYWludE9yZGVy
IG9yZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApp
bmRleCA5NzMwMmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0NWY1ZWEzZDg0Li4zYmEwMDQwZjJk
MDA5NjBlNTI3MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcgKzgyOSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAot
ICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0
OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Owog
CiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAgIFRyYWlsaW5nV29yZCB0cmFpbGlu
Z1dvcmQoKSBjb25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6OkF1dG87IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKaW5kZXggNTdj
ZjA4ZmRkNjc2ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThjMi4uZWVkM2E4NGY0MjljMjg3ZGE2
ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBXZWJD
b3JlOjpJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBj
b25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQ
ZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAg
IGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1MThiZDVmOTAwZWMwZTFkOTQ0ZmVi
NTc0ODI5NzMzOTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4NTQzZmRmNDJmMjU4NDAyMjA1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
aApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29u
dmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJh
ciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QgZmluYWw7
CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xs
YmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
YXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNP
bk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBmaW5hbDsKLSAgICBib29s
IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgU3RyaW5nIGRlYnVnRGVz
Y3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBERlBsdWdpbiBmdW5jdGlvbnMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNmNkZmE1YTI4NDdlNjNlMWMwOWQ2NDgwOTQyNWU5NGJkMTQxZjVmOC4uNTg0ZTNmNWIw
NmJkZWU1OTBkMzg1OTAxNzlmM2I1MWJlMjVmOWE5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDIxLTA0LTEyICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBp
biBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gv
Y2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvdmVy
dGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3JlcGFp
bnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9z
Y3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMt
aW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNj
cm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMS0w
NC0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzU3OTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCBjOWQwZTc3YjMzZWU4NTZmZGYxNjAyNGI5MWZiODRlMzU5MWU4NGRlLi5hMDU3NjM1
YWU1ZWFmN2Q5MGM4YjQyYzEzOTIwMDgzNjU4OWIwZjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0xMiAgQ2FtZXJvbiBNY0Nvcm1hY2sg
IDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMg
YXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRv
cC1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDQtMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc1NzkzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggODZhYjZkM2Y2ZDMzOWNjZjM0N2JmZjFmMDI3MDQ0YTI1NzAw
NjNmMi4uYTBiNTcyNDVmZTc3YWU2NmFiNjc2Yzk0NDQwNDlhZDRjYThkMDY1NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00ODcwLDYgKzQ4NzAsMTAgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDIuaHRtbCBbIEltYWdlT24K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNj
b3BpbmctMDAzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3BpbmctMDA0Lmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIAorIyBUZXN0cyB0aGF0IGZhaWwgYmVjYXVzZSB0aGV5IGFzc3VtZSBh
IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAgZWxlbWVu
dHMgd2lsbCBiZSBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlCit3ZWJraXQub3JnL2IvMjI0MzU3IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3Npemlu
Zy1vcnRob2ctdnJsLWluLWh0Yi0wMTMueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCit3ZWJraXQu
b3JnL2IvMjI0MzU3IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZp
ZXcvY3Nzb20tZ2V0Qm91bmRpbmdDbGllbnRSZWN0LXZlcnRpY2FsLXJsLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KKwogIyBAY291bnRlci1zdHlsZSByZWYgdGVzdHMgdGhhdCBjdXJyZW50bHkg
ZmFpbAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5
bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1zdHlsZXMtMDA2Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0
eWxlcy9hcm1lbmlhbi9jc3MzLWNvdW50ZXItc3R5bGVzLTAwNy5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZs
b3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxv
dy1leHBlY3RlZC5odG1sCmluZGV4IDYyNTQ3MmY0N2YxZGZkMTYxMmY1YmU0OGIxZjFjOTQ3YmI4
MzVlYTAuLjBmNmFlODVhYzY2MGJhODFkZDI1YWM4NTFiOGUxM2RjNmM2MGU0OTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5o
dG1sCkBAIC0yOCw2ICsyOCwxMCBAQAogcCB7CiAgICAgbWFyZ2luLWJvdHRvbTogMzBweDsKIH0K
KworLnRvcFJpZ2h0IHsKKyAgICBkaXJlY3Rpb246IHJ0bDsgIC8qIHBsYWNlIHNjcm9sbGJhcnMg
b24gdGhlIExIUyAqLworfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50
LWV4cGVjdGVkLnR4dAppbmRleCAwMDE1NTg5ZDc0ZDliMTk1NzIxNWUyMzBkZDA3MmYwODRlOTUw
YmFlLi44MmE0ZmVhYWEyMzM1ODM5Mjg5OTJjNzZmOGNkZTIxMmVjODY5ZDU2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ct
cGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIChyZXBhaW50IHJlY3RzCi0gIChy
ZWN0IDI5IDI5IDEwMCAxMDApCisgIChyZWN0IDQ0IDI5IDEwMCAxMDApCiApCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1l
LWV4cGVjdGVkLnR4dAppbmRleCA3N2FiZmJjZDc4MTE3ZTg5ZWZjMzEzNjdmM2MzZmRhYWQ3NmI4
NDFmLi5iNzU5MTQxNjRkODE4YzM4M2JkMWUzMjM0NTQyOTEzNzQ4NmIzNDVhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNh
bWUtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3Qg
MjkgMjEgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjEgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRp
b24tZHluYW1pYy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1y
bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmI0MTZiNDcyN2EwYjhiYWVlOWE2NDUxYWI3OGI1ZWUzZmNmNTk0NTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5p
dGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGly
ZWN0aW9uOiBydGw7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5
MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9k
aXY+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjog
bHRyOyBvdmVyZmxvdzogc2Nyb2xsOyBtYXJnaW4tdG9wOiAxZW07Ij4KKyAgPGRpdiBzdHlsZT0i
d2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwv
ZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJs
LXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjYwZjcwNmM5NjNmNjBjMWRkZDcyYjhkZTI2ODg4MWExMmU2MmQzYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xs
YmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxkaXYgaWQ9b25lIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAw
cHg7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10Yjsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8
ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlk
IGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9dHdvIHN0eWxlPSJ3aWR0aDogMTAwcHg7
IGhlaWdodDogMTAwcHg7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IG92ZXJmbG93OiBzY3Jv
bGw7IG1hcmdpbi10b3A6IDFlbTsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdo
dDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxzY3Jp
cHQ+Citkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKK29uZS5zdHlsZS53cml0aW5nTW9kZSA9ICJ2
ZXJ0aWNhbC1ybCI7Cit0d28uc3R5bGUud3JpdGluZ01vZGUgPSAiaG9yaXpvbnRhbC10YiI7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Ny
b2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg4OGI2Y2E0OWIyMWU0MjIxNTA5ODA1NmFhNWIzMzllMzE0OGU2NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJh
cnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVj
dGlvbjogcnRsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJw
eDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJz
LWluaXRpYWwtcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwt
c2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdhMGJmMDgzMjkw
YzNlNTU1ZDE1ODYyMjg0N2NjYTRhNzk2ZGYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwK
QEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNj
cm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRl
cjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRp
b24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMTcwYjgwZGQwYjhjYTk3ZmY1NWQxZGJkZTFi
NDBmZmE2NDdlYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1RoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJh
ciBvbiB0aGUgcmlnaHQuCisKKworCisKK1RoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2
ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgbGVmdC4KKworCisKKworIFBBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3Np
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFy
LXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZhMzlkYTY4ZTI0ZjM3ODFjOWYzN2EyYWYwZTFk
MTRiZjU4NjZjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorc2VjdGlvbiA+IGRpdiwgc2VjdGlvbiA+IGRpdiB7CisgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgaGVpZ2h0OiAxMDBweDsKKyAgd2lkdGg6IDEwMHB4Owor
ICBvdXRsaW5lOiAxcHggc29saWQgYmxhY2s7CisgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgb3Zl
cmZsb3cteTogc2Nyb2xsOworICBtYXJnaW46IDEwcHggMTBweCAwIDA7Cit9CisKKy5zcXVhcmUg
eworICB3aWR0aDogMjBweDsKKyAgaGVpZ2h0OiAyMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBv
cmFuZ2U7Cit9CisKKy5sdHIgeyBkaXJlY3Rpb246IGx0cjsgfQorLnJ0bCB7IGRpcmVjdGlvbjog
cnRsOyB9CisuaC10YiB7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YjsgfQorLmgtYnQgeyAt
d2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsgfQorLnYtcmwgeyB3cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsOyB9Cisudi1sciB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0K
Kzwvc3R5bGU+Cis8c2VjdGlvbiBjbGFzcz0icmlnaHQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRh
aW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJpZ2h0LjwvcD4K
KyAgPGRpdiBjbGFzcz0iaC10YiBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3Rl
ZD0iMCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgbHRyIj48ZGl2IGNsYXNzPSJz
cXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxy
IGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4K
KyAgPGRpdiBjbGFzcz0idi1sciBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3Rl
ZD0iMCI+PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGNsYXNzPSJsZWZ0Ij4K
KyAgPHA+VGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xs
YmFyIG9uIHRoZSBsZWZ0LjwvcD4KKyAgPGRpdiBjbGFzcz0iaC10YiBydGwiPjxkaXYgY2xhc3M9
InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJo
LWJ0IHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9k
aXY+CisgIDxkaXYgY2xhc3M9InYtcmwgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhw
ZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBydGwiPjxkaXYgY2xh
c3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorPC9zZWN0aW9uPgor
Cis8cHJlIGlkPSJyZXN1bHRzIj5GQUlMPC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKK30KKwor
bGV0IHRleHQgPSAiIjsKK2ZvciAobGV0IHNxdWFyZSBvZiBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCIuc3F1YXJlIikpIHsKKyAgICBsZXQgYWN0dWFsID0gc3F1YXJlLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpLnggLSBzcXVhcmUucGFyZW50Tm9kZS5vZmZzZXRMZWZ0OworICAgIGxldCBleHBl
Y3RlZCA9IHNxdWFyZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQiKTsKKyAgICBpZiAoYWN0
dWFsICE9IGV4cGVjdGVkKSB7CisgICAgICAgIHRleHQgKz0gYFBvc2l0aW9uIG9mIHNxdWFyZSBp
biAnJHtzcXVhcmUucGFyZW50Tm9kZS5jbGFzc05hbWV9JyAtIGV4cGVjdGVkICR7ZXhwZWN0ZWR9
LCBnb3QgJHthY3R1YWx9XG5gOworICAgIH0KK30KK3Jlc3VsdHMudGV4dENvbnRlbnQgPSB0ZXh0
IHx8ICJQQVNTIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJs
b2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQK
aW5kZXggNjhkOGVkN2M0MzA3NjM2M2VmMjM1M2NmZWFkMjE0YTY3NGVkNTJhYi4uZDZiNzc5NTcy
YjY0MzE5NmNjYjlkN2RlZGJjYTIwMTBlOTE4N2UxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAt
aW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2st
ZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZv
ciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3
cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50
IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdv
dCAzMDAKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUg
d2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVh
bHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAorRkFJ
TCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3Jv
bGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25z
IGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBidXQgZ290IDE2NQogRkFJTCBTbmFwcyBjb3Jy
ZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5
IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMAogRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZl
cnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5k
JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVk
IDMwMCBidXQgZ290IDAKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtNTAwIGJ1dCBnb3Qg
LTQ4NQotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWdu
cyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBj
b3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0
YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBl
eHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRp
Y2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBh
bGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2
NSBidXQgZ290IDMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcg
d2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVh
bHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAwCitGQUlMIFNu
YXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGln
bjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBv
biB5IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9w
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQKaW5kZXggNWJkM2Jj
NzFkZDAzYWNlMmNlYzdhMzQ0MGE3YmRjNmRkNDI0NjZiOC4uNTEyMTZiYjlhOTkwYTA3NTZhZmVi
YjBkNGEwZGIzYjBjYTU2ODFmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0CkBAIC0xMSw2ICsxMSw2IEBA
IFBBU1Mgd3JpdGluZy1tb2RlOmhvcml6b250YWwtdGI7IGRpcmVjdGlvbjpsdHIKIFBBU1Mgd3Jp
dGluZy1tb2RlOmhvcml6b250YWwtdGI7IGRpcmVjdGlvbjpydGwKIFBBU1Mgd3JpdGluZy1tb2Rl
OnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246bHRyCiBQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1s
cjsgZGlyZWN0aW9uOnJ0bAotRkFJTCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlv
bjpsdHIgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0x
NjUgKy8tIDAuNSBidXQgZ290IC0xNTAKLUZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBk
aXJlY3Rpb246cnRsIGFzc2VydF9hcHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBleHBl
Y3RlZCAtMTY1ICsvLSAwLjUgYnV0IGdvdCAtMTUwCitQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNh
bC1ybDsgZGlyZWN0aW9uOmx0cgorUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVj
dGlvbjpydGwKIAo=
</data>
<flag name="commit-queue"
          id="446048"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425934</attachid>
            <date>2021-04-13 17:25:33 -0700</date>
            <delta_ts>2021-04-13 22:42:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210414102531.patch</filename>
            <type>text/plain</type>
            <size>60501</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uYmJiOGNlZTg0ZWZmOWVkNjI0NTA5YTZlYWYwYzI4
NzhiNzcxODE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTEyICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFJl
bW92ZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTM2YTNjMjQ5
ZmQ4YmY5Y2FkZDg5NzQzYzYxYWU3ODNjOTBlNTk5Ny4uN2ZlNTMwZmUwZDk1YzY4MDlkNjJlMTQ3
NzFiNTRlMGIzYzRmYTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0xMiAg
Q2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZl
cnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRp
bmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTEyICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgdGhlIFdlYkF1dGhuIGNv
bXBhdGlibGUgbW9kZSB0byBhbHdheXMgc2hvdyBVSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDI3NTkwOGRkMWRiNjYzM2VhNzY1YmRlZjdlM2U1NjkzMGFlYjQ2ZDMuLmM0
ZWJlMjYwNWJjMTY5NWQ1MGRlNWUwMzZkNzQ1NGE5YWVlMjUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTE1MTUsNyArMTUxNSw3IEBAIE9wdGlvbmFsPEN1cnNvcj4g
RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBi
b29sIHNoCiAgICAgICAgICAgICBhdXRvJiBsYXllclJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdD4oKnJlbmRlcmVyKTsKICAgICAgICAgICAgIGluUmVzaXplciA9IGxh
eWVyUmVuZGVyZXIubGF5ZXIoKS0+aXNQb2ludEluUmVzaXplQ29udHJvbChyb3VuZGVkSW50UG9p
bnQocmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogICAgICAgICAgICAgaWYgKGluUmVzaXplcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFz
dFJlc2l6ZUN1cnNvcigpOworICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNv
cigpIDogc291dGhFYXN0UmVzaXplQ3Vyc29yKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
KGVkaXRhYmxlIHx8IChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNUZXh0KCkgJiYgbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSkpICYmICFpblJlc2l6ZXIgJiYgIXJlc3VsdC5zY3JvbGxiYXIoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjNTkxN2ZmOWFhN2MyMmU5MGU1NjcxMWY4
NGJlMTEyNDk0N2M4NjU5Li4wMjE3ZDM0MmJmOGYzYmNjMWI5OGE0ZTlmNTU0OThkNWIyN2M1MTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01NTUzLDkgKzU1NTMsOSBAQCBJbnRT
aXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
IH0KIAotYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAorYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmll
dygpLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0
dXJuIHJlbmRlclZpZXcoKSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgRnJhbWVWaWV3JiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDZh
ZTNhNDcxMTBjNTc0NzAzMzBmZjk1OWNlM2M4ZmIzZjNmNjVjYi4uZjRhNjA3OGU5MjY3YWM0M2Zh
NDMxZjVmOWVjODY3ZTk5MjEyZTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NTUs
NyArNjU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogICAgIHZvaWQgaGlk
ZSgpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4
IDhlNmIzYWFiNTk4YTM3NGM3MTMyNDM2ZjhiMjE0YjFhODNjZjY1NGEuLmVkZjA1NDg2YjE2OTMw
ZWVmYWFlYmUwM2U1MDJmMTA1NTIwMzRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCkBAIC00MjIsNyArNDIyLDcgQEAgU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6
YWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShjb25zdCBTY3JvbGxQb3NpdGlvbiYKIFNj
cm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRv
Vmlld09yaWdpbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkgLSBJbnRT
aXplKAotICAgICAgICBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lk
dGgoKSA6IDAsCisgICAgICAgIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAm
JiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0
aCgpIDogMCwKICAgICAgICAgaGVhZGVySGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoVG9wQ29u
dGVudEluc2V0VHlwZTo6V2ViQ29yZU9yUGxhdGZvcm1Db250ZW50SW5zZXQpKTsKIH0KIApAQCAt
NzMyLDcgKzczMiw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgZGVzaXJlZFBvc2l0aW9uKQogICAgIGlmIChtX2hvcml6b250YWxTY3Jv
bGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudFdpZHRoID0gdmlzaWJsZVdpZHRoKCk7CiAgICAg
ICAgIEludFJlY3Qgb2xkUmVjdChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsK
LSAgICAgICAgSW50UmVjdCBoQmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXIt
Pm9jY3VwaWVkV2lkdGgoKSA6IDAsCisgICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICAgICAgaGVpZ2h0
KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAgICAgd2lkdGgo
KSAtIChtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRX
aWR0aCgpIDogMCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgp
KTsKQEAgLTc1MSw3ICs3NTEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV92ZXJ0aWNh
bFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgp
OwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0
KCkpOwotICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lk
dGgoKSwKKyAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICB0b3BDb250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxT
Y3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNl
dCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+b2Nj
dXBpZWRIZWlnaHQoKSA6IDApKTsKQEAgLTExNzksMTQgKzExNzksMTQgQEAgSW50UmVjdCBTY3Jv
bGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QKICAgICBpbnQgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyID0gaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKTsKIAogICAgIGlmIChtX2hv
cml6b250YWxTY3JvbGxiYXIgJiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3JvbGxi
YXItPndpZHRoKCksCisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhl
aWdodCgpLAogICAgICAgICAgICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSwKICAgICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKICAg
ICB9CiAKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhciAmJiBoZWlnaHRUcmFja2VkQnlTY3Jv
bGxiYXIgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29y
bmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAg
ICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwK
ICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpICsgdG9wQ29udGVudElu
c2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAg
ICAgICAgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVp
Z2h0KCkpKTsKQEAgLTE1MzgsNyArMTUzOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c3R5bGVBbmRS
ZW5kZXJUcmVlRGlkQ2hhbmdlKCkKIEludFBvaW50IFNjcm9sbFZpZXc6OmxvY2F0aW9uT2ZDb250
ZW50cygpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcmVzdWx0ID0gbG9jYXRpb24oKTsKLSAgICBp
ZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGlj
YWxTY3JvbGxiYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKQogICAgICAgICByZXN1bHQubW92ZShtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAzNTg3MTc5Y2RiN2Y2
NzkzOThhN2M4NzczMTJlZDQ5N2MxNmZlOGQ5Li5kNDgxZjdlZGNiZmJmMzNiZGFiNjYzNjc3Yzhm
ZDUwYjczOGFmOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgK
QEAgLTM0Miw3ICszNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNNb2NrU2Ny
b2xsQW5pbWF0b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBs
b2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgPSAwOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVz
Y3JpcHRpb24oKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcAppbmRleCA0YjcyMTU0YmEx
ZTJiN2MwNjFlOWNlYjQ1OWY0Y2M1NTBlYWU1ZDQyLi44N2JhNGFkOTU1ZThmNDQ4NWVhY2VlOTc5
MzdkOWMzOGJjYTNmZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdh
aXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
cmFwaGljc0NvbnRleHQmIGdyYXBoaWMKIAogICAgICAgICBJbnRSZWN0IGZyYW1lID0gcmVjdDsK
ICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSkKICAgICAgICAgICAgICAgICBmcmFtZS5tb3ZlKGZyYW1lLndpZHRoKCkgLSBob3ZlcmVkU2Ny
b2xsYmFyQm9yZGVyU2l6ZSwgMCk7CiAgICAgICAgICAgICBmcmFtZS5zZXRXaWR0aChob3ZlcmVk
U2Nyb2xsYmFyQm9yZGVyU2l6ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTQwLDcgKzE0MCw3IEBA
IGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwg
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAgICAgSW50UmVjdCB0aHVtYiA9IHJlY3Q7CiAgICAg
aWYgKHNjcm9sbGJhci5ob3ZlcmVkUGFydCgpID09IE5vUGFydCAmJiB1c2VzT3ZlcmxheVNjcm9s
bGJhcnMoKSkgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEo
KS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoaG92ZXJlZFNjcm9sbGJh
ckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAob3ZlcmxheVRo
dW1iU2l6ZSArIHRodW1iQm9yZGVyU2l6ZSkgKyBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwg
dGh1bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGJvb2wgU2Ny
b2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3ND
b250ZXh0JiBncmFwaGljCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2Ny
b2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAg
IGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAg
ICAgIHRodW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1i
U2l6ZSAvIDIpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJC
b3JkZXJTaXplKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3Zl
KHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSwgdGh1
bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggZmU1NTU4YzM1ODQ3YTg3Y2YyNzE2MDgx
NTdmM2VmZWNkNjg0YTdiMC4uMjg5NmM3ZjNiMGQyNzhkYjA5YjgwMDkzNDczZmI2YmZhOGZjMjEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1l
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGsuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFy
UGFydFN0YXRlRmxhZ3MoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKIHN0YXRp
YyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZSB3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKFNjcm9s
bGJhciYgc2Nyb2xsYmFyLCBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclN0YXRlKQogewogICAgIGlm
IChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVh
KCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgcmV0
dXJuIHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVt
ZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJMZWZ0IDogUmVuZGVyVGhlbWVTY3Jv
bGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9yTGVmdDsKICAgICAgICAgcmV0dXJu
IHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJSaWdodCA6IFJlbmRlclRoZW1lU2Nyb2xs
YmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvclJpZ2h0OwogICAgIH0KQEAgLTM4MCw3
ICszODAsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludChTY3JvbGxiYXImIHNjcm9s
bGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbgogICAgIC8vIGRyYXdpbmcgdGhlIGlu
ZGljYXRvciB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgcmVjdGFuZ2xlIHRvIGl0cyBhY3R1YWwgc2l6
ZSBpbiBpbmRpY2F0b3IgbW9kZS4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0g
VmVydGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBwcmVmZXJy
ZWRTaXplLndpZHRoKCkpIHsKLSAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKCFzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoc3Rk
OjphYnMocmVjdC53aWR0aCgpIC0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSwgMCk7CiAgICAgICAg
ICAgICBjb250ZW50c1JlY3Quc2V0V2lkdGgocHJlZmVycmVkU2l6ZS53aWR0aCgpKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
Lm1tCmluZGV4IGJkMDYxNWYyMmQzNTg2MjA0Y2JiYTBlNzhiMmEyNDI3ZmJhMTdmMGEuLjUzOTYx
YTdiNzIwNDAxZjcyZTIyNDVjYmI0ZTIxYjc2Nzk1YWQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw3ICsxNTksNyBA
QCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXIm
IHNjcm9sbGJhcikKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xs
ZXJJbXAgPSBwYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgQVNTRVJUKHNjcm9s
bGVySW1wKTsKLSAgICBzY3JvbGxlckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0g
c2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQg
OiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsKKyAgICBzY3JvbGxl
ckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25MZWZ0VG9SaWdodDsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCA3
ZDU3ZGFhOWNkZmE4MWM0ZTVkNzU3YTZjYjY1YzUwNDQ0Mzk3NWUxLi43MmUwZTVjZjg4ZjUyZWRm
MzMwMTllYTE2OWNiMmIxMzYxYmY2Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXpl
IGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFy
ZWFCb3VuZGluZ0JveChib29sKiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Zm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCBieSB0aGUgb3ZlcnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVB
cmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50IG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBiYjRkZjdjYzg3OGQxYWRmNmVlNDU5MWY5ZmQ1ZjNm
ZjQzNDRkYzBhLi4yNjA2ZDUyZTc2MThmZDY5NTEzNDEwMDZkYmFlYjhmZTg0NDlmY2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5MjMsNyArMTkyMyw3
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQoKSBjb25zdAogTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZy
YWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsTGVmdE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0
T2Zmc2V0OwpAQCAtMTkzNCw3ICsxOTM0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9n
aWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmEKIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQoUmVuZGVy
RnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVuaXQgbG9n
aWNhbFJpZ2h0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwot
ICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGxvZ2ljYWxSaWdodE9mZnNldCArPSBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKTsKICAgICBpZiAoIWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAyMmYzZmEwNmU1ZDRiMzhmNDQyZWMyODQwNTdkNzE3
MWNhNmI1NTNjLi4zNmMxOTFkMDVhMjg4MzI2OTdlNjA1YjkwZThmN2M5MTdlNGYzZGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtODgzLDcg
Kzg4Myw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjptYXJnaW5PZmZzZXRGb3JTZWxm
Q29sbGFwc2luZ0Jsb2NrKCkKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2Fs
TGVmdFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgQXBwbHlMYXlvdXREZWx0YU1v
ZGUgYXBwbHlEZWx0YSkKIHsKICAgICBMYXlvdXRVbml0IHN0YXJ0UG9zaXRpb24gPSBib3JkZXJT
dGFydCgpICsgcGFkZGluZ1N0YXJ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHN0YXJ0UG9z
aXRpb24gKz0gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IC0xKSAqIHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsQXZhaWxhYmxlTG9n
aWNhbFdpZHRoID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpICsgYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NTc2ZWU1ZGNjOWEzZTZkZjdlNTFiZTllMmIyNjJmMmIyMDA3MzJiNC4uOGZjYmI1OWU2ZWJiY2Ix
MGNhMzU2NmQyOWRlMWJmZWQ2YzZlYmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTcyMiw3ICs3MjIsNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJCb3g6OnJvdW5k
ZWRCb3JkZXJCb3hSZWN0KCkgY29uc3QKIExheW91dFJlY3QgUmVuZGVyQm94OjpwYWRkaW5nQm94
UmVjdCgpIGNvbnN0CiB7CiAgICAgYXV0byB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+
dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwotICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGlj
YWxTY3JvbGxiYXJXaWR0aCA6IDA7CisgICAgTGF5b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIg
PSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoIDogMDsKIAogICAgIHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIG9mZnNl
dEZvclNjcm9sbGJhciwgYm9yZGVyVG9wKCksCiAgICAgICAgIHdpZHRoKCkgLSBib3JkZXJMZWZ0
KCkgLSBib3JkZXJSaWdodCgpIC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCwKQEAgLTczNiw3ICs3
MzYsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y29udGVudEJveFJlY3QoKSBjb25zdAogCiBM
YXlvdXRQb2ludCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbigpIGNvbnN0CiB7Ci0gICAg
TGF5b3V0VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0
VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CiAgICAgcmV0dXJuIHsgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhclNwYWNlLCBib3JkZXJUb3AoKSArIHBhZGRp
bmdUb3AoKSB9OwogfQogCkBAIC0xOTY0LDcgKzE5NjQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJv
eDo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlckZy
YWdtZQogCiAgICAgLy8gU3VidHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYgd2UgaGF2ZSB0aGVtLgog
ICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxh
YmxlQXJlYSgpIDogbnVsbHB0cikgewotICAgICAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY2xpcFJlY3QubW92ZShzY3JvbGxhYmxlQXJl
YS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpLCAwKTsKICAgICAgICAgY2xpcFJl
Y3QuY29udHJhY3Qoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZh
bmN5KSwgc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5
KSk7CiAgICAgfQpAQCAtMzc1OCw3ICszNzU4LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQ
b3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUK
ICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCArPSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAg
aWYgKGlzPFJlbmRlckJveD4oY29udGFpbmVyQmxvY2spKSB7CiAgICAgICAgIGF1dG8mIGNvbnRh
aW5pbmdCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKTsKLSAgICAgICAg
aWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKQorICAgICAgICBpZiAoY29udGFpbmluZ0JveC5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIGNv
bXB1dGVkVmFsdWVzLm1fcG9zaXRpb24gKz0gY29udGFpbmluZ0JveC52ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgfQogICAgIApAQCAtNDk3OSw3ICs0OTc5LDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0KCkgY29uc3QKICAgICBmbGlwRm9yV3JpdGlu
Z01vZGUocmVjdCk7CiAgICAgLy8gU3VidHJhY3Qgc3BhY2Ugb2NjdXBpZWQgYnkgc2Nyb2xsYmFy
cy4gVGhleSBhcmUgYXQgdGhlaXIgcGh5c2ljYWwgZWRnZSBpbiB0aGlzIGNvb3JkaW5hdGUKICAg
ICAvLyBzeXN0ZW0sIHNvIG9yZGVyIGlzIGltcG9ydGFudCBoZXJlOiBmaXJzdCBmbGlwLCB0aGVu
IHN1YnRyYWN0IHNjcm9sbGJhcnMuCi0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJlY3QubW92ZSh2
ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwogICAgIHJlY3QuY29udHJhY3QodmVydGljYWxT
Y3JvbGxiYXJXaWR0aCgpLCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkpOwogICAgIHJldHVy
biByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKaW5kZXggYjQ2M2ZjOWRjYjIyNGFkOTgzZGU1ZDY5YWUzZWUzNWZjYjYyMjNlOS4u
ZmFhNzYwOTFkMDRkNDU1ZTgyYjMzMzIyOGFmYTQyMTM4N2Q1ZmNkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01NTYsNyAr
NTU2LDcgQEAgRmxvYXRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb25zdHJhaW5pbmdSZWN0
Rm9yU3RpY2t5UG9zaXRpb24oKSBjb25zdAogICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gRmxv
YXRQb2ludCgpICsgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpOwogCiAgICAgICAgIGZs
b2F0IHNjcm9sbGJhck9mZnNldCA9IDA7Ci0gICAgICAgIGlmIChlbmNsb3NpbmdDbGlwcGluZ0Jv
eC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKKyAgICAgICAgaWYgKGVu
Y2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVyKCkgJiYgZW5jbG9zaW5nQ2xpcHBpbmdCb3guc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIHNjcm9sbGFibGVBcmVhKQogICAg
ICAgICAgICAgc2Nyb2xsYmFyT2Zmc2V0ID0gc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogCiAgICAgICAgIGNvbnN0cmFp
bmluZ1JlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXQueCgpICsgc2Nyb2xs
YmFyT2Zmc2V0LCBzY3JvbGxPZmZzZXQueSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA3YTU5NThjOTIzYTIxNDg2MjFhZmNkYzNjNGRiY2Y0YTM3YjQy
MzExLi41Njk1NjFiYzc0ZDNkN2MwZDNiNTFkYjRjZjY0N2UzMjgxZmQzNmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0MzAsOSArMjQzMCwxMCBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFi
c29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAvLyBib3JkZXIgZWRnZS4gTWFrZSB0aGUg
cmVjdGFuZ2xlIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGxhYmxlIGFyZWEuCiAgICAgICAgIGxvY2Fs
RXhwb3NlUmVjdC5tb3ZlQnkoLUxheW91dFBvaW50KGJveC0+Ym9yZGVyTGVmdCgpLCBib3gtPmJv
cmRlclRvcCgpKSk7CiAKLSAgICAgICAgaWYgKGJveC0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7Ci0gICAgICAgICAgICAvLyBGb3IgZGlyZWN0aW9uOiBydGw7
IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YiBib3gsIHRoZSBzY3JvbGwgYmFyIGlzIG9uIHRo
ZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3QKLSAgICAgICAgICAgIC8vIHN0YXJ0cyBmcm9t
IHRoZSByaWdodCBzaWRlIG9mIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVj
dCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28uCisgICAgICAgIGlmIChi
b3gtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgeworICAgICAgICAgICAg
Ly8gRm9yIGBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH1g
IGFuZCBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAKKyAgICAgICAgICAgIC8vIGJveGVzLCB0
aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0IHN0YXJ0
cyBmcm9tIHRoZSByaWdodCBzaWRlCisgICAgICAgICAgICAvLyBvZiB0aGUgc2Nyb2xsIGJhci4g
U28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBzdGFydCBmcm9tIHRoZSBzYW1lIHBv
c2l0aW9uIHRvby4KICAgICAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlQnkoTGF5b3V0UG9p
bnQoLXNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApKTsKICAgICAg
ICAgfQogICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRzKDBfbHUsIDBfbHUsIGJveC0+Y2xp
ZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQoKSk7CkBAIC0yNjc2LDcgKzI2NzcsNyBAQCB2
b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldnQsIGNv
bnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIGVsZW1lbnQtPnNldE1pbmltdW1TaXplRm9yUmVz
aXppbmcobWluaW11bVNpemUpOwogICAgIAogICAgIExheW91dFNpemUgYWRqdXN0ZWRPbGRPZmZz
ZXQgPSBMYXlvdXRTaXplKG9sZE9mZnNldC53aWR0aCgpIC8gem9vbUZhY3Rvciwgb2xkT2Zmc2V0
LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7Ci0gICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBuZXdPZmZzZXQuc2V0
V2lkdGgoLW5ld09mZnNldC53aWR0aCgpKTsKICAgICAgICAgYWRqdXN0ZWRPbGRPZmZzZXQuc2V0
V2lkdGgoLWFkanVzdGVkT2xkT2Zmc2V0LndpZHRoKCkpOwogICAgIH0KQEAgLTI3MzMsNyArMjcz
NCw3IEBAIFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xSZWN0cyBSZW5kZXJMYXllcjo6b3Zl
cmZsb3dDb250cm9sc1JlY3RzKCkgY29uc3QKICAgICAvLyBTY3JvbGxiYXJzIHNpdCBpbnNpZGUg
dGhlIGJvcmRlciBib3guCiAgICAgYXV0byBvdmVyZmxvd0NvbnRyb2xzUG9zaXRpb25pbmdSZWN0
ID0gc25hcHBlZEludFJlY3QocmVuZGVyQm94LnBhZGRpbmdCb3hSZWN0SW5jbHVkaW5nU2Nyb2xs
YmFyKCkpOwogCi0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVu
ZGVyQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICBi
b29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSByZW5kZXJCb3guc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5k
ZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUmVzaXplOjpOb25lOwogCiAgICAgT3ZlcmZsb3dD
b250cm9sUmVjdHMgcmVzdWx0OwpAQCAtMjc4Niw3ICsyNzg3LDcgQEAgU3RyaW5nIFJlbmRlckxh
eWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIEludFNpemUgUmVuZGVyTGF5ZXI6Om9mZnNl
dEZyb21SZXNpemVDb3JuZXIoY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiB7CiAg
ICAgYXV0byByZXNpemVyUmVjdCA9IG92ZXJmbG93Q29udHJvbHNSZWN0cygpLnJlc2l6ZXI7Ci0g
ICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCkgOiByZXNp
emVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOworICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVy
ZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5t
aW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKICAgICByZXR1
cm4gbG9jYWxQb2ludCAtIHJlc2l6ZUNvcm5lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBkY2NlY2NmZDUwMGVh
MGViNzExZTA3OTg0YjM4MTQxZDg3YTZkNjFkLi41Njg0MDhkOGE4MzA2ZWY3NDhkOWM5Yjc4Yzkw
MDIxMDUxMTEyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIzMCw3ICsyMjMwLDcgQEAgRmxvYXRQb2ludCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKICAgICBhdXRv
JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAKICAgICByZXR1cm4gRmxv
YXRQb2ludCgKLSAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkg
OiAwLAorICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSA6IDAsCiAgICAg
ICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIoZnJhbWVWaWV3LnNjcm9s
bFBvc2l0aW9uKCksIGZyYW1lVmlldy50b3BDb250ZW50SW5zZXQoKSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5k
ZXggZGFiNWVhOTg0ZTcyZTFhNWRmYmZiMTE0OThjN2I3MjhmYjk5ZjdhZi4uMmJiNWE1NTI4OWY2
NDg5ODAxNGY3NDVlYjRlMWIxMzAxMGE1MTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAtMjA3LDcgKzIwNyw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lz
dGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNl
cnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNSwxMiArMjE1LDEyIEBAIGJvb2wgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0CiAjZWxzZQogICAgIHN3aXRjaCAoc2V0dGluZ3MoKS51c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5KCkpIHsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k6
OkNvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeTo6U3lzdGVtOgogICAgICAgICByZXR1cm4gc2V0dGluZ3MoKS5zeXN0ZW1MYXlvdXRE
aXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEw7CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggOWM5NjZmN2ViMmYwMjdkNjMw
ZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEyZDc4YTUzZGRkNWM2YWYzZDdmZjhk
YzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVjdHM+IGxheWVyUmVwYWludFJlY3Rz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1MDJhYjk1ZWI4NDk5ZTBhZDY4NTIxNDlm
MDFmMTlhM2MxYTQxLi5kYTg3MjkxNmExODQ3MzUyOWRhNTk3MmRjNDRjMTQ3MDc1MDY2NTI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5
ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5z
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIG1f
bGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9
CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTY1NCw3ICs2NTQsNyBAQCBSZW5k
ZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6
b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZlTm9uT3ZlcmxheUhvcml6b250YWxT
Y3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9oQmFyLmdldCgpKTsKICAgICBib29s
IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIo
bV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBw
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlci5zdHlsZSgpLnJl
c2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNjcm9sbGJhcnNBdm9pZENvcm5lciA9
IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgJiYgaGF2ZU5vbk92ZXJsYXlWZXJ0
aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmIChoYXZlTm9uT3ZlcmxheUhvcml6b250
YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikpOwogCkBAIC0x
MDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVT
Y3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwogCiAgICAgaW50IHNjcm9sbGFibGVMZWZ0
T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkp
OwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisg
ICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSB8fCBib3gtPnN0eWxl
KCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQpCiAgICAgICAgIHNj
cm9sbGFibGVMZWZ0T3ZlcmZsb3cgLT0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwogICAgIGlu
dCBzY3JvbGxhYmxlVG9wT3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93VG9wKCkgLSBib3gt
PmJvcmRlclRvcCgpKTsKICAgICBzZXRTY3JvbGxPcmlnaW4oSW50UG9pbnQoLXNjcm9sbGFibGVM
ZWZ0T3ZlcmZsb3csIC1zY3JvbGxhYmxlVG9wT3ZlcmZsb3cpKTsKQEAgLTExMDQsNyArMTEwNCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVy
TGF5b3V0KCkKICAgICAgICAgaWYgKGJveC0+aGFzVmVydGljYWxTY3JvbGxiYXJXaXRoQXV0b0Jl
aGF2aW9yKCkpCiAgICAgICAgICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihoYXNWZXJ0aWNh
bE92ZXJmbG93KTsKIAotICAgICAgICBpZiAoYXV0b1ZlcnRpY2FsU2Nyb2xsQmFyQ2hhbmdlZCAm
JiBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgIGlm
IChhdXRvVmVydGljYWxTY3JvbGxCYXJDaGFuZ2VkICYmIHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIGNvbXB1dGVTY3JvbGxPcmlnaW4oKTsKIAogICAg
ICAgICBtX2xheWVyLnVwZGF0ZVNlbGZQYWludGluZ0xheWVyKCk7CkBAIC0xMzQ4LDcgKzEzNDgs
NyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmRyYXdQbGF0Zm9ybVJlc2l6ZXJJ
bWFnZShHcmFwaGljc0NvbnRleHQmIGNvbnRleAogICAgICAgICBjb3JuZXJSZXNpemVyU2l6ZSA9
IHJlc2l6ZUNvcm5lckltYWdlLT5zaXplKCk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgeworICAgIGlmIChzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgY29udGV4dC5zYXZlKCk7CiAgICAg
ICAgIGNvbnRleHQudHJhbnNsYXRlKHJlc2l6ZXJDb3JuZXJSZWN0LngoKSArIGNvcm5lclJlc2l6
ZXJTaXplLndpZHRoKCksIHJlc2l6ZXJDb3JuZXJSZWN0LnkoKSArIHJlc2l6ZXJDb3JuZXJSZWN0
LmhlaWdodCgpIC0gY29ybmVyUmVzaXplclNpemUuaGVpZ2h0KCkpOwogICAgICAgICBjb250ZXh0
LnNjYWxlKEZsb2F0U2l6ZSgtMS4wLCAxLjApKTsKQEAgLTE1MDksNyArMTUwOSw3IEBAIGJvb2wg
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6aGl0VGVzdFJlc2l6ZXJJbkZyYWdtZW50cyhjb25z
dCBMYXllckZyYWdtZW50cyYKICAgICBhdXRvIHJlY3RzID0gb3ZlcmZsb3dDb250cm9sc1JlY3Rz
KCk7CiAKICAgICBhdXRvIGNvcm5lclJlY3RJbkZyYWdtZW50ID0gWyZdKGNvbnN0IEludFJlY3Qm
IGZyYWdtZW50Qm91bmRzLCBjb25zdCBJbnRSZWN0JiByZXNpemVyUmVjdCkgewotICAgICAgICBp
ZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgICAg
IGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgICAg
IEludFNpemUgb2Zmc2V0RnJvbUJvdHRvbUxlZnQgPSBib3JkZXJCb3hSZWN0Lm1pblhNYXhZQ29y
bmVyKCkgLSByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpOwogICAgICAgICAgICAgcmV0dXJu
IEludFJlY3QgeyBmcmFnbWVudEJvdW5kcy5taW5YTWF4WUNvcm5lcigpIC0gb2Zmc2V0RnJvbUJv
dHRvbUxlZnQgLSBJbnRTaXplIHsgMCwgcmVzaXplclJlY3QuaGVpZ2h0KCkgfSwgcmVzaXplclJl
Y3Quc2l6ZSgpIH07CiAgICAgICAgIH0KQEAgLTE1NzAsNyArMTU3MCw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyU3R5bGVDaGFuZ2UoY29u
c3QgUmVuZGVyU3R5CiAgICAgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihuZWVkc0hvcml6b250
YWxTY3JvbGxiYXIpOwogICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKG5lZWRzVmVydGljYWxT
Y3JvbGxiYXIpOwogCi0gICAgaWYgKGhhZFZlcnRpY2FsU2Nyb2xsYmFyICE9IG5lZWRzVmVydGlj
YWxTY3JvbGxiYXIgfHwgKG5lZWRzVmVydGljYWxTY3JvbGxiYXIgJiYgb2xkU3R5bGUgJiYgYm94
LT5zdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAhPSBv
bGRTdHlsZS0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSkKKyAg
ICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVlZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAo
bmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHlsZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpKQogICAgICAgICBjb21wdXRlU2Nyb2xsT3JpZ2luKCk7
CiAKICAgICAvLyBXaXRoIG5vbi1vdmVybGF5IG92ZXJmbG93OnNjcm9sbCwgc2Nyb2xsYmFycyBh
cmUgYWx3YXlzIHZpc2libGUgYnV0IG1heSBiZSBkaXNhYmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCmluZGV4IDI4MjQ1
NTE0ZGNhYjhjYzM4NGE1MTU2YmQ0OTgzZTdjZGE0YjQ2ZTguLmFlNDcxOTkzNzIzZGY4YWYwOTdm
ZDUwOTc2OTg5OGI4N2U3NTZiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1Ymxp
YzoKICAgICBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCB1c2VzQXN5bmNTY3JvbGxpbmcoKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxk
UGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAgIGJv
b2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgYm9vbCBpc1JlbmRlckxheWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IDk1MGIxZDdlMzFkMmMwY2Q4NDc3ZGQxYWI2YTM4YzUwZjU3MmRmOWYuLjNlYTdiNzAyNGFlYThj
YjlmODUyODBiNWQ4ZjY1YTQ5ZDkwZTg5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKQEAgLTI4MSw3ICsyODEsNyBAQCBMYXlvdXRVbml0IFJlbmRlckxp
c3RCb3g6OmJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwgYm9vbCBm
aXJzdAogTGF5b3V0UmVjdCBSZW5kZXJMaXN0Qm94OjppdGVtQm91bmRpbmdCb3hSZWN0KGNvbnN0
IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBpbnQgaW5kZXgpCiB7CiAgICAgTGF5b3V0
VW5pdCB4ID0gYWRkaXRpb25hbE9mZnNldC54KCkgKyBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgbV92QmFyKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgbV92QmFyKQogICAgICAgICB4ICs9IG1fdkJhci0+b2NjdXBpZWRXaWR0aCgpOwogICAgIExh
eW91dFVuaXQgeSA9IGFkZGl0aW9uYWxPZmZzZXQueSgpICsgYm9yZGVyVG9wKCkgKyBwYWRkaW5n
VG9wKCkgKyBpdGVtSGVpZ2h0KCkgKiAoaW5kZXggLSBtX2luZGV4T2Zmc2V0KTsKICAgICByZXR1
cm4gTGF5b3V0UmVjdCh4LCB5LCBjb250ZW50V2lkdGgoKSwgaXRlbUhlaWdodCgpKTsKQEAgLTM2
Myw3ICszNjMsNyBAQCB2b2lkIFJlbmRlckxpc3RCb3g6OnBhaW50U2Nyb2xsYmFyKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbgogICAgIGlmICghbV92QmFyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMYXlvdXRVbml0IGxlZnQgPSBwYWludE9mZnNldC54KCkg
KyAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVm
dCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCkpOworICAgIExh
eW91dFVuaXQgbGVmdCA9IHBhaW50T2Zmc2V0LngoKSArIChzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IG1fdkJhci0+d2lkdGgoKSk7CiAgICAgTGF5b3V0VW5pdCB0b3AgPSBwYWludE9mZnNldC55KCkg
KyBib3JkZXJUb3AoKTsKICAgICBMYXlvdXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwog
ICAgIExheW91dFVuaXQgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCkgLSAoYm9yZGVyVG9wKCkgKyBi
b3JkZXJCb3R0b20oKSk7CkBAIC00NjksNyArNDY5LDcgQEAgYm9vbCBSZW5kZXJMaXN0Qm94Ojpp
c1BvaW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlv
dXQKICAgICBpZiAoIW1fdkJhciB8fCAhbV92QmFyLT5zaG91bGRQYXJ0aWNpcGF0ZUluSGl0VGVz
dGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBMYXlvdXRVbml0IHggPSBhY2N1
bXVsYXRlZE9mZnNldC54KCkgKyAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXIt
PndpZHRoKCkpOworICAgIExheW91dFVuaXQgeCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChz
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0
aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7CiAgICAgTGF5b3V0VW5pdCB5
ID0gYWNjdW11bGF0ZWRPZmZzZXQueSgpICsgYm9yZGVyVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB3
aWR0aCA9IG1fdkJhci0+d2lkdGgoKTsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IHRoaXMtPmhl
aWdodCgpIC0gYm9yZGVyVG9wKCkgLSBib3JkZXJCb3R0b20oKTsKQEAgLTQ5MSw5ICs0OTEsOSBA
QCBpbnQgUmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQoY29uc3QgTGF5b3V0U2l6ZSYg
b2Zmc2V0KQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQgc2Nyb2xsYmFyV2lkdGggPSBt
X3ZCYXIgPyBtX3ZCYXItPndpZHRoKCkgOiAwOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgp
ICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhcldpZHRoIHx8IG9mZnNldC53aWR0aCgpID4gd2lk
dGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQoKSkpCisgICAgaWYgKHNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJM
ZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRoKCkg
PiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKICAgICAgICAgcmV0
dXJuIC0xOwotICAgIGlmICghc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgfHwg
b2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgp
IC0gc2Nyb2xsYmFyV2lkdGgpKQorICAgIGlmICghc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0
KCkgfHwgb2Zmc2V0LndpZHRoKCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdS
aWdodCgpIC0gc2Nyb2xsYmFyV2lkdGgpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpbnQg
bmV3T2Zmc2V0ID0gKG9mZnNldC5oZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gcGFkZGluZ1RvcCgp
KSAvIGl0ZW1IZWlnaHQoKSArIG1faW5kZXhPZmZzZXQ7CkBAIC04MDAsMTQgKzgwMCwxNCBAQCBi
b29sIFJlbmRlckxpc3RCb3g6OmlzQWN0aXZlKCkgY29uc3QKIHZvaWQgUmVuZGVyTGlzdEJveDo6
aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBzY3JvbGxSZWN0ID0gcmVjdDsKLSAgICBzY3JvbGxS
ZWN0Lm1vdmUoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9y
ZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKSwg
Ym9yZGVyVG9wKCkpOworICAgIHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CiAgICAgcmVwYWludFJlY3RhbmdsZShz
Y3JvbGxSZWN0KTsKIH0KIAogSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9s
bGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gc2Nyb2xs
YmFyUmVjdDsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdo
dCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0g
Ym9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3Ag
PSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9w
KTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0Nv
bnRhaW5pbmdWaWV3KHRoaXMsIHJlY3QpOwpAQCAtODE2LDcgKzgxNiw3IEBAIEludFJlY3QgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNj
cm9sbGJhciYgc2NyCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVj
dCYgcGFyZW50UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSB2aWV3KCkuZnJhbWVW
aWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywgcGFyZW50UmVj
dCk7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0gYm9y
ZGVyVG9wKCk7CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Nyb2xsYmFyVG9wKTsK
ICAgICByZXR1cm4gcmVjdDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBJbnRSZWN0IFJlbmRlckxpc3RC
b3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIm
IHNjcgogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRh
aW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgc2Ny
b2xsYmFyUG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSBzY3JvbGxiYXJQb2lu
dDsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
c2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3Jk
ZXJUb3AoKTsKICAgICBwb2ludC5tb3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJhclRvcCk7CiAg
ICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVyVG9Db250YWlu
aW5nVmlldyh0aGlzLCBwb2ludCk7CkBAIC04MzQsNyArODM0LDcgQEAgSW50UG9pbnQgUmVuZGVy
TGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9s
bGJhciYgc2MKIEludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQm
IHBhcmVudFBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gdmlldygpLmZyYW1l
VmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRoaXMsIHBhcmVudFBv
aW50KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgp
IC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9y
ZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBi
b3JkZXJUb3AoKTsKICAgICBwb2ludC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Nyb2xsYmFyVG9w
KTsKICAgICByZXR1cm4gcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guaAppbmRleCAyMWJiYWEyNzgwODYwOTgxZTE4MmFmMGY5OTI2YzRmMjE3ZTEzNDJlLi45Zjkz
ZDE4ZTQxZGM5YzczYjllNTk2Mjk1OWU2MDZhNTVlZjBhZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcGFpbnRJdGVtQmFja2dyb3VuZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYs
IGludCBsaXN0SW5kZXgpOwogICAgIHZvaWQgc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKIAot
ICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQ
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7IH0KIAogICAgIGJvb2wgbV9vcHRpb25zQ2hh
bmdlZDsKICAgICBib29sIG1fc2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb25BZnRlckxheW91dDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA0YzNmZjRmYWZkMmViNTIy
Y2VlZWZkNWMyOWI0ODgzYjk1Y2MxYWQxLi4zY2QzMGRiNzVmNTFmZjJhNjMxNjRiYWE1NjNlYmEy
NWRkMDU0ZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC00
NzMsNyArNDczLDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZShjb25z
dCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCkgY29uc3QKICAgICAgICAgLy8gYW5kIHRoZSBSZW5k
ZXJlciB0aGF0IGNvbnRhaW5zIHRoZSBpZnJhbWUuIFRoaXMgdHJhbnNmb3JtYXRpb24gbXVzdCBh
Y2NvdW50IGZvciBhCiAgICAgICAgIC8vIGxlZnQgc2Nyb2xsYmFyIChpZiBvbmUgZXhpc3RzKS4K
ICAgICAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSB0aGlzLT5mcmFtZVZpZXcoKTsKLSAgICAg
ICAgaWYgKGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgJiYgZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCisgICAgICAgIGlmIChmcmFtZVZp
ZXcuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIGZyYW1lVmlldy52ZXJ0
aWNhbFNjcm9sbGJhcigpKQogICAgICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmUoTGF5b3V0U2l6
ZShmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKS0+b2NjdXBpZWRXaWR0aCgpLCAwKSk7CiAK
ICAgICAgICAgb3duZXJCb3gtPnJlcGFpbnRSZWN0YW5nbGUoYWRqdXN0ZWRSZWN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGVkZjE3
MGE5NjlhOTA3ZTk5ODM2OTJlYjk4ODU4OTAyZTdiMzYzNTguLjA5YjgzYzhlMzAzOWQzY2FmZTM3
NzEzMjNhMmI0MDU1NTEwMGMxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMjU4MSw5ICsyNTgxLDkgQEAgZmxvYXQgUmVuZGVyU3R5
bGU6Om91dGxpbmVPZmZzZXQoKSBjb25zdAogICAgIHJldHVybiBtX2JhY2tncm91bmREYXRhLT5v
dXRsaW5lLm9mZnNldCgpOwogfQogCi1ib29sIFJlbmRlclN0eWxlOjpzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgUmVuZGVyU3R5bGU6OnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiAhaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAg
cmV0dXJuICghaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkpIHx8IHdyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OwogfQog
CiBWZWN0b3I8UGFpbnRUeXBlLCAzPiBSZW5kZXJTdHlsZTo6cGFpbnRUeXBlc0ZvclBhaW50T3Jk
ZXIoUGFpbnRPcmRlciBvcmRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKaW5kZXggOTczMDJmYTYyNzE0Yjc5MTNkNTFkOGYwYmE0MTViNDVmNWVhM2Q4
NC4uM2JhMDA0MGYyZDAwOTYwZTUyNzFhYzc5YzFkYjU1Zjk3OTI3YTgwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTgyOSw3ICs4MjksNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNJc29sYXRpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfVFJBSUxJTkdfV09SRCkKICAgICBUcmFpbGlu
Z1dvcmQgdHJhaWxpbmdXb3JkKCkgY29uc3QgeyByZXR1cm4gVHJhaWxpbmdXb3JkOjpBdXRvOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJv
eHlXaW4uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdp
bi5oCmluZGV4IDU3Y2YwOGZkZDY3NmUyNDVjMTQ4ZDdkY2VmMGYxM2VmNGFlY2E4YzIuLmVlZDNh
ODRmNDI5YzI4N2RhNmUwYjQ4NDY2MzJhN2E5YTk0OGYzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCkBAIC04MCw3ICs4MCw3
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aXNpYmxlU2l6ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KGJvb2wq
ID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgZm9yY2VVcGRhdGVTY3JvbGxiYXJzT25N
YWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGUoKSBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBoYXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJs
ZUFuY2VzdG9yKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCmluZGV4IGI1ZTZlNTE4YmQ1Zjkw
MGVjMGUxZDk0NGZlYjU3NDgyOTczMzkwNjUuLjZjZGJlZGNkMDg1NzJlMGI2NTk5ODU0M2ZkZjQy
ZjI1ODQwMjIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmgKQEAgLTI1Niw3ICsyNTYsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6
OkludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJD
b3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQp
IGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXdUb1Njcm9sbGJhcihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZm9yY2VVcGRh
dGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3QgZmlu
YWw7Ci0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIFN0
cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBQREZQbHVnaW4g
ZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDZjZGZhNWEyODQ3ZTYzZTFjMDlkNjQ4MDk0MjVlOTRiZDE0MWY1
ZjguLjU4NGUzZjViMDZiZGVlNTkwZDM4NTkwMTc5ZjNiNTFiZTI1ZjlhOTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMS0wNC0xMiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9j
ayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
Y3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5
bmFtaWMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1y
bC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJh
cnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbDogQWRk
ZWQuCisKIDIwMjEtMDQtMTIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc1NzkzLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggYzlkMGU3N2IzM2VlODU2ZmRmMTYwMjRiOTFmYjg0ZTM1OTFl
ODRkZS4uYTA1NzYzNWFlNWVhZjdkOTBjOGI0MmMxMzkyMDA4MzY1ODliMGYxMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTIgIENhbWVy
b24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNh
bCBzY3JvbGxiYXJzIGF0IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1v
ZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0
MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3
L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA0LTEyICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRp
bmcgcjI3NTc5My4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg2YWI2ZDNmNmQzMzljY2YzNDdiZmYx
ZjAyNzA0NGEyNTcwMDYzZjIuLmEwYjU3MjQ1ZmU3N2FlNjZhYjY3NmM5NDQ0MDQ5YWQ0Y2E4ZDA2
NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDg3MCw2ICs0ODcwLDEwIEBAIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3BpbmctMDAyLmh0
bWwgWyBJbWFnZU9uCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9xdW90ZS1zY29waW5nLTAwMy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAw
NC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgVGVzdHMgdGhhdCBmYWlsIGJlY2F1c2Ug
dGhleSBhc3N1bWUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gYHdyaXRpbmctbW9kZTogdmVydGlj
YWwtcmxgIGVsZW1lbnRzIHdpbGwgYmUgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZQord2Via2l0Lm9y
Zy9iLzIyNDM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGlu
Zy1tb2Rlcy9zaXppbmctb3J0aG9nLXZybC1pbi1odGItMDEzLnhodCBbIEltYWdlT25seUZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzIyNDM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L2Nzc29tLWdldEJvdW5kaW5nQ2xpZW50UmVjdC12ZXJ0aWNhbC1ybC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKICMgQGNvdW50ZXItc3R5bGUgcmVmIHRlc3RzIHRo
YXQgY3VycmVudGx5IGZhaWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb3VudGVyLXN0eWxlcy9hcm1lbmlhbi9jc3MzLWNvdW50ZXItc3R5bGVzLTAwNi5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY291bnRlci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3VudGVyLXN0eWxlcy0wMDcuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gv
Y2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbAppbmRleCA2MjU0NzJmNDdmMWRmZDE2MTJmNWJl
NDhiMWYxYzk0N2JiODM1ZWEwLi4wZjZhZTg1YWM2NjBiYTgxZGQyNWFjODUxYjhlMTNkYzZjNjBl
NDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ct
ZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZs
b3ctZXhwZWN0ZWQuaHRtbApAQCAtMjgsNiArMjgsMTAgQEAKIHAgewogICAgIG1hcmdpbi1ib3R0
b206IDMwcHg7CiB9CisKKy50b3BSaWdodCB7CisgICAgZGlyZWN0aW9uOiBydGw7ICAvKiBwbGFj
ZSBzY3JvbGxiYXJzIG9uIHRoZSBMSFMgKi8KK30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1w
YXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92
ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQKaW5kZXggMDAxNTU4OWQ3NGQ5YjE5NTcyMTVlMjMw
ZGQwNzJmMDg0ZTk1MGJhZS4uODJhNGZlYWFhMjMzNTgzOTI4OTkyYzc2ZjhjZGUyMTJlYzg2OWQ1
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93
LXBhcmVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAocmVwYWlu
dCByZWN0cwotICAocmVjdCAyOSAyOSAxMDAgMTAwKQorICAocmVjdCA0NCAyOSAxMDAgMTAwKQog
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctc2FtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwt
b3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKaW5kZXggNzdhYmZiY2Q3ODExN2U4OWVmYzMxMzY3
ZjNjM2ZkYWFkNzZiODQxZi4uYjc1OTE0MTY0ZDgxOGMzODNiZDFlMzIzNDU0MjkxMzc0ODZiMzQ1
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93
LXNhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNh
bC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIChyZXBhaW50IHJl
Y3RzCi0gIChyZWN0IDI5IDIxIDEwMCAxMDApCisgIChyZWN0IDQ0IDIxIDEwMCAxMDApCiApCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iNDE2YjQ3MjdhMGI4YmFlZTlhNjQ1MWFiNzhiNWVlM2ZjZjU5
NDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1z
Y3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdo
dDogMTAwcHg7IGRpcmVjdGlvbjogcnRsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5
bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7
Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyBkaXJlY3Rpb246IGx0cjsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFyZ2luLXRvcDogMWVtOyI+Cisg
IDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29s
aWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRp
b24tZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MGY3MDZjOTYzZjYwYzFkZGQ3MmI4ZGUyNjg4
ODFhMTJlNjJkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwKQEAgLTAsMCAr
MSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IGlkPW9uZSBzdHlsZT0id2lkdGg6IDEwMHB4
OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7IG92ZXJmbG93OiBz
Y3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3Jk
ZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPXR3byBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyBv
dmVyZmxvdzogc2Nyb2xsOyBtYXJnaW4tdG9wOiAxZW07Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6
IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2Pgor
PC9kaXY+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CitvbmUuc3R5bGUud3Jp
dGluZ01vZGUgPSAidmVydGljYWwtcmwiOwordHdvLnN0eWxlLndyaXRpbmdNb2RlID0gImhvcml6
b250YWwtdGIiOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24t
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODhiNmNhNDliMjFlNDIyMTUwOTgwNTZhYTViMzM5
ZTMxNDhlNjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
di1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDEwMHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2IHN0eWxl
PSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+
PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Yt
cmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg3YTBiZjA4MzI5MGMzZTU1NWQxNTg2MjI4NDdjY2E0YTc5NmRmMTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1w
b3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7
IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6
IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Ny
b2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzE3MGI4MGRkMGI4Y2E5
N2ZmNTVkMWRiZGUxYjQwZmZhNjQ3ZWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDExIEBACitUaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0
aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJpZ2h0LgorCisKKworCitUaGVzZSBmb3VyIGNvbnRhaW5l
cnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuCisKKworCisK
KyBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1z
Y3JvbGxiYXItcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmYTM5ZGE2OGUyNGYzNzgx
YzlmMzdhMmFmMGUxZDE0YmY1ODY2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApAQCAtMCwwICsx
LDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KK3NlY3Rpb24gPiBkaXYsIHNlY3Rpb24g
PiBkaXYgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGhlaWdodDogMTAwcHg7CisgIHdp
ZHRoOiAxMDBweDsKKyAgb3V0bGluZTogMXB4IHNvbGlkIGJsYWNrOworICBvdmVyZmxvdy14OiBo
aWRkZW47CisgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAgbWFyZ2luOiAxMHB4IDEwcHggMCAwOwor
fQorCisuc3F1YXJlIHsKKyAgd2lkdGg6IDIwcHg7CisgIGhlaWdodDogMjBweDsKKyAgYmFja2dy
b3VuZC1jb2xvcjogb3JhbmdlOworfQorCisubHRyIHsgZGlyZWN0aW9uOiBsdHI7IH0KKy5ydGwg
eyBkaXJlY3Rpb246IHJ0bDsgfQorLmgtdGIgeyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7
IH0KKy5oLWJ0IHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhvcml6b250YWwtYnQ7IH0KKy52LXJs
IHsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfQorLnYtbHIgeyB3cml0aW5nLW1vZGU6IHZl
cnRpY2FsLWxyOyB9Cis8L3N0eWxlPgorPHNlY3Rpb24gY2xhc3M9InJpZ2h0Ij4KKyAgPHA+VGhl
c2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRo
ZSByaWdodC48L3A+CisgIDxkaXYgY2xhc3M9ImgtdGIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUi
IGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJoLWJ0IGx0ciI+
PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRp
diBjbGFzcz0idi1sciBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+
PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUi
IGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBj
bGFzcz0ibGVmdCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZl
cnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgbGVmdC48L3A+CisgIDxkaXYgY2xhc3M9ImgtdGIgcnRs
Ij48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAg
PGRpdiBjbGFzcz0iaC1idCBydGwiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0i
ODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LXJsIGx0ciI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtcmwg
cnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4K
Kzwvc2VjdGlvbj4KKworPHByZSBpZD0icmVzdWx0cyI+RkFJTDwvcHJlPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7Cit9CisKK2xldCB0ZXh0ID0gIiI7Citmb3IgKGxldCBzcXVhcmUgb2YgZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgiLnNxdWFyZSIpKSB7CisgICAgbGV0IGFjdHVhbCA9IHNxdWFyZS5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IC0gc3F1YXJlLnBhcmVudE5vZGUub2Zmc2V0TGVmdDsK
KyAgICBsZXQgZXhwZWN0ZWQgPSBzcXVhcmUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkIik7
CisgICAgaWYgKGFjdHVhbCAhPSBleHBlY3RlZCkgeworICAgICAgICB0ZXh0ICs9IGBQb3NpdGlv
biBvZiBzcXVhcmUgaW4gJyR7c3F1YXJlLnBhcmVudE5vZGUuY2xhc3NOYW1lfScgLSBleHBlY3Rl
ZCAke2V4cGVjdGVkfSwgZ290ICR7YWN0dWFsfVxuYDsKKyAgICB9Cit9CityZXN1bHRzLnRleHRD
b250ZW50ID0gdGV4dCB8fCAiUEFTUyI7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2st
ZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhlZDdjNDMwNzYzNjNlZjIzNTNjZmVhZDIxNGE2NzRlZDUy
YWIuLmQ2Yjc3OTU3MmI2NDMxOTZjY2I5ZDdkZWRiY2EyMDEwZTkxODdlMWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAt
aW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogCiBQQVNTIFNuYXBz
IGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNu
YXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
dmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3Rh
cnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0
ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwg
d3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQg
Z290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1v
ZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9l
cXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAzMDAgYnV0IGdvdCAxNjUKIEZB
SUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdz
Y3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxp
Z25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDAKIEZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkg
b24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVy
dGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQn
IGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQg
LTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBy
dGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRf
ZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUK
LUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1z
bmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29y
cmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVj
dGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246
IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24g
eSBleHBlY3RlZCAxNjUgYnV0IGdvdCAzMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGly
ZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBn
b3QgMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWdu
cyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcv
c2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0
CmluZGV4IDViZDNiYzcxZGQwM2FjZTJjZWM3YTM0NDBhN2JkYzZkZDQyNDY2YjguLjUxMjE2YmI5
YTk5MGEwNzU2YWZlYmIwZDRhMGRiM2IwY2E1NjgxZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVm
dFRvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dApAQCAt
MTEsNiArMTEsNiBAQCBQQVNTIHdyaXRpbmctbW9kZTpob3Jpem9udGFsLXRiOyBkaXJlY3Rpb246
bHRyCiBQQVNTIHdyaXRpbmctbW9kZTpob3Jpem9udGFsLXRiOyBkaXJlY3Rpb246cnRsCiBQQVNT
IHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1v
ZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpydGwKLUZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2Fs
LXJsOyBkaXJlY3Rpb246bHRyIGFzc2VydF9hcHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVm
dCBleHBlY3RlZCAtMTY1ICsvLSAwLjUgYnV0IGdvdCAtMTUwCi1GQUlMIHdyaXRpbmctbW9kZTp2
ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bCBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5kaW5nIHNj
cm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAorUEFTUyB3cml0aW5n
LW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpsdHIKK1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRp
Y2FsLXJsOyBkaXJlY3Rpb246cnRsCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425953</attachid>
            <date>2021-04-13 22:42:54 -0700</date>
            <delta_ts>2021-04-15 02:01:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210414154253.patch</filename>
            <type>text/plain</type>
            <size>61838</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkOGFjNDA0OWRkNGZh
ZDIwZWEwYzQyMjcyMjE4ZTdjMGM2ZWRiNy4uYmJiOGNlZTg0ZWZmOWVkNjI0NTA5YTZlYWYwYzI4
NzhiNzcxODE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTEyICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFJl
bW92ZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTFByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTM2YTNjMjQ5
ZmQ4YmY5Y2FkZDg5NzQzYzYxYWU3ODNjOTBlNTk5Ny4uN2ZlNTMwZmUwZDk1YzY4MDlkNjJlMTQ3
NzFiNTRlMGIzYzRmYTBhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0xMiAg
Q2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFBsYWNlIHZl
cnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRp
bmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTEyICBKaWV3ZW4gVGFu
ICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgdGhlIFdlYkF1dGhuIGNv
bXBhdGlibGUgbW9kZSB0byBhbHdheXMgc2hvdyBVSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDI3NTkwOGRkMWRiNjYzM2VhNzY1YmRlZjdlM2U1NjkzMGFlYjQ2ZDMuLmM0
ZWJlMjYwNWJjMTY5NWQ1MGRlNWUwMzZkNzQ1NGE5YWVlMjUyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTE1MTUsNyArMTUxNSw3IEBAIE9wdGlvbmFsPEN1cnNvcj4g
RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBi
b29sIHNoCiAgICAgICAgICAgICBhdXRvJiBsYXllclJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdD4oKnJlbmRlcmVyKTsKICAgICAgICAgICAgIGluUmVzaXplciA9IGxh
eWVyUmVuZGVyZXIubGF5ZXIoKS0+aXNQb2ludEluUmVzaXplQ29udHJvbChyb3VuZGVkSW50UG9p
bnQocmVzdWx0LmxvY2FsUG9pbnQoKSkpOwogICAgICAgICAgICAgaWYgKGluUmVzaXplcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJlci5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVDdXJzb3IoKSA6IHNvdXRoRWFz
dFJlc2l6ZUN1cnNvcigpOworICAgICAgICAgICAgICAgIHJldHVybiBsYXllclJlbmRlcmVyLnNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IHNvdXRoV2VzdFJlc2l6ZUN1cnNv
cigpIDogc291dGhFYXN0UmVzaXplQ3Vyc29yKCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
KGVkaXRhYmxlIHx8IChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNUZXh0KCkgJiYgbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSkpICYmICFpblJlc2l6ZXIgJiYgIXJlc3VsdC5zY3JvbGxiYXIoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjNTkxN2ZmOWFhN2MyMmU5MGU1NjcxMWY4
NGJlMTEyNDk0N2M4NjU5Li4wMjE3ZDM0MmJmOGYzYmNjMWI5OGE0ZTlmNTU0OThkNWIyN2M1MTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01NTUzLDkgKzU1NTMsOSBAQCBJbnRT
aXplIEZyYW1lVmlldzo6dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0CiAg
ICAgcmV0dXJuIHsgKnZpZXdwb3J0U2l6ZS53aWR0aCwgKnZpZXdwb3J0U2l6ZS5oZWlnaHQgfTsK
IH0KIAotYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAorYm9vbCBGcmFtZVZpZXc6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmll
dygpLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0
dXJuIHJlbmRlclZpZXcoKSAmJiByZW5kZXJWaWV3KCktPnNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0
cywgY29uc3QgRnJhbWVWaWV3JiB2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMDZh
ZTNhNDcxMTBjNTc0NzAzMzBmZjk1OWNlM2M4ZmIzZjNmNjVjYi4uZjRhNjA3OGU5MjY3YWM0M2Zh
NDMxZjVmOWVjODY3ZTk5MjEyZTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NTUs
NyArNjU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogICAgIHZvaWQgaGlk
ZSgpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4
IDhlNmIzYWFiNTk4YTM3NGM3MTMyNDM2ZjhiMjE0YjFhODNjZjY1NGEuLmVkZjA1NDg2YjE2OTMw
ZWVmYWFlYmUwM2U1MDJmMTA1NTIwMzRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCkBAIC00MjIsNyArNDIyLDcgQEAgU2Nyb2xsUG9zaXRpb24gU2Nyb2xsVmlldzo6
YWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRoaW5SYW5nZShjb25zdCBTY3JvbGxQb3NpdGlvbiYKIFNj
cm9sbFBvc2l0aW9uIFNjcm9sbFZpZXc6OmRvY3VtZW50U2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRv
Vmlld09yaWdpbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkgLSBJbnRT
aXplKAotICAgICAgICBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
JiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVkV2lk
dGgoKSA6IDAsCisgICAgICAgIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAm
JiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0
aCgpIDogMCwKICAgICAgICAgaGVhZGVySGVpZ2h0KCkgKyB0b3BDb250ZW50SW5zZXQoVG9wQ29u
dGVudEluc2V0VHlwZTo6V2ViQ29yZU9yUGxhdGZvcm1Db250ZW50SW5zZXQpKTsKIH0KIApAQCAt
NzMyLDcgKzczMiw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCBT
Y3JvbGxQb3NpdGlvbiYgZGVzaXJlZFBvc2l0aW9uKQogICAgIGlmIChtX2hvcml6b250YWxTY3Jv
bGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudFdpZHRoID0gdmlzaWJsZVdpZHRoKCk7CiAgICAg
ICAgIEludFJlY3Qgb2xkUmVjdChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsK
LSAgICAgICAgSW50UmVjdCBoQmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXIt
Pm9jY3VwaWVkV2lkdGgoKSA6IDAsCisgICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3Zl
cnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAogICAgICAgICAgICAgaGVpZ2h0
KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAogICAgICAgICAgICAgd2lkdGgo
KSAtIChtX3ZlcnRpY2FsU2Nyb2xsYmFyID8gbV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRX
aWR0aCgpIDogMCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgp
KTsKQEAgLTc1MSw3ICs3NTEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMo
Y29uc3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV92ZXJ0aWNh
bFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0ID0gdmlzaWJsZUhlaWdodCgp
OwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0
KCkpOwotICAgICAgICBJbnRSZWN0IHZCYXJSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lk
dGgoKSwKKyAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CiAgICAgICAgICAgICB0b3BDb250ZW50SW5zZXQoKSwKICAgICAgICAgICAgIG1fdmVydGljYWxT
Y3JvbGxiYXItPndpZHRoKCksCiAgICAgICAgICAgICBoZWlnaHQoKSAtIHRvcENvbnRlbnRJbnNl
dCgpIC0gKG1faG9yaXpvbnRhbFNjcm9sbGJhciA/IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+b2Nj
dXBpZWRIZWlnaHQoKSA6IDApKTsKQEAgLTExNzksMTQgKzExNzksMTQgQEAgSW50UmVjdCBTY3Jv
bGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QKICAgICBpbnQgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyID0gaGVpZ2h0KCkgLSB0b3BDb250ZW50SW5zZXQoKTsKIAogICAgIGlmIChtX2hv
cml6b250YWxTY3JvbGxiYXIgJiYgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IDAgOiBtX2hvcml6b250YWxTY3JvbGxi
YXItPndpZHRoKCksCisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFj
ZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53
aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhl
aWdodCgpLAogICAgICAgICAgICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lk
dGgoKSwKICAgICAgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKICAg
ICB9CiAKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhciAmJiBoZWlnaHRUcmFja2VkQnlTY3Jv
bGxiYXIgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29y
bmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAg
ICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSA/IDAgOiB3aWR0aCgpIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwK
ICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPmhlaWdodCgpICsgdG9wQ29udGVudElu
c2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAg
ICAgICAgaGVpZ2h0VHJhY2tlZEJ5U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVp
Z2h0KCkpKTsKQEAgLTE1MzgsNyArMTUzOCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c3R5bGVBbmRS
ZW5kZXJUcmVlRGlkQ2hhbmdlKCkKIEludFBvaW50IFNjcm9sbFZpZXc6OmxvY2F0aW9uT2ZDb250
ZW50cygpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcmVzdWx0ID0gbG9jYXRpb24oKTsKLSAgICBp
ZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGlj
YWxTY3JvbGxiYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKQogICAgICAgICByZXN1bHQubW92ZShtX3ZlcnRpY2Fs
U2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAzNTg3MTc5Y2RiN2Y2
NzkzOThhN2M4NzczMTJlZDQ5N2MxNmZlOGQ5Li5kNDgxZjdlZGNiZmJmMzNiZGFiNjYzNjc3Yzhm
ZDUwYjczOGFmOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgK
QEAgLTM0Miw3ICszNDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVzZXNNb2NrU2Ny
b2xsQW5pbWF0b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBs
b2dNb2NrU2Nyb2xsQW5pbWF0b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpIGNvbnN0IHsgfTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QgPSAwOwogICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGRlYnVnRGVz
Y3JpcHRpb24oKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcAppbmRleCA0YjcyMTU0YmEx
ZTJiN2MwNjFlOWNlYjQ1OWY0Y2M1NTBlYWU1ZDQyLi44N2JhNGFkOTU1ZThmNDQ4NWVhY2VlOTc5
MzdkOWMzOGJjYTNmZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hZHdh
aXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZUFkd2FpdGE6OnBhaW50KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBH
cmFwaGljc0NvbnRleHQmIGdyYXBoaWMKIAogICAgICAgICBJbnRSZWN0IGZyYW1lID0gcmVjdDsK
ICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9s
bGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSkKICAgICAgICAgICAgICAgICBmcmFtZS5tb3ZlKGZyYW1lLndpZHRoKCkgLSBob3ZlcmVkU2Ny
b2xsYmFyQm9yZGVyU2l6ZSwgMCk7CiAgICAgICAgICAgICBmcmFtZS5zZXRXaWR0aChob3ZlcmVk
U2Nyb2xsYmFyQm9yZGVyU2l6ZSk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTQwLDcgKzE0MCw3IEBA
IGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwg
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAgICAgSW50UmVjdCB0aHVtYiA9IHJlY3Q7CiAgICAg
aWYgKHNjcm9sbGJhci5ob3ZlcmVkUGFydCgpID09IE5vUGFydCAmJiB1c2VzT3ZlcmxheVNjcm9s
bGJhcnMoKSkgewogICAgICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAgIGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEo
KS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIHRodW1iLm1vdmUoaG92ZXJlZFNjcm9sbGJh
ckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAob3ZlcmxheVRo
dW1iU2l6ZSArIHRodW1iQm9yZGVyU2l6ZSkgKyBob3ZlcmVkU2Nyb2xsYmFyQm9yZGVyU2l6ZSwg
dGh1bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIGJvb2wgU2Ny
b2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJhciwgR3JhcGhpY3ND
b250ZXh0JiBncmFwaGljCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBpZiAoc2Ny
b2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAgICAgICAgICAg
IGlmIChzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAg
ICAgIHRodW1iLm1vdmUoc2Nyb2xsYmFyU2l6ZSAtIChzY3JvbGxiYXJTaXplIC8gMiArIHRodW1i
U2l6ZSAvIDIpIC0gaG92ZXJlZFNjcm9sbGJhckJvcmRlclNpemUsIHRodW1iUG9zICsgdGh1bWJC
b3JkZXJTaXplKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0aHVtYi5tb3Zl
KHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0aHVtYlNpemUgLyAyKSwgdGh1
bWJQb3MgKyB0aHVtYkJvcmRlclNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAKaW5kZXggZmU1NTU4YzM1ODQ3YTg3Y2YyNzE2MDgx
NTdmM2VmZWNkNjg0YTdiMC4uMjg5NmM3ZjNiMGQyNzhkYjA5YjgwMDkzNDczZmI2YmZhOGZjMjEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1l
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVH
dGsuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgc3RhdGljIEd0a1N0YXRlRmxhZ3Mgc2Nyb2xsYmFy
UGFydFN0YXRlRmxhZ3MoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIFNjcm9sbGJhclBhcnQKIHN0YXRp
YyBSZW5kZXJUaGVtZVNjcm9sbGJhcjo6VHlwZSB3aWRnZXRUeXBlRm9yU2Nyb2xsYmFyKFNjcm9s
bGJhciYgc2Nyb2xsYmFyLCBHdGtTdGF0ZUZsYWdzIHNjcm9sbGJhclN0YXRlKQogewogICAgIGlm
IChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgewotICAgICAg
ICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVh
KCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgcmV0
dXJuIHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVt
ZVNjcm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJMZWZ0IDogUmVuZGVyVGhlbWVTY3Jv
bGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsSW5kaWNhdG9yTGVmdDsKICAgICAgICAgcmV0dXJu
IHNjcm9sbGJhclN0YXRlICYgR1RLX1NUQVRFX0ZMQUdfUFJFTElHSFQgPyBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxiYXJSaWdodCA6IFJlbmRlclRoZW1lU2Nyb2xs
YmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvclJpZ2h0OwogICAgIH0KQEAgLTM4MCw3
ICszODAsNyBAQCBib29sIFNjcm9sbGJhclRoZW1lR3RrOjpwYWludChTY3JvbGxiYXImIHNjcm9s
bGJhciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbgogICAgIC8vIGRyYXdpbmcgdGhlIGlu
ZGljYXRvciB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgcmVjdGFuZ2xlIHRvIGl0cyBhY3R1YWwgc2l6
ZSBpbiBpbmRpY2F0b3IgbW9kZS4KICAgICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0g
VmVydGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaWYgKHJlY3Qud2lkdGgoKSAhPSBwcmVmZXJy
ZWRTaXplLndpZHRoKCkpIHsKLSAgICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKCFzY3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICAgICAgY29udGVudHNSZWN0Lm1vdmUoc3Rk
OjphYnMocmVjdC53aWR0aCgpIC0gcHJlZmVycmVkU2l6ZS53aWR0aCgpKSwgMCk7CiAgICAgICAg
ICAgICBjb250ZW50c1JlY3Quc2V0V2lkdGgocHJlZmVycmVkU2l6ZS53aWR0aCgpKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRo
ZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
Lm1tCmluZGV4IGJkMDYxNWYyMmQzNTg2MjA0Y2JiYTBlNzhiMmEyNDI3ZmJhMTdmMGEuLjUzOTYx
YTdiNzIwNDAxZjcyZTIyNDVjYmI0ZTIxYjc2Nzk1YWQ3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KQEAgLTE1OSw3ICsxNTksNyBA
QCB2b2lkIFNjcm9sbGJhclRoZW1lTWFjOjpkaWRDcmVhdGVTY3JvbGxlckltcChTY3JvbGxiYXIm
IHNjcm9sbGJhcikKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNTY3JvbGxlckltcCAqc2Nyb2xs
ZXJJbXAgPSBwYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgQVNTRVJUKHNjcm9s
bGVySW1wKTsKLSAgICBzY3JvbGxlckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0g
c2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQg
OiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb25MZWZ0VG9SaWdodDsKKyAgICBzY3JvbGxl
ckltcC51c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uID0gc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gTlNVc2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uUmlnaHRUb0xlZnQgOiBOU1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb25MZWZ0VG9SaWdodDsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNjcm9sbGJhcik7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVX
aW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaAppbmRleCA3
ZDU3ZGFhOWNkZmE4MWM0ZTVkNzU3YTZjYjY1YzUwNDQ0Mzk3NWUxLi43MmUwZTVjZjg4ZjUyZWRm
MzMwMTllYTE2OWNiMmIxMzYxYmY2Y2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXpl
IGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3Qgc2Nyb2xsYWJsZUFy
ZWFCb3VuZGluZ0JveChib29sKiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
Zm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCBieSB0aGUgb3ZlcnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVB
cmVhLgogICAgIHZvaWQgc2Nyb2xsVG8oaW50IG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBiYjRkZjdjYzg3OGQxYWRmNmVlNDU5MWY5ZmQ1ZjNm
ZjQzNDRkYzBhLi4yNjA2ZDUyZTc2MThmZDY5NTEzNDEwMDZkYmFlYjhmZTg0NDlmY2YxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE5MjMsNyArMTkyMyw3
IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6OnRleHRJbmRlbnRPZmZzZXQoKSBjb25zdAogTGF5
b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZy
YWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMZWZ0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVy
TGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwotICAg
IGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYg
KHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsTGVmdE9mZnNldCArPSB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKICAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0
T2Zmc2V0OwpAQCAtMTkzNCw3ICsxOTM0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCbG9jazo6bG9n
aWNhbExlZnRPZmZzZXRGb3JDb250ZW50KFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmEKIExh
eW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQoUmVuZGVy
RnJhZ21lbnRDb250YWluZXIqIGZyYWdtZW50KSBjb25zdAogewogICAgIExheW91dFVuaXQgbG9n
aWNhbFJpZ2h0T2Zmc2V0ID0gc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSA6IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpOwot
ICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAg
aWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQogICAgICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGxvZ2ljYWxSaWdodE9mZnNldCArPSBhdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKTsKICAgICBpZiAoIWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAyMmYzZmEwNmU1ZDRiMzhmNDQyZWMyODQwNTdkNzE3
MWNhNmI1NTNjLi4zNmMxOTFkMDVhMjg4MzI2OTdlNjA1YjkwZThmN2M5MTdlNGYzZGZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtODgzLDcg
Kzg4Myw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjptYXJnaW5PZmZzZXRGb3JTZWxm
Q29sbGFwc2luZ0Jsb2NrKCkKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZXRlcm1pbmVMb2dpY2Fs
TGVmdFBvc2l0aW9uRm9yQ2hpbGQoUmVuZGVyQm94JiBjaGlsZCwgQXBwbHlMYXlvdXREZWx0YU1v
ZGUgYXBwbHlEZWx0YSkKIHsKICAgICBMYXlvdXRVbml0IHN0YXJ0UG9zaXRpb24gPSBib3JkZXJT
dGFydCgpICsgcGFkZGluZ1N0YXJ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJh
ck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHN0YXJ0UG9z
aXRpb24gKz0gKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gMSA6IC0xKSAqIHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICBMYXlvdXRVbml0IHRvdGFsQXZhaWxhYmxlTG9n
aWNhbFdpZHRoID0gYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxXaWR0aCgpICsgYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NTc2ZWU1ZGNjOWEzZTZkZjdlNTFiZTllMmIyNjJmMmIyMDA3MzJiNC4uOGZjYmI1OWU2ZWJiY2Ix
MGNhMzU2NmQyOWRlMWJmZWQ2YzZlYmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKQEAgLTcyMiw3ICs3MjIsNyBAQCBSb3VuZGVkUmVjdCBSZW5kZXJCb3g6OnJvdW5k
ZWRCb3JkZXJCb3hSZWN0KCkgY29uc3QKIExheW91dFJlY3QgUmVuZGVyQm94OjpwYWRkaW5nQm94
UmVjdCgpIGNvbnN0CiB7CiAgICAgYXV0byB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoID0gdGhpcy0+
dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpOwotICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gdmVydGlj
YWxTY3JvbGxiYXJXaWR0aCA6IDA7CisgICAgTGF5b3V0VW5pdCBvZmZzZXRGb3JTY3JvbGxiYXIg
PSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoIDogMDsKIAogICAgIHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIG9mZnNl
dEZvclNjcm9sbGJhciwgYm9yZGVyVG9wKCksCiAgICAgICAgIHdpZHRoKCkgLSBib3JkZXJMZWZ0
KCkgLSBib3JkZXJSaWdodCgpIC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCwKQEAgLTczNiw3ICs3
MzYsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6Y29udGVudEJveFJlY3QoKSBjb25zdAogCiBM
YXlvdXRQb2ludCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hMb2NhdGlvbigpIGNvbnN0CiB7Ci0gICAg
TGF5b3V0VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CisgICAgTGF5b3V0
VW5pdCBzY3JvbGxiYXJTcGFjZSA9IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSA/IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSA6IDA7CiAgICAgcmV0dXJuIHsgYm9yZGVyTGVm
dCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhclNwYWNlLCBib3JkZXJUb3AoKSArIHBhZGRp
bmdUb3AoKSB9OwogfQogCkBAIC0xOTY0LDcgKzE5NjQsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJv
eDo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlckZy
YWdtZQogCiAgICAgLy8gU3VidHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYgd2UgaGF2ZSB0aGVtLgog
ICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGxheWVyKCkgPyBsYXllcigpLT5zY3JvbGxh
YmxlQXJlYSgpIDogbnVsbHB0cikgewotICAgICAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY2xpcFJlY3QubW92ZShzY3JvbGxhYmxlQXJl
YS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpLCAwKTsKICAgICAgICAgY2xpcFJl
Y3QuY29udHJhY3Qoc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZh
bmN5KSwgc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5
KSk7CiAgICAgfQpAQCAtMzc1OCw3ICszNzU4LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVQ
b3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHUK
ICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCArPSBib3JkZXJzUGx1c1BhZGRpbmc7CiAgICAg
aWYgKGlzPFJlbmRlckJveD4oY29udGFpbmVyQmxvY2spKSB7CiAgICAgICAgIGF1dG8mIGNvbnRh
aW5pbmdCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKTsKLSAgICAgICAg
aWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpKQorICAgICAgICBpZiAoY29udGFpbmluZ0JveC5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgICAgIGNv
bXB1dGVkVmFsdWVzLm1fcG9zaXRpb24gKz0gY29udGFpbmluZ0JveC52ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKCk7CiAgICAgfQogICAgIApAQCAtNDk3OSw3ICs0OTc5LDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmZsaXBwZWRDbGllbnRCb3hSZWN0KCkgY29uc3QKICAgICBmbGlwRm9yV3JpdGlu
Z01vZGUocmVjdCk7CiAgICAgLy8gU3VidHJhY3Qgc3BhY2Ugb2NjdXBpZWQgYnkgc2Nyb2xsYmFy
cy4gVGhleSBhcmUgYXQgdGhlaXIgcGh5c2ljYWwgZWRnZSBpbiB0aGlzIGNvb3JkaW5hdGUKICAg
ICAvLyBzeXN0ZW0sIHNvIG9yZGVyIGlzIGltcG9ydGFudCBoZXJlOiBmaXJzdCBmbGlwLCB0aGVu
IHN1YnRyYWN0IHNjcm9sbGJhcnMuCi0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSkKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9u
TGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJlY3QubW92ZSh2
ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApOwogICAgIHJlY3QuY29udHJhY3QodmVydGljYWxT
Y3JvbGxiYXJXaWR0aCgpLCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkpOwogICAgIHJldHVy
biByZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAKaW5kZXggYjQ2M2ZjOWRjYjIyNGFkOTgzZGU1ZDY5YWUzZWUzNWZjYjYyMjNlOS4u
ZmFhNzYwOTFkMDRkNDU1ZTgyYjMzMzIyOGFmYTQyMTM4N2Q1ZmNkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01NTYsNyAr
NTU2LDcgQEAgRmxvYXRSZWN0IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb25zdHJhaW5pbmdSZWN0
Rm9yU3RpY2t5UG9zaXRpb24oKSBjb25zdAogICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gRmxv
YXRQb2ludCgpICsgc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbE9mZnNldCgpOwogCiAgICAgICAgIGZs
b2F0IHNjcm9sbGJhck9mZnNldCA9IDA7Ci0gICAgICAgIGlmIChlbmNsb3NpbmdDbGlwcGluZ0Jv
eC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkKKyAgICAgICAgaWYgKGVu
Y2xvc2luZ0NsaXBwaW5nQm94Lmhhc0xheWVyKCkgJiYgZW5jbG9zaW5nQ2xpcHBpbmdCb3guc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIHNjcm9sbGFibGVBcmVhKQogICAg
ICAgICAgICAgc2Nyb2xsYmFyT2Zmc2V0ID0gc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogCiAgICAgICAgIGNvbnN0cmFp
bmluZ1JlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludChzY3JvbGxPZmZzZXQueCgpICsgc2Nyb2xs
YmFyT2Zmc2V0LCBzY3JvbGxPZmZzZXQueSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA3YTU5NThjOTIzYTIxNDg2MjFhZmNkYzNjNGRiY2Y0YTM3YjQy
MzExLi41Njk1NjFiYzc0ZDNkN2MwZDNiNTFkYjRjZjY0N2UzMjgxZmQzNmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI0MzAsOSArMjQzMCwxMCBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFi
c29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAvLyBib3JkZXIgZWRnZS4gTWFrZSB0aGUg
cmVjdGFuZ2xlIHJlbGF0aXZlIHRvIHRoZSBzY3JvbGxhYmxlIGFyZWEuCiAgICAgICAgIGxvY2Fs
RXhwb3NlUmVjdC5tb3ZlQnkoLUxheW91dFBvaW50KGJveC0+Ym9yZGVyTGVmdCgpLCBib3gtPmJv
cmRlclRvcCgpKSk7CiAKLSAgICAgICAgaWYgKGJveC0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpKSB7Ci0gICAgICAgICAgICAvLyBGb3IgZGlyZWN0aW9uOiBydGw7
IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC10YiBib3gsIHRoZSBzY3JvbGwgYmFyIGlzIG9uIHRo
ZSBsZWZ0IHNpZGUuIFRoZSB2aXNpYmxlIHJlY3QKLSAgICAgICAgICAgIC8vIHN0YXJ0cyBmcm9t
IHRoZSByaWdodCBzaWRlIG9mIHNjcm9sbCBiYXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVj
dCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2FtZSBwb3NpdGlvbiB0b28uCisgICAgICAgIGlmIChi
b3gtPnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgeworICAgICAgICAgICAg
Ly8gRm9yIGBkaXJlY3Rpb246IHJ0bDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH1g
IGFuZCBgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybGAKKyAgICAgICAgICAgIC8vIGJveGVzLCB0
aGUgc2Nyb2xsIGJhciBpcyBvbiB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0IHN0YXJ0
cyBmcm9tIHRoZSByaWdodCBzaWRlCisgICAgICAgICAgICAvLyBvZiB0aGUgc2Nyb2xsIGJhci4g
U28gdGhlIHggb2YgbG9jYWxFeHBvc2VSZWN0IHNob3VsZCBzdGFydCBmcm9tIHRoZSBzYW1lIHBv
c2l0aW9uIHRvby4KICAgICAgICAgICAgIGxvY2FsRXhwb3NlUmVjdC5tb3ZlQnkoTGF5b3V0UG9p
bnQoLXNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCksIDApKTsKICAgICAg
ICAgfQogICAgICAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRzKDBfbHUsIDBfbHUsIGJveC0+Y2xp
ZW50V2lkdGgoKSwgYm94LT5jbGllbnRIZWlnaHQoKSk7CkBAIC0yNjc2LDcgKzI2NzcsNyBAQCB2
b2lkIFJlbmRlckxheWVyOjpyZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldnQsIGNv
bnN0IExheW91dFNpemUmIG9sZE9mZgogICAgIGVsZW1lbnQtPnNldE1pbmltdW1TaXplRm9yUmVz
aXppbmcobWluaW11bVNpemUpOwogICAgIAogICAgIExheW91dFNpemUgYWRqdXN0ZWRPbGRPZmZz
ZXQgPSBMYXlvdXRTaXplKG9sZE9mZnNldC53aWR0aCgpIC8gem9vbUZhY3Rvciwgb2xkT2Zmc2V0
LmhlaWdodCgpIC8gem9vbUZhY3Rvcik7Ci0gICAgaWYgKHJlbmRlcmVyLT5zaG91bGRQbGFjZUJs
b2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBpZiAocmVuZGVyZXItPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBuZXdPZmZzZXQuc2V0
V2lkdGgoLW5ld09mZnNldC53aWR0aCgpKTsKICAgICAgICAgYWRqdXN0ZWRPbGRPZmZzZXQuc2V0
V2lkdGgoLWFkanVzdGVkT2xkT2Zmc2V0LndpZHRoKCkpOwogICAgIH0KQEAgLTI3MzMsNyArMjcz
NCw3IEBAIFJlbmRlckxheWVyOjpPdmVyZmxvd0NvbnRyb2xSZWN0cyBSZW5kZXJMYXllcjo6b3Zl
cmZsb3dDb250cm9sc1JlY3RzKCkgY29uc3QKICAgICAvLyBTY3JvbGxiYXJzIHNpdCBpbnNpZGUg
dGhlIGJvcmRlciBib3guCiAgICAgYXV0byBvdmVyZmxvd0NvbnRyb2xzUG9zaXRpb25pbmdSZWN0
ID0gc25hcHBlZEludFJlY3QocmVuZGVyQm94LnBhZGRpbmdCb3hSZWN0SW5jbHVkaW5nU2Nyb2xs
YmFyKCkpOwogCi0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVu
ZGVyQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICBi
b29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQgPSByZW5kZXJCb3guc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5k
ZXJlcigpLnN0eWxlKCkucmVzaXplKCkgIT0gUmVzaXplOjpOb25lOwogCiAgICAgT3ZlcmZsb3dD
b250cm9sUmVjdHMgcmVzdWx0OwpAQCAtMjc4Niw3ICsyNzg3LDcgQEAgU3RyaW5nIFJlbmRlckxh
eWVyOjpkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QKIEludFNpemUgUmVuZGVyTGF5ZXI6Om9mZnNl
dEZyb21SZXNpemVDb3JuZXIoY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiB7CiAg
ICAgYXV0byByZXNpemVyUmVjdCA9IG92ZXJmbG93Q29udHJvbHNSZWN0cygpLnJlc2l6ZXI7Ci0g
ICAgYXV0byByZXNpemVDb3JuZXIgPSByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKSA/IHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCkgOiByZXNp
emVyUmVjdC5tYXhYTWF4WUNvcm5lcigpOworICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVy
ZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5t
aW5YTWF4WUNvcm5lcigpIDogcmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKICAgICByZXR1
cm4gbG9jYWxQb2ludCAtIHJlc2l6ZUNvcm5lcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBkY2NlY2NmZDUwMGVh
MGViNzExZTA3OTg0YjM4MTQxZDg3YTZkNjFkLi41Njg0MDhkOGE4MzA2ZWY3NDhkOWM5Yjc4Yzkw
MDIxMDUxMTEyNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMjIzMCw3ICsyMjMwLDcgQEAgRmxvYXRQb2ludCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnBvc2l0aW9uRm9yQ2xpcExheWVyKCkgY29uc3QKICAgICBhdXRv
JiBmcmFtZVZpZXcgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAKICAgICByZXR1cm4gRmxv
YXRQb2ludCgKLSAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkg
OiAwLAorICAgICAgICBmcmFtZVZpZXcuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpID8gZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSA6IDAsCiAgICAg
ICAgIEZyYW1lVmlldzo6eVBvc2l0aW9uRm9ySW5zZXRDbGlwTGF5ZXIoZnJhbWVWaWV3LnNjcm9s
bFBvc2l0aW9uKCksIGZyYW1lVmlldy50b3BDb250ZW50SW5zZXQoKSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5k
ZXggZGFiNWVhOTg0ZTcyZTFhNWRmYmZiMTE0OThjN2I3MjhmYjk5ZjdhZi4uMmJiNWE1NTI4OWY2
NDg5ODAxNGY3NDVlYjRlMWIxMzAxMGE1MTQ5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAtMjA3LDcgKzIwNyw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAjZW5kaWYKIH0KIAotYm9vbCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0CiB7CiAvLyBSVEwgU2Nyb2xsYmFycyByZXF1aXJlIHNvbWUgc3lz
dGVtIHN1cHBvcnQsIGFuZCB0aGlzIHN5c3RlbSBzdXBwb3J0IGRvZXMgbm90IGV4aXN0IG9uIGNl
cnRhaW4gdmVyc2lvbnMgb2YgT1MgWC4gaU9TIHVzZXMgYSBzZXBhcmF0ZSBtZWNoYW5pc20uCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTIxNSwxMiArMjE1LDEyIEBAIGJvb2wgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0CiAjZWxzZQogICAgIHN3aXRjaCAoc2V0dGluZ3MoKS51c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5KCkpIHsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k6
OkNvbnRlbnQ6Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rp
b25TY3JvbGxiYXJPbkxlZnQoKTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VW
ZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogICAgIGNhc2UgVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeTo6U3lzdGVtOgogICAgICAgICByZXR1cm4gc2V0dGluZ3MoKS5zeXN0ZW1MYXlvdXRE
aXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpSVEw7CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsKKyAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKaW5kZXggOWM5NjZmN2ViMmYwMjdkNjMw
ZDAyMTMyYWRiOWIxM2NiYThlOWRmMS4uNDlmMThhMTE5OWEyZDc4YTUzZGRkNWM2YWYzZDdmZjhk
YzViMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0OwogCiAgICAgT3B0aW9uYWw8TGF5ZXJSZXBhaW50UmVjdHM+IGxheWVyUmVwYWludFJlY3Rz
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCBjMGM1MDJhYjk1ZWI4NDk5ZTBhZDY4NTIxNDlm
MDFmMTlhM2MxYTQxLi43NzNjNDdjNmNjMmZlNzBhNGVlMTY5NGM5MjA5MDkxMGE0OTU2ZGY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCkBAIC0xMTksOSArMTE5LDkgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFi
bGVBcmVhOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIGVsZW1lbnQtPnNldFNhdmVkTGF5
ZXJTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgpKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29u
c3QKK2Jvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5z
aG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIG1f
bGF5ZXIucmVuZGVyZXIoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCk7CiB9
CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTY1NCw3ICs2NTQsNyBAQCBSZW5k
ZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6
b3ZlcmZsb3dDb250cm9sc1JlYwogCiAgICAgYm9vbCBoYXZlTm9uT3ZlcmxheUhvcml6b250YWxT
Y3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIobV9oQmFyLmdldCgpKTsKICAgICBib29s
IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIgPSBpc05vbk92ZXJsYXlTY3JvbGxiYXIo
bV92QmFyLmdldCgpKTsKLSAgICBib29sIHBsYWNlVmVydGljYWxTY3JvbGxiYXJPblRoZUxlZnQg
PSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgYm9vbCBw
bGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpOwogICAgIGJvb2wgaGF2ZVJlc2l6ZXIgPSByZW5kZXJlci5zdHlsZSgpLnJl
c2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKICAgICBib29sIHNjcm9sbGJhcnNBdm9pZENvcm5lciA9
IChoYXZlTm9uT3ZlcmxheUhvcml6b250YWxTY3JvbGxiYXIgJiYgaGF2ZU5vbk92ZXJsYXlWZXJ0
aWNhbFNjcm9sbGJhcikgfHwgKGhhdmVSZXNpemVyICYmIChoYXZlTm9uT3ZlcmxheUhvcml6b250
YWxTY3JvbGxiYXIgfHwgaGF2ZU5vbk92ZXJsYXlWZXJ0aWNhbFNjcm9sbGJhcikpOwogCkBAIC0x
MDIxLDcgKzEwMjEsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmNvbXB1dGVT
Y3JvbGxPcmlnaW4oKQogICAgIEFTU0VSVChib3gpOwogCiAgICAgaW50IHNjcm9sbGFibGVMZWZ0
T3ZlcmZsb3cgPSByb3VuZFRvSW50KG92ZXJmbG93TGVmdCgpIC0gYm94LT5ib3JkZXJMZWZ0KCkp
OwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisg
ICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAvKnx8IGJveC0+c3R5
bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCovKQogICAgICAg
ICBzY3JvbGxhYmxlTGVmdE92ZXJmbG93IC09IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAg
ICBpbnQgc2Nyb2xsYWJsZVRvcE92ZXJmbG93ID0gcm91bmRUb0ludChvdmVyZmxvd1RvcCgpIC0g
Ym94LT5ib3JkZXJUb3AoKSk7CiAgICAgc2V0U2Nyb2xsT3JpZ2luKEludFBvaW50KC1zY3JvbGxh
YmxlTGVmdE92ZXJmbG93LCAtc2Nyb2xsYWJsZVRvcE92ZXJmbG93KSk7CkBAIC0xMTA0LDcgKzEx
MDQsNyBAQCB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNB
ZnRlckxheW91dCgpCiAgICAgICAgIGlmIChib3gtPmhhc1ZlcnRpY2FsU2Nyb2xsYmFyV2l0aEF1
dG9CZWhhdmlvcigpKQogICAgICAgICAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoaGFzVmVy
dGljYWxPdmVyZmxvdyk7CiAKLSAgICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5n
ZWQgJiYgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICBpZiAoYXV0b1ZlcnRpY2FsU2Nyb2xsQmFyQ2hhbmdlZCAmJiBzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkpCiAgICAgICAgICAgICBjb21wdXRlU2Nyb2xsT3JpZ2luKCk7CiAK
ICAgICAgICAgbV9sYXllci51cGRhdGVTZWxmUGFpbnRpbmdMYXllcigpOwpAQCAtMTM0OCw3ICsx
MzQ4LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpkcmF3UGxhdGZvcm1SZXNp
emVySW1hZ2UoR3JhcGhpY3NDb250ZXh0JiBjb250ZXgKICAgICAgICAgY29ybmVyUmVzaXplclNp
emUgPSByZXNpemVDb3JuZXJJbWFnZS0+c2l6ZSgpOwogICAgIH0KIAotICAgIGlmIChzaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICBpZiAoc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwog
ICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZXNpemVyQ29ybmVyUmVjdC54KCkgKyBjb3JuZXJS
ZXNpemVyU2l6ZS53aWR0aCgpLCByZXNpemVyQ29ybmVyUmVjdC55KCkgKyByZXNpemVyQ29ybmVy
UmVjdC5oZWlnaHQoKSAtIGNvcm5lclJlc2l6ZXJTaXplLmhlaWdodCgpKTsKICAgICAgICAgY29u
dGV4dC5zY2FsZShGbG9hdFNpemUoLTEuMCwgMS4wKSk7CkBAIC0xNTA5LDcgKzE1MDksNyBAQCBi
b29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMo
Y29uc3QgTGF5ZXJGcmFnbWVudHMmCiAgICAgYXV0byByZWN0cyA9IG92ZXJmbG93Q29udHJvbHNS
ZWN0cygpOwogCiAgICAgYXV0byBjb3JuZXJSZWN0SW5GcmFnbWVudCA9IFsmXShjb25zdCBJbnRS
ZWN0JiBmcmFnbWVudEJvdW5kcywgY29uc3QgSW50UmVjdCYgcmVzaXplclJlY3QpIHsKLSAgICAg
ICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgeworICAg
ICAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSB7CiAgICAgICAg
ICAgICBJbnRTaXplIG9mZnNldEZyb21Cb3R0b21MZWZ0ID0gYm9yZGVyQm94UmVjdC5taW5YTWF4
WUNvcm5lcigpIC0gcmVzaXplclJlY3QubWluWE1heFlDb3JuZXIoKTsKICAgICAgICAgICAgIHJl
dHVybiBJbnRSZWN0IHsgZnJhZ21lbnRCb3VuZHMubWluWE1heFlDb3JuZXIoKSAtIG9mZnNldEZy
b21Cb3R0b21MZWZ0IC0gSW50U2l6ZSB7IDAsIHJlc2l6ZXJSZWN0LmhlaWdodCgpIH0sIHJlc2l6
ZXJSZWN0LnNpemUoKSB9OwogICAgICAgICB9CkBAIC0xNTcwLDcgKzE1NzAsNyBAQCB2b2lkIFJl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbGJhcnNBZnRlclN0eWxlQ2hhbmdl
KGNvbnN0IFJlbmRlclN0eQogICAgIHNldEhhc0hvcml6b250YWxTY3JvbGxiYXIobmVlZHNIb3Jp
em9udGFsU2Nyb2xsYmFyKTsKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihuZWVkc1ZlcnRp
Y2FsU2Nyb2xsYmFyKTsKIAotICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVkc1Zl
cnRpY2FsU2Nyb2xsYmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYm
IGJveC0+c3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkg
IT0gb2xkU3R5bGUtPnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkp
CisgICAgaWYgKGhhZFZlcnRpY2FsU2Nyb2xsYmFyICE9IG5lZWRzVmVydGljYWxTY3JvbGxiYXIg
fHwgKG5lZWRzVmVydGljYWxTY3JvbGxiYXIgJiYgb2xkU3R5bGUgJiYgYm94LT5zdHlsZSgpLnNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAhPSBvbGRTdHlsZS0+c2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpKSkKICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdp
bigpOwogCiAgICAgLy8gV2l0aCBub24tb3ZlcmxheSBvdmVyZmxvdzpzY3JvbGwsIHNjcm9sbGJh
cnMgYXJlIGFsd2F5cyB2aXNpYmxlIGJ1dCBtYXkgYmUgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAppbmRleCAy
ODI0NTUxNGRjYWI4Y2MzODRhNTE1NmJkNDk4M2U3Y2RhNGI0NmU4Li5hZTQ3MTk5MzcyM2RmOGFm
MDk3ZmQ1MDk3Njk4OThiODdlNzU2YjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCB1c2VzQ29tcG9zaXRlZFNjcm9sbGluZygpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgdXNlc0FzeW5jU2Nyb2xsaW5nKCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIHNo
b3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsK
IAogICAgIGJvb2wgaXNSZW5kZXJMYXllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJl
Y3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApp
bmRleCA5NTBiMWQ3ZTMxZDJjMGNkODQ3N2RkMWFiNmEzOGM1MGY1NzJkZjlmLi4zZWE3YjcwMjRh
ZWE4Y2I5Zjg1MjgwYjVkOGY2NWE0OWQ5MGU4OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0yODEsNyArMjgxLDcgQEAgTGF5b3V0VW5pdCBSZW5k
ZXJMaXN0Qm94OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUsIGJv
b2wgZmlyc3QKIExheW91dFJlY3QgUmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdChj
b25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgaW50IGluZGV4KQogewogICAgIExh
eW91dFVuaXQgeCA9IGFkZGl0aW9uYWxPZmZzZXQueCgpICsgYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIG1fdkJhcikKKyAgICBpZiAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVm
dCgpICYmIG1fdkJhcikKICAgICAgICAgeCArPSBtX3ZCYXItPm9jY3VwaWVkV2lkdGgoKTsKICAg
ICBMYXlvdXRVbml0IHkgPSBhZGRpdGlvbmFsT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpICsgcGFk
ZGluZ1RvcCgpICsgaXRlbUhlaWdodCgpICogKGluZGV4IC0gbV9pbmRleE9mZnNldCk7CiAgICAg
cmV0dXJuIExheW91dFJlY3QoeCwgeSwgY29udGVudFdpZHRoKCksIGl0ZW1IZWlnaHQoKSk7CkBA
IC0zNjMsNyArMzYzLDcgQEAgdm9pZCBSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcihQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW4KICAgICBpZiAoIW1fdkJh
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQu
eCgpICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRl
ckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKKyAg
ICBMYXlvdXRVbml0IGxlZnQgPSBwYWludE9mZnNldC54KCkgKyAoc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0
KCkgLSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVuaXQgdG9wID0gcGFpbnRPZmZzZXQu
eSgpICsgYm9yZGVyVG9wKCk7CiAgICAgTGF5b3V0VW5pdCB3aWR0aCA9IG1fdkJhci0+d2lkdGgo
KTsKICAgICBMYXlvdXRVbml0IGhlaWdodCA9IHRoaXMtPmhlaWdodCgpIC0gKGJvcmRlclRvcCgp
ICsgYm9yZGVyQm90dG9tKCkpOwpAQCAtNDY5LDcgKzQ2OSw3IEBAIGJvb2wgUmVuZGVyTGlzdEJv
eDo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3Qg
TGF5b3V0CiAgICAgaWYgKCFtX3ZCYXIgfHwgIW1fdkJhci0+c2hvdWxkUGFydGljaXBhdGVJbkhp
dFRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTGF5b3V0VW5pdCB4ID0g
YWNjdW11bGF0ZWRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92
QmFyLT53aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IHggPSBhY2N1bXVsYXRlZE9mZnNldC54KCkg
KyAoc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDog
d2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBtX3ZCYXItPndpZHRoKCkpOwogICAgIExheW91dFVu
aXQgeSA9IGFjY3VtdWxhdGVkT2Zmc2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVu
aXQgd2lkdGggPSBtX3ZCYXItPndpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlz
LT5oZWlnaHQoKSAtIGJvcmRlclRvcCgpIC0gYm9yZGVyQm90dG9tKCk7CkBAIC00OTEsOSArNDkx
LDkgQEAgaW50IFJlbmRlckxpc3RCb3g6Omxpc3RJbmRleEF0T2Zmc2V0KGNvbnN0IExheW91dFNp
emUmIG9mZnNldCkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaW50IHNjcm9sbGJhcldpZHRo
ID0gbV92QmFyID8gbV92QmFyLT53aWR0aCgpIDogMDsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8IGJvcmRlckxl
ZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQud2lkdGgoKSA+
IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQorICAgIGlmIChzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9y
ZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoKSArIHNjcm9sbGJhcldpZHRoIHx8IG9mZnNldC53aWR0
aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmlnaHQoKSkpCiAgICAgICAg
IHJldHVybiAtMTsKLSAgICBpZiAoIXNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgp
IHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRkaW5nUmln
aHQoKSAtIHNjcm9sbGJhcldpZHRoKSkKKyAgICBpZiAoIXNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3JkZXJMZWZ0KCkgKyBwYWRkaW5n
TGVmdCgpIHx8IG9mZnNldC53aWR0aCgpID4gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBwYWRk
aW5nUmlnaHQoKSAtIHNjcm9sbGJhcldpZHRoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAg
aW50IG5ld09mZnNldCA9IChvZmZzZXQuaGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIHBhZGRpbmdU
b3AoKSkgLyBpdGVtSGVpZ2h0KCkgKyBtX2luZGV4T2Zmc2V0OwpAQCAtODAwLDE0ICs4MDAsMTQg
QEAgYm9vbCBSZW5kZXJMaXN0Qm94Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIFJlbmRlckxpc3RC
b3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiByZWN0KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7Ci0gICAgc2Ny
b2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/
IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRo
KCksIGJvcmRlclRvcCgpKTsKKyAgICBzY3JvbGxSZWN0Lm1vdmUoc2hvdWxkUGxhY2VWZXJ0aWNh
bFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0
KCkgLSBzY3JvbGxiYXIud2lkdGgoKSwgYm9yZGVyVG9wKCkpOwogICAgIHJlcGFpbnRSZWN0YW5n
bGUoc2Nyb2xsUmVjdCk7CiB9CiAKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21T
Y3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHNj
cm9sbGJhclJlY3Q7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVy
UmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgo
KSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFy
VG9wID0gYm9yZGVyVG9wKCk7CiAgICAgcmVjdC5tb3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJh
clRvcCk7CiAgICAgcmV0dXJuIHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVy
VG9Db250YWluaW5nVmlldyh0aGlzLCByZWN0KTsKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbnRSZWN0
IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25z
dCBTY3JvbGxiYXImIHNjcgogSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0gdmlldygpLmZy
YW1lVmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRoaXMsIHBhcmVu
dFJlY3QpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlv
blNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJpZ2h0
KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBi
b3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9
IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJhclRv
cCk7CiAgICAgcmV0dXJuIHJlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW50UmVjdCBSZW5kZXJM
aXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xs
YmFyJiBzY3IKIEludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9D
b250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbGJhclBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gc2Nyb2xsYmFy
UG9pbnQ7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0g
Ym9yZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3Ap
OwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29u
dGFpbmluZ1ZpZXcodGhpcywgcG9pbnQpOwpAQCAtODM0LDcgKzgzNCw3IEBAIEludFBvaW50IFJl
bmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBT
Y3JvbGxiYXImIHNjCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBv
aW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHZpZXcoKS5m
cmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJl
bnRQb2ludCk7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmln
aHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAt
IGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9w
ID0gYm9yZGVyVG9wKCk7CiAgICAgcG9pbnQubW92ZSgtc2Nyb2xsYmFyTGVmdCwgLXNjcm9sbGJh
clRvcCk7CiAgICAgcmV0dXJuIHBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmgKaW5kZXggMjFiYmFhMjc4MDg2MDk4MWUxODJhZjBmOTkyNmM0ZjIxN2UxMzQyZS4u
OWY5M2QxOGU0MWRjOWM3M2I5ZTU5NjI5NTllNjA2YTU1ZWYwYWQwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBhaW50SXRlbUJhY2tncm91bmQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmLCBpbnQgbGlzdEluZGV4KTsKICAgICB2b2lkIHNjcm9sbFRvUmV2ZWFsU2VsZWN0aW9uKCk7
CiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6OnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFJlbmRlckJsb2NrRmxvdzo6c2hv
dWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpOyB9CiAKICAgICBib29sIG1fb3B0aW9u
c0NoYW5nZWQ7CiAgICAgYm9vbCBtX3Njcm9sbFRvUmV2ZWFsU2VsZWN0aW9uQWZ0ZXJMYXlvdXQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNGMzZmY0ZmFmZDJl
YjUyMmNlZWVmZDVjMjliNDg4M2I5NWNjMWFkMS4uM2NkMzBkYjc1ZjUxZmYyYTYzMTY0YmFhNTYz
ZWJhMjVkZDA1NGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApA
QCAtNDczLDcgKzQ3Myw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUo
Y29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpIGNvbnN0CiAgICAgICAgIC8vIGFuZCB0aGUg
UmVuZGVyZXIgdGhhdCBjb250YWlucyB0aGUgaWZyYW1lLiBUaGlzIHRyYW5zZm9ybWF0aW9uIG11
c3QgYWNjb3VudCBmb3IgYQogICAgICAgICAvLyBsZWZ0IHNjcm9sbGJhciAoaWYgb25lIGV4aXN0
cykuCiAgICAgICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3ID0gdGhpcy0+ZnJhbWVWaWV3KCk7Ci0g
ICAgICAgIGlmIChmcmFtZVZpZXcuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpICYmIGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpKQorICAgICAgICBpZiAoZnJh
bWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcu
dmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlKExheW91
dFNpemUoZnJhbWVWaWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCktPm9jY3VwaWVkV2lkdGgoKSwgMCkp
OwogCiAgICAgICAgIG93bmVyQm94LT5yZXBhaW50UmVjdGFuZ2xlKGFkanVzdGVkUmVjdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBl
ZGYxNzBhOTY5YTkwN2U5OTgzNjkyZWI5ODg1ODkwMmU3YjM2MzU4Li4wOWI4M2M4ZTMwMzlkM2Nh
ZmUzNzcxMzIzYTJiNDA1NTUxMDBjMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI1ODEsOSArMjU4MSw5IEBAIGZsb2F0IFJlbmRl
clN0eWxlOjpvdXRsaW5lT2Zmc2V0KCkgY29uc3QKICAgICByZXR1cm4gbV9iYWNrZ3JvdW5kRGF0
YS0+b3V0bGluZS5vZmZzZXQoKTsKIH0KIAotYm9vbCBSZW5kZXJTdHlsZTo6c2hvdWxkUGxhY2VC
bG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0Citib29sIFJlbmRlclN0eWxlOjpz
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
IWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwor
ICAgIHJldHVybiAoIWlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSAmJiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKSB8fCB3cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDsK
IH0KIAogVmVjdG9yPFBhaW50VHlwZSwgMz4gUmVuZGVyU3R5bGU6OnBhaW50VHlwZXNGb3JQYWlu
dE9yZGVyKFBhaW50T3JkZXIgb3JkZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IDk3MzAyZmE2MjcxNGI3OTEzZDUxZDhmMGJhNDE1YjQ1ZjVl
YTNkODQuLjNiYTAwNDBmMmQwMDk2MGU1MjcxYWM3OWMxZGI1NWY5NzkyN2E4MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC04MjksNyArODI5
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzSXNvbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICNlbmRpZgogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFy
T25MZWZ0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoQ1NTX1RSQUlMSU5HX1dPUkQpCiAgICAgVHJh
aWxpbmdXb3JkIHRyYWlsaW5nV29yZCgpIGNvbnN0IHsgcmV0dXJuIFRyYWlsaW5nV29yZDo6QXV0
bzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJv
eHlXaW4uaAppbmRleCA1N2NmMDhmZGQ2NzZlMjQ1YzE0OGQ3ZGNlZjBmMTNlZjRhZWNhOGMyLi5l
ZWQzYTg0ZjQyOWMyODdkYTZlMGI0ODQ2NjMyYTdhOWE5NDhmM2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaApAQCAtODAsNyAr
ODAsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgdmlzaWJsZVNpemUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChi
b29sKiA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFy
c09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFu
ZGFibGVBbmNlc3RvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBiNWU2ZTUxOGJk
NWY5MDBlYzBlMWQ5NDRmZWI1NzQ4Mjk3MzM5MDY1Li42Y2RiZWRjZDA4NTcyZTBiNjU5OTg1NDNm
ZGY0MmYyNTg0MDIyMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5oCkBAIC0yNTYsNyArMjU2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3Qg
V2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbGJhclBv
aW50KSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZvcmNl
VXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0
IGZpbmFsOwotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBzaG91bGRQbGFjZVZl
cnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gUERGUGx1
Z2luIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2Y2RmYTVhMjg0N2U2M2UxYzA5ZDY0ODA5NDI1ZTk0YmQx
NDFmNWY4Li41ODRlM2Y1YjA2YmRlZTU5MGQzODU5MDE3OWYzYjUxYmUyNWY5YTk0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMjEtMDQtMTIgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFw
cGxlLmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxpbmUv
YmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIGNzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlv
bi1keW5hbWljLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24t
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3Jv
bGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWw6
IEFkZGVkLgorCiAyMDIxLTA0LTEyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NTc5My4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGM5ZDBlNzdiMzNlZTg1NmZkZjE2MDI0YjkxZmI4NGUz
NTkxZTg0ZGUuLmEwNTc2MzVhZTVlYWY3ZDkwYzhiNDJjMTM5MjAwODM2NTg5YjBmMTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTEyICBD
YW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVy
dGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGlu
ZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxv
Y2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20t
dmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dDoKKwogMjAyMS0wNC0xMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyNzU3OTMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4NmFiNmQzZjZkMzM5Y2NmMzQ3
YmZmMWYwMjcwNDRhMjU3MDA2M2YyLi5hMGI1NzI0NWZlNzdhZTY2YWI2NzZjOTQ0NDA0OWFkNGNh
OGQwNjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4NzAsNiArNDg3MCwxMCBAQCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAw
Mi5odG1sIFsgSW1hZ2VPbgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGlu
Zy0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRlc3RzIHRoYXQgZmFpbCBiZWNh
dXNlIHRoZXkgYXNzdW1lIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIGB3cml0aW5nLW1vZGU6IHZl
cnRpY2FsLXJsYCBlbGVtZW50cyB3aWxsIGJlIG9uIHRoZSByaWdodC1oYW5kIHNpZGUKK3dlYmtp
dC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdy
aXRpbmctbW9kZXMvc2l6aW5nLW9ydGhvZy12cmwtaW4taHRiLTAxMy54aHQgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20tdmlldy9jc3NvbS1nZXRCb3VuZGluZ0NsaWVudFJlY3QtdmVydGljYWwt
cmwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCiAjIEBjb3VudGVyLXN0eWxlIHJlZiB0ZXN0
cyB0aGF0IGN1cnJlbnRseSBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY291bnRlci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3VudGVyLXN0eWxlcy0wMDYuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1zdHlsZXMtMDA3Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKaW5kZXggNjI1NDcyZjQ3ZjFkZmQxNjEy
ZjViZTQ4YjFmMWM5NDdiYjgzNWVhMC4uMGY2YWU4NWFjNjYwYmE4MWRkMjVhYzg1MWI4ZTEzZGM2
YzYwZTQ5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJm
bG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92
ZXJmbG93LWV4cGVjdGVkLmh0bWwKQEAgLTI4LDYgKzI4LDEwIEBACiBwIHsKICAgICBtYXJnaW4t
Ym90dG9tOiAzMHB4OwogfQorCisudG9wUmlnaHQgeworICAgIGRpcmVjdGlvbjogcnRsOyAgLyog
cGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgTEhTICovCit9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZs
b3ctcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNh
bC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwMTU1ODlkNzRkOWIxOTU3MjE1
ZTIzMGRkMDcyZjA4NGU5NTBiYWUuLjgyYTRmZWFhYTIzMzU4MzkyODk5MmM3NmY4Y2RlMjEyZWM4
NjlkNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92
ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogKHJl
cGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjkgMTAwIDEwMCkKKyAgKHJlY3QgNDQgMjkgMTAwIDEw
MCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92
ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDc3YWJmYmNkNzgxMTdlODllZmMz
MTM2N2YzYzNmZGFhZDc2Yjg0MWYuLmI3NTkxNDE2NGQ4MThjMzgzYmQxZTMyMzQ1NDI5MTM3NDg2
YjM0NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVy
Zmxvdy1zYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVy
dGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAocmVwYWlu
dCByZWN0cwotICAocmVjdCAyOSAyMSAxMDAgMTAwKQorICAocmVjdCA0NCAyMSAxMDAgMTAwKQog
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJh
cnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQxNmI0NzI3YTBiOGJhZWU5YTY0NTFhYjc4YjVlZTNm
Y2Y1OTQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Yt
cmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9sbDsiPgorICA8ZGl2
IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4IHNvbGlkIGJs
YWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAx
MDBweDsgZGlyZWN0aW9uOiBsdHI7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdpbi10b3A6IDFlbTsi
PgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjogNHB4
IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjBmNzA2Yzk2M2Y2MGMxZGRkNzJiOGRl
MjY4ODgxYTEyZTYyZDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBpZD1vbmUgc3R5bGU9IndpZHRoOiAx
MDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOyBvdmVyZmxv
dzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsg
Ym9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD10d28gc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1y
bDsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFyZ2luLXRvcDogMWVtOyI+CisgIDxkaXYgc3R5bGU9Indp
ZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rp
dj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworb25lLnN0eWxl
LndyaXRpbmdNb2RlID0gInZlcnRpY2FsLXJsIjsKK3R3by5zdHlsZS53cml0aW5nTW9kZSA9ICJo
b3Jpem9udGFsLXRiIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0
aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg4YjZjYTQ5YjIxZTQyMjE1MDk4MDU2YWE1
YjMzOWUzMTQ4ZTY1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVp
Z2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBz
dHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFj
azsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGlu
Zy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44N2EwYmYwODMyOTBjM2U1NTVkMTU4NjIyODQ3Y2NhNGE3OTZkZjE3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRp
YWwtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBz
dHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVp
Z2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBv
c2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2Fs
LXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNzBiODBkZDBi
OGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEg
dmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKworCisKKworVGhlc2UgZm91ciBjb250
YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSBsZWZ0LgorCisK
KworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGlj
YWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92
ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmEzOWRhNjhlMjRm
Mzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwKQEAgLTAs
MCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitzZWN0aW9uID4gZGl2LCBzZWN0
aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBoZWlnaHQ6IDEwMHB4Owor
ICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsKKyAgb3ZlcmZsb3ct
eDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7CisgIG1hcmdpbjogMTBweCAxMHB4IDAg
MDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4OworICBoZWlnaHQ6IDIwcHg7CisgIGJh
Y2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7IGRpcmVjdGlvbjogbHRyOyB9Cisu
cnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyB9Cisu
di1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKy52LWxyIHsgd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9uIGNsYXNzPSJyaWdodCI+CisgIDxw
PlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBv
biB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIGx0ciI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaC1idCBs
dHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+Cisg
IDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9
IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIHJ0bCI+PGRpdiBjbGFzcz0ic3F1
YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4KKworPHNlY3Rp
b24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUg
YSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRi
IHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0
ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBsdHIiPjxkaXYgY2xhc3M9
InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2
LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9k
aXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMiPkZBSUw8L3ByZT4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9yIChsZXQgc3F1YXJlIG9mIGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgeworICAgIGxldCBhY3R1YWwgPSBzcXVh
cmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFyZS5wYXJlbnROb2RlLm9mZnNldExl
ZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3Rl
ZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgdGV4dCArPSBgUG9z
aXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnROb2RlLmNsYXNzTmFtZX0nIC0gZXhw
ZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7CisgICAgfQorfQorcmVzdWx0cy50
ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNu
YXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJs
b2NrLWV4cGVjdGVkLnR4dAppbmRleCA2OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUzY2ZlYWQyMTRhNjc0
ZWQ1MmFiLi5kNmI3Nzk1NzJiNjQzMTk2Y2NiOWQ3ZGVkYmNhMjAxMGU5MTg3ZTFmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAogUEFTUyBT
bmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAogRkFJTCBTbmFwcyBjb3JyZWN0bHkg
Zm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4
cGVjdGVkIDExNSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2Fs
LXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGln
bm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUg
YnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGlu
ZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3Nl
cnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMTY1
CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6
IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAwCiBGQUlMIFNuYXBz
IGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFw
LWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVj
dGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9y
IHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQg
ZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVj
dGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlv
bjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNz
ZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAt
NDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25z
IGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNv
cnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5
IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
J2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGln
bm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBi
dXQgZ290IDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12
aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVk
LnR4dAppbmRleCA1YmQzYmM3MWRkMDNhY2UyY2VjN2EzNDQwYTdiZGM2ZGQ0MjQ2NmI4Li41MTIx
NmJiOWE5OTBhMDc1NmFmZWJiMGQ0YTBkYjNiMGNhNTY4MWYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bExlZnRUb3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQK
QEAgLTExLDYgKzExLDYgQEAgUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0
aW9uOmx0cgogUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0aW9uOnJ0bAog
UEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIKIFBBU1Mgd3JpdGlu
Zy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCi1GQUlMIHdyaXRpbmctbW9kZTp2ZXJ0
aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5kaW5nIHNjcm9s
bExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAotRkFJTCB3cml0aW5nLW1v
ZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGVuZGlu
ZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0xNTAKK1BBU1Mgd3Jp
dGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyCitQQVNTIHdyaXRpbmctbW9kZTp2
ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDQ2Zjc5N2NlMzFhMWNmMGIzOWFjMDRlM2Y1NjI1N2Y2YWFiZTVh
MDIuLmFkZDNjOWIxNDEzYjc2YWQyNmNlYjk1Yjk4ZmViMGJkMTUwOTFiYTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDYwLDYgKzEwNjAsNyBAQCBm
YXN0L3Njcm9sbGluZy9zY3JvbGxpbmctaW5zaWRlLXNjcm9sbGVkLW92ZXJmbG93YXJlYS5odG1s
IFsgU2tpcCBdCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC10eXBlLWF0dHJpYnV0ZS5odG1s
IFsgU2tpcCBdCiAKICMgUlRMIFNjcm9sbGJhcnMgYXJlIG9ubHkgaW1wbGVtZW50ZWQgb24gY2Vy
dGFpbiB2ZXJzaW9ucyBvZiBPUyBYCitjc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3cuaHRtbAog
ZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtaWZyYW1lLXNjcm9sbGVkLmh0bWwgWyBTa2lw
IF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWxpc3Rib3gtc2Nyb2xsLmh0bWwgWyBT
a2lwIF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWxpc3Rib3gtc2VsZWN0LWxlZnQu
aHRtbCBbIFNraXAgXQpAQCAtMTA2Nyw2ICsxMDY4LDkgQEAgZmFzdC9zY3JvbGxpbmcvcnRsLXNj
cm9sbGJhcnMtcG9zaXRpb24tYWJzb2x1dGUuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcv
cnRsLXNjcm9sbGJhcnMtcG9zaXRpb24tZml4ZWQuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxp
bmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1zZWxlY3Rpb24tc2Nyb2xsZWQuaHRtbCBbIFNraXAgXQog
ZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1zZWxlY3Rpb24uaHRtbCBbIFNraXAg
XQorZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1p
Yy5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1w
b3NpdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIFRoaXMgaXMgc3BlY2lmaWMgdG8gZXh0ZW5zaW9u
cyBvbiBtYWNPUwogd2Via2l0Lm9yZy9iLzE2Nzc5NSBodHRwL3Rlc3RzL3NlY3VyaXR5L2J5cGFz
c2luZy1jb3JzLWNoZWNrcy1mb3ItZXh0ZW5zaW9uLXVybHMuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426087</attachid>
            <date>2021-04-15 02:01:19 -0700</date>
            <delta_ts>2021-04-15 14:11:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210415190118.patch</filename>
            <type>text/plain</type>
            <size>63623</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljNGY2NGJjYmI5Zjc1
NWM5OTc4MTEyNWJkNzM1NjZhMzRiOTcyOC4uZmM4ZWNmYjE1ZmM4ODAwMWI3YmY0MGU1ODUwZDkx
NjFmMDc5NmY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTE1ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdm9pZCBp
bmRpcmVjdCBsb2FkIGluIENvbnRhaW5lck5vZGU6Omhhc09uZUNoaWxkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDVlM2E4YjViZDBiZTQ4MzEzMTk5YjFhZmNjMWJkYjY5NTRjZjAyNC4uZDI1NzZlNjcxOWQyZDIw
ZmJiYzcyOGQ1MjVkOTM2NDdiMzE5ZDdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0wNC0xNSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAg
IFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4g
YWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTE0ICBC
YXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBGaXggV0tf
RVhQT1JUIG1hY3JvIGZvciBkZWNsc3BlYyBjb21waWxlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCBkMzgzNGI1ZGNhYzBiZGU1MDkxNjllOTZjMjBmYzIyYjQwMWM0NTI4
Li5jMzUzM2U0MDc2ZmU2OWVkMzExOGI5ZWRiZTBhYjg5YjZlYjY2N2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTE4LDcgKzE1MTgsNyBAQCBPcHRpb25hbDxDdXJz
b3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgYm9vbCBzaAogICAgICAgICAgICAgYXV0byYgbGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlckxheWVyTW9kZWxPYmplY3Q+KCpyZW5kZXJlcik7CiAgICAgICAgICAgICBpblJlc2l6ZXIg
PSBsYXllclJlbmRlcmVyLmxheWVyKCktPmlzUG9pbnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZElu
dFBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkpKTsKICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0
aEVhc3RSZXNpemVDdXJzb3IoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJl
ci5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVD
dXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKChlZGl0YWJsZSB8fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUt
PmNhblN0YXJ0U2VsZWN0aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFy
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3
MTFmODRiZTExMjQ5NDdjODY1OS4uMDIxN2QzNDJiZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdj
NTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAg
SW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25z
dAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0
IH07CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRl
clZpZXcoKS0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAg
IHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IDA2YWUzYTQ3MTEwYzU3NDcwMzMwZmY5NTljZTNjOGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2Fj
NDNmYTQzMWY1ZjllYzg2N2U5OTIxMmUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAt
NjU1LDcgKzY1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lk
IGhpZGUoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJh
Y2tGb3J3YXJkQ2FjaGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCA4ZTZiM2FhYjU5OGEzNzRjNzEzMjQzNmY4YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIx
NjkzMGVlZmFhZWJlMDNlNTAyZjEwNTUyMDM0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZp
ZXc6OmFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24m
CiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRp
dmVUb1ZpZXdPcmlnaW4oKSBjb25zdAogewogICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0g
SW50U2l6ZSgKLSAgICAgICAgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGll
ZFdpZHRoKCkgOiAwLAorICAgICAgICBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVk
V2lkdGgoKSA6IDAsCiAgICAgICAgIGhlYWRlckhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KFRv
cENvbnRlbnRJbnNldFR5cGU6OldlYkNvcmVPclBsYXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAK
QEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29u
c3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV9ob3Jpem9udGFs
U2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwog
ICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3Qo
KSk7Ci0gICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xs
YmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAorICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8g
bV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAgICAgIGhl
aWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdp
ZHRoKCkgLSAobV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3Vw
aWVkV2lkdGgoKSA6IDApLAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWln
aHQoKSk7CkBAIC03NTEsNyArNzUxLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVy
dGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWln
aHQoKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1l
UmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PndpZHRoKCksCisgICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0
aCgpLAogICAgICAgICAgICAgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50
SW5zZXQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXIt
Pm9jY3VwaWVkSGVpZ2h0KCkgOiAwKSk7CkBAIC0xMTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3Qg
U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNr
ZWRCeVNjcm9sbGJhciA9IGhlaWdodCgpIC0gdG9wQ29udGVudEluc2V0KCk7CiAKICAgICBpZiAo
bV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT53aWR0aCgpLAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJh
ci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7
CiAgICAgfQogCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAg
IGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRo
KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRl
bnRJbnNldCgpLAogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgIGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PmhlaWdodCgpKSk7CkBAIC0xNTM4LDcgKzE1MzgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxl
QW5kUmVuZGVyVHJlZURpZENoYW5nZSgpCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9m
Q29udGVudHMoKSBjb25zdAogewogICAgIEludFBvaW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0g
ICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3Zl
cnRpY2FsU2Nyb2xsYmFyKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhcikKICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0
aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpLCAwKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNk
YjdmNjc5Mzk4YTdjODc3MzEyZWQ0OTdjMTZmZThkOS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3
N2M4ZmQ1MGI3MzhhZjlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5oCkBAIC0zNDIsNyArMzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9j
a1Njcm9sbEFuaW1hdG9yKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1
NGJhMWUyYjdjMDYxZTljZWI0NTlmNGNjNTUwZWFlNWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNl
ZTk3OTM3ZDljMzhiY2EzZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3
IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJh
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAKICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJl
Y3Q7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9s
bGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChz
Y3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkpCiAgICAgICAgICAgICAgICAgZnJhbWUubW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJl
ZFNjcm9sbGJhckJvcmRlclNpemUsIDApOwogICAgICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92
ZXJlZFNjcm9sbGJhckJvcmRlclNpemUpOwogICAgICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAs
NyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgIEludFJlY3QgdGh1bWIgPSByZWN0Owog
ICAgIGlmIChzY3JvbGxiYXIuaG92ZXJlZFBhcnQoKSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlT
Y3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZl
cnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3Jv
bGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJs
YXlUaHVtYlNpemUgKyB0aHVtYkJvcmRlclNpemUpICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNp
emUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29s
IFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpYwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYg
KHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAg
ICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAg
ICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0
aHVtYlNpemUgLyAyKSAtIGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRo
dW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIu
bW92ZShzY3JvbGxiYXJTaXplIC0gKHNjcm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMiks
IHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcx
NjA4MTU3ZjNlZmVjZDY4NGE3YjAuLjI4OTZjN2YzYjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThm
YzIxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9s
bGJhclBhcnRTdGF0ZUZsYWdzKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBz
dGF0aWMgUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihT
Y3JvbGxiYXImIHNjcm9sbGJhciwgR3RrU3RhdGVGbGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxl
QXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAg
IHJldHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVy
VGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1l
U2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJl
dHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJbmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0z
ODAsNyArMzgwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRo
ZSBpbmRpY2F0b3Igd2UgbmVlZCB0byBhZGp1c3QgdGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFs
IHNpemUgaW4gaW5kaWNhdG9yIG1vZGUuCiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigp
ID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJl
ZmVycmVkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3Zl
KHN0ZDo6YWJzKHJlY3Qud2lkdGgoKSAtIHByZWZlcnJlZFNpemUud2lkdGgoKSksIDApOwogICAg
ICAgICAgICAgY29udGVudHNSZWN0LnNldFdpZHRoKHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbQppbmRleCBiZDA2MTVmMjJkMzU4NjIwNGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41
Mzk2MWE3YjcyMDQwMWY3MmUyMjQ1Y2JiNGUyMWI3Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5
LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xs
YmFyJiBzY3JvbGxiYXIpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNj
cm9sbGVySW1wID0gcGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChz
Y3JvbGxlckltcCk7Ci0gICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9M
ZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Ny
b2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5k
ZXggN2Q1N2RhYTljZGZhODFjNGU1ZDc1N2E2Y2I2NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1
MmVkZjMzMDE5ZWExNjljYjJiMTM2MWJmNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50
U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFi
bGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGlu
ZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25s
eSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxh
YmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZk
NWYzZmY0MzQ0ZGMwYS4uMjYwNmQ1MmU3NjE4ZmQ2OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5
MjMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QK
IExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5k
ZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJv
cmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsK
LSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAg
IGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybiBsb2dpY2Fs
TGVmdE9mZnNldDsKQEAgLTE5MzQsNyArMTkzNCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6
OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJh
CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJl
bmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3Ao
KTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQor
ICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgoKTsKICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3
ZDcxNzFjYTZiNTUzYy4uMzZjMTkxZDA1YTI4ODMyNjk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4
Myw3ICs4ODMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9y
U2VsZkNvbGxhcHNpbmdCbG9jaygpCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9n
aWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVs
dGFNb2RlIGFwcGx5RGVsdGEpCiB7CiAgICAgTGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9y
ZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBzdGFy
dFBvc2l0aW9uICs9IChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkg
KiB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IGIyZGY0MjJhYWEzZmJiNGJmNTQzZjExZmIwNzg5YmVkN2ZmY2ViODEuLjE4NDlkYTFiZGFm
Mjc0NTM3YmM1YzdlNGY0MTVmMjlhZjhhNTc0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC03MjIsNyArNzIyLDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpy
b3VuZGVkQm9yZGVyQm94UmVjdCgpIGNvbnN0CiBMYXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGlu
Z0JveFJlY3QoKSBjb25zdAogewogICAgIGF1dG8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRo
aXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNj
cm9sbGJhciA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGggOiAwOworICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCA6IDA7CiAKICAgICByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBv
ZmZzZXRGb3JTY3JvbGxiYXIsIGJvcmRlclRvcCgpLAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVy
TGVmdCgpIC0gYm9yZGVyUmlnaHQoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYs
NyArNzM2LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QK
IAogTGF5b3V0UG9pbnQgUmVuZGVyQm94Ojpjb250ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewot
ICAgIExheW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOworICAgIExh
eW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRl
ckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBw
YWRkaW5nVG9wKCkgfTsKIH0KIApAQCAtMTk2NCw3ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5k
ZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5k
ZXJGcmFnbWUKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhl
bS4KICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Ny
b2xsYWJsZUFyZWEoKSA6IG51bGxwdHIpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJs
ZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNs
aXBSZWN0LmNvbnRyYWN0KHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJl
bGV2YW5jeSksIHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2
YW5jeSkpOwogICAgIH0KQEAgLTM3NTksNyArMzc1OSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNv
bXB1CiAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwog
ICAgIGlmIChpczxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKSkgewogICAgICAgICBhdXRvJiBj
b250YWluaW5nQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94Pihjb250YWluZXJCbG9jayk7Ci0gICAg
ICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAg
ICBjb21wdXRlZFZhbHVlcy5tX3Bvc2l0aW9uICs9IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIH0KICAgICAKQEAgLTQ5ODAsNyArNDk4MCw3IEBAIExheW91dFJl
Y3QgUmVuZGVyQm94OjpmbGlwcGVkQ2xpZW50Qm94UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldy
aXRpbmdNb2RlKHJlY3QpOwogICAgIC8vIFN1YnRyYWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9s
bGJhcnMuIFRoZXkgYXJlIGF0IHRoZWlyIHBoeXNpY2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRl
CiAgICAgLy8gc3lzdGVtLCBzbyBvcmRlciBpcyBpbXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwg
dGhlbiBzdWJ0cmFjdCBzY3JvbGxiYXJzLgotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1v
dmUodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKSwgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpKTsKICAgICBy
ZXR1cm4gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IGI0NjNmYzlkY2IyMjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIz
ZTkuLmZhYTc2MDkxZDA0ZDQ1NWU4MmIzMzMyMjhhZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2
LDcgKzU1Niw3IEBAIEZsb2F0UmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uKCkgY29uc3QKICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9
IEZsb2F0UG9pbnQoKSArIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAg
ICBmbG9hdCBzY3JvbGxiYXJPZmZzZXQgPSAwOwotICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBp
bmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlm
IChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94
LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkK
ICAgICAgICAgICAgIHNjcm9sbGJhck9mZnNldCA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgICAgICBjb25z
dHJhaW5pbmdSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNj
cm9sbGJhck9mZnNldCwgc2Nyb2xsT2Zmc2V0LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2E1OTU4YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEz
N2I0MjMxMS4uNTY5NTYxYmM3NGQzZDdjMGQzYjUxZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAg
QEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0
JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2Ug
dGhlIHJlY3RhbmdsZSByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBs
b2NhbEV4cG9zZVJlY3QubW92ZUJ5KC1MYXlvdXRQb2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94
LT5ib3JkZXJUb3AoKSkpOwogCi0gICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgewotICAgICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjog
cnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBv
biB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMg
ZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiBzY3JvbGwgYmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9z
ZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9vLgorICAgICAgICBp
ZiAoYm94LT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAg
ICAgIC8vIEZvciBgZGlyZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIs
YnR9YCBhbmQgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgCisgICAgICAgICAgICAvLyBib3hl
cywgdGhlIHNjcm9sbCBiYXIgaXMgb24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBz
dGFydHMgZnJvbSB0aGUgcmlnaHQgc2lkZQorICAgICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBi
YXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2Ft
ZSBwb3NpdGlvbiB0b28uCiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91
dFBvaW50KC1zY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAg
ICAgICAgIH0KICAgICAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gt
PmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0
LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZv
clJlc2l6aW5nKG1pbmltdW1TaXplKTsKICAgICAKICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xk
T2Zmc2V0ID0gTGF5b3V0U2l6ZShvbGRPZmZzZXQud2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9m
ZnNldC5oZWlnaHQoKSAvIHpvb21GYWN0b3IpOwotICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5z
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0
LnNldFdpZHRoKC1uZXdPZmZzZXQud2lkdGgoKSk7CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0
LnNldFdpZHRoKC1hZGp1c3RlZE9sZE9mZnNldC53aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcg
KzI3MzQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6
Om92ZXJmbG93Q29udHJvbHNSZWN0cygpIGNvbnN0CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5z
aWRlIHRoZSBib3JkZXIgYm94LgogICAgIGF1dG8gb3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5n
UmVjdCA9IHNuYXBwZWRJbnRSZWN0KHJlbmRlckJveC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Nj
cm9sbGJhcigpKTsKIAotICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9
IHJlbmRlckJveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7Cisg
ICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0g
cmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJm
bG93Q29udHJvbFJlY3RzIHJlc3VsdDsKQEAgLTI3ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5k
ZXJMYXllcjo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpv
ZmZzZXRGcm9tUmVzaXplQ29ybmVyKGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAog
ewogICAgIGF1dG8gcmVzaXplclJlY3QgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVy
OwotICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDog
cmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKKyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJl
bmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJl
Y3QubWluWE1heFlDb3JuZXIoKSA6IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAg
cmV0dXJuIGxvY2FsUG9pbnQgLSByZXNpemVDb3JuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1
MDBlYTBlYjcxMWUwNzk4NGIzODE0MWQ4N2E2ZDYxZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3
OGM5MDAyMTA1MTExMjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTIyMzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAg
YXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJu
IEZsb2F0UG9pbnQoCi0gICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lv
bigpIDogMCwKKyAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAog
ICAgICAgICBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5z
Y3JvbGxQb3NpdGlvbigpLCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CmluZGV4IGRhYjVlYTk4NGU3MmUxYTVkZmJmYjExNDk4YzdiNzI4ZmI5OWY3YWYuLjJiYjVhNTUy
ODlmNjQ4OTgwMTRmNzQ1ZWI0ZTFiMTMwMTBhNTE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTIwNyw3ICsyMDcs
NyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogI2VuZGlmCiB9CiAKLWJvb2wgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewogLy8gUlRMIFNjcm9sbGJhcnMgcmVxdWlyZSBzb21l
IHN5c3RlbSBzdXBwb3J0LCBhbmQgdGhpcyBzeXN0ZW0gc3VwcG9ydCBkb2VzIG5vdCBleGlzdCBv
biBjZXJ0YWluIHZlcnNpb25zIG9mIE9TIFguIGlPUyB1c2VzIGEgc2VwYXJhdGUgbWVjaGFuaXNt
LgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTUsMTIgKzIxNSwxMiBAQCBib29sIFJl
bmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAogI2Vsc2UKICAgICBzd2l0Y2ggKHNldHRpbmdzKCkudXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeSgpKSB7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5OjpDb250ZW50OgotICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3k6OlN5c3RlbToKICAgICAgICAgcmV0dXJuIHNldHRpbmdzKCkuc3lzdGVtTGF5
b3V0RGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IDljOTY2ZjdlYjJmMDI3
ZDYzMGQwMjEzMmFkYjliMTNjYmE4ZTlkZjEuLjQ5ZjE4YTExOTlhMmQ3OGE1M2RkZDVjNmFmM2Q3
ZmY4ZGM1YjE5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUJveCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSBjb25zdDsKIAogICAgIE9wdGlvbmFsPExheWVyUmVwYWludFJlY3RzPiBsYXllclJlcGFpbnRS
ZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYzBjNTAyYWI5NWViODQ5OWUwYWQ2ODUy
MTQ5ZjAxZjE5YTNjMWE0MS4uNzczYzQ3YzZjYzJmZTcwYTRlZTE2OTRjOTIwOTA5MTBhNDk1NmRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcApAQCAtMTE5LDkgKzExOSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKICAgICBlbGVtZW50LT5zZXRTYXZl
ZExheWVyU2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoKSk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiBtX2xheWVyLnJlbmRlcmVy
KCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVy
biBtX2xheWVyLnJlbmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
OwogfQogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC02NTQsNyArNjU0LDcgQEAg
UmVuZGVyTGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6Om92ZXJmbG93Q29udHJvbHNSZWMKIAogICAgIGJvb2wgaGF2ZU5vbk92ZXJsYXlIb3Jpem9u
dGFsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xsYmFyKG1faEJhci5nZXQoKSk7CiAgICAg
Ym9vbCBoYXZlTm9uT3ZlcmxheVZlcnRpY2FsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xs
YmFyKG1fdkJhci5nZXQoKSk7Ci0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVM
ZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIGJv
b2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIuc3R5bGUo
KS5yZXNpemUoKSAhPSBSZXNpemU6Ok5vbmU7CiAgICAgYm9vbCBzY3JvbGxiYXJzQXZvaWRDb3Ju
ZXIgPSAoaGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFsU2Nyb2xsYmFyICYmIGhhdmVOb25PdmVybGF5
VmVydGljYWxTY3JvbGxiYXIpIHx8IChoYXZlUmVzaXplciAmJiAoaGF2ZU5vbk92ZXJsYXlIb3Jp
em9udGFsU2Nyb2xsYmFyIHx8IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIpKTsKIApA
QCAtMTAyMSw3ICsxMDIxLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpjb21w
dXRlU2Nyb2xsT3JpZ2luKCkKICAgICBBU1NFUlQoYm94KTsKIAogICAgIGludCBzY3JvbGxhYmxl
TGVmdE92ZXJmbG93ID0gcm91bmRUb0ludChvdmVyZmxvd0xlZnQoKSAtIGJveC0+Ym9yZGVyTGVm
dCgpKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
KQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgLyp8fCBib3gt
PnN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQqLykKICAg
ICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3Ao
KSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Ny
b2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpAQCAtMTEwNCw3
ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcldp
dGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGhh
c1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVydGljYWxTY3JvbGxCYXJD
aGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdpbigp
OwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKQEAgLTEzNDgs
NyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3Jt
UmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6
ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUo
KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29y
bmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNv
cm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAtMTUwOSw3ICsxNTA5LDcg
QEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRy
b2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3Qg
SW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0g
ICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsK
KyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAg
ICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWlu
WE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAg
ICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZz
ZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCBy
ZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRz
SG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNW
ZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVl
ZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHls
ZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVkc1ZlcnRpY2FsU2Nyb2xs
YmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIGJveC0+c3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0gb2xkU3R5bGUtPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAgIGNvbXB1dGVTY3JvbGxP
cmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZsb3c6c2Nyb2xsLCBzY3Jv
bGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5k
ZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZlOC4uYWU0NzE5OTM3MjNk
ZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9v
bCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBmNTcyZGY5Zi4uM2VhN2I3
MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIExheW91dFVuaXQg
UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBl
LCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAg
ICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7
CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwog
ICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkp
OwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFt
X3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zm
c2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBi
b3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zm
c2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndp
ZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJU
b3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxp
c3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNv
bnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRl
SW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExheW91dFVuaXQg
eCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQu
eCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQo
KSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlv
dXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlv
dXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
dGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkg
KzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBzY3JvbGxiYXJX
aWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRo
KCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQu
d2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
cGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAog
ICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRk
aW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAw
LDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJM
aXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAg
IHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsKICAgICByZXBhaW50UmVj
dGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3Qg
PSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9s
bGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5k
ZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50
UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXco
KS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBw
YXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJU
b3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxi
YXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNj
cm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9s
bGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkg
LSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRv
cCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFy
VG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJU
b0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2lu
dCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3
KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywg
cGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRo
KCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJh
clRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYwZjk5MjZjNGYyMTdlMTM0
MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFkMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlv
bigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6
OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29w
dGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5
b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZh
ZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJh
YTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQg
dGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlv
biBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBl
eGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygp
OwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYg
KGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVW
aWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShM
YXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCks
IDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1OC4uMDliODNjOGUzMDM5
ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1ODEsOSBAQCBmbG9hdCBS
ZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3Vu
ZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHls
ZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9y
UGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0
NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcg
KzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAg
IFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6
OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThj
Mi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgw
LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9s
bGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJl
cmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1
MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4
NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxi
YXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBE
RlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTRjYzk1ZjEwNTMwZTc2NDc5OWViYzgzYTJhOGVi
YjQ2ZGFhYmUwYy4uYjczMGU5YmRkNDgzMzc5M2IzNDYyMzZiNjY3ZmNhOThiYWQ4NzVkYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTE1ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5s
aW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGlPUyB0ZXN0IGZhaWx1cmUgZXhwZWN0
YXRpb25zIGFuZCBza2lwcyBhcmUgYmVjYXVzZSB3ZSBkb24ndCBzdXBwb3J0CisgICAgICAgIG5v
bi1vdmVybGF5IHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgb24gdGhhdCBwbGF0Zm9ybS4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogY3NzMy9mbGV4Ym94L2NoaWxkLW92
ZXJmbG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92
ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwt
cG9zaXRpb24tZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBl
Y3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogcGxhdGZvcm0vaW9zL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisKIDIwMjEtMDQtMTQgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbV1BFXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBFbWl0IHNwZWNpZmljIGJh
c2VsaW5lcyBmb3IgV1BFLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMTM2ZjFj
NTM2ZTY1YTFmMmEzMzI2YzBmMjI1NTA3YjU0NjQyNzg0OS4uOTdhMTQ1MTg1ZDlmYjIxYTg1MWRl
Y2MzYzJhZWQxYjI1OTNlOGUzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDQtMTUgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxl
LmNvbT4KKworICAgICAgICBQbGFjZSB2ZXJ0aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxpbmUvYmxv
Y2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5nIG1vZGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0
OgorCiAyMDIxLTA0LTEzICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W2Nzcy1ncmlkXSBJbmNvcnJlY3QgdHJhY2sgc2l6aW5nIHdoZW4gdXNpbmcgcmVsYXRpdmUgc2l6
ZWQgaXRlbXMgaW4gJ2F1dG8nIGNvbHVtbiB0cmFja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE2
OGM5NjdlYzMzZjkzMDZiNWE3ZjE1ZjAxNWUzNTZiZDUxODU3YzYuLjZkNjIyMjQ4YjFmMmFlOTNj
ZTg0OWJmZmY2ZTY4ZGNjNDgyYWZkNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDg2Niw2ICs0
ODY2LDEwIEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L3F1b3RlLXNjb3BpbmctMDAyLmh0bWwgWyBJbWFnZU9uCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAwMy5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9xdW90ZS1zY29waW5nLTAwNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgVGVz
dHMgdGhhdCBmYWlsIGJlY2F1c2UgdGhleSBhc3N1bWUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4g
YHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgIGVsZW1lbnRzIHdpbGwgYmUgb24gdGhlIHJpZ2h0
LWhhbmQgc2lkZQord2Via2l0Lm9yZy9iLzIyNDM1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy9zaXppbmctb3J0aG9nLXZybC1pbi1odGItMDEz
LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzIyNDM1NyBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L2Nzc29tLWdldEJvdW5kaW5nQ2xp
ZW50UmVjdC12ZXJ0aWNhbC1ybC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCisKICMgQGNvdW50
ZXItc3R5bGUgcmVmIHRlc3RzIHRoYXQgY3VycmVudGx5IGZhaWwKIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9hcm1lbmlhbi9jc3MzLWNvdW50
ZXItc3R5bGVzLTAwNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3Vu
dGVyLXN0eWxlcy0wMDcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbAppbmRleCA2
MjU0NzJmNDdmMWRmZDE2MTJmNWJlNDhiMWYxYzk0N2JiODM1ZWEwLi4wZjZhZTg1YWM2NjBiYTgx
ZGQyNWFjODUxYjhlMTNkYzZjNjBlNDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZsZXhib3gvY2hpbGQtb3ZlcmZsb3ctZXhwZWN0ZWQuaHRtbApAQCAtMjgsNiArMjgsMTAgQEAK
IHAgewogICAgIG1hcmdpbi1ib3R0b206IDMwcHg7CiB9CisKKy50b3BSaWdodCB7CisgICAgZGly
ZWN0aW9uOiBydGw7ICAvKiBwbGFjZSBzY3JvbGxiYXJzIG9uIHRoZSBMSFMgKi8KK30KIDwvc3R5
bGU+CiA8L2hlYWQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQKaW5kZXggMDAx
NTU4OWQ3NGQ5YjE5NTcyMTVlMjMwZGQwNzJmMDg0ZTk1MGJhZS4uODJhNGZlYWFhMjMzNTgzOTI4
OTkyYzc2ZjhjZGUyMTJlYzg2OWQ1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQKQEAg
LTEsNCArMSw0IEBACiAocmVwYWludCByZWN0cwotICAocmVjdCAyOSAyOSAxMDAgMTAwKQorICAo
cmVjdCA0NCAyOSAxMDAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
cGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKaW5kZXggNzdh
YmZiY2Q3ODExN2U4OWVmYzMxMzY3ZjNjM2ZkYWFkNzZiODQxZi4uYjc1OTE0MTY0ZDgxOGMzODNi
ZDFlMzIzNDU0MjkxMzc0ODZiMzQ1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDQgQEAKIChyZXBhaW50IHJlY3RzCi0gIChyZWN0IDI5IDIxIDEwMCAxMDApCisgIChyZWN0
IDQ0IDIxIDEwMCAxMDApCiApCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBv
c2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDE2YjQ3MjdhMGI4YmFl
ZTlhNjQ1MWFiNzhiNWVlM2ZjZjU5NDU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IHN0eWxl
PSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IGRpcmVjdGlvbjogcnRsOyBvdmVyZmxvdzog
c2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9y
ZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBzdHlsZT0id2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246IGx0cjsgb3ZlcmZsb3c6IHNjcm9sbDsg
bWFyZ2luLXRvcDogMWVtOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAx
OTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9z
aXRpb24tZHluYW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3Jv
bGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MGY3MDZj
OTYzZjYwYzFkZGQ3MmI4ZGUyNjg4ODFhMTJlNjJkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1k
eW5hbWljLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8ZGl2IGlkPW9u
ZSBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1vZGU6IGhvcml6
b250YWwtdGI7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4
OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+
Cis8ZGl2IGlkPXR3byBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5n
LW1vZGU6IHZlcnRpY2FsLXJsOyBvdmVyZmxvdzogc2Nyb2xsOyBtYXJnaW4tdG9wOiAxZW07Ij4K
KyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBz
b2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5vZmZz
ZXRUb3A7CitvbmUuc3R5bGUud3JpdGluZ01vZGUgPSAidmVydGljYWwtcmwiOwordHdvLnN0eWxl
LndyaXRpbmdNb2RlID0gImhvcml6b250YWwtdGIiOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlv
bi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxi
YXJzLWluaXRpYWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ODhiNmNhNDli
MjFlNDIyMTUwOTgwNTZhYTViMzM5ZTMxNDhlNjVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0i
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNj
cm9sbDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRl
cjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3Np
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YTBiZjA4MzI5MGMzZTU1NWQxNTg2MjI4NDdjY2E0YTc5
NmRmMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJs
LXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8ZGl2IHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IHdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IG92ZXJmbG93OiBzY3JvbGw7Ij4KKyAgPGRpdiBzdHlsZT0i
d2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRweCBzb2xpZCBibGFjazsiPjwv
ZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0
aWNhbC1zY3JvbGxiYXItcG9zaXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYzE3MGI4MGRkMGI4Y2E5N2ZmNTVkMWRiZGUxYjQwZmZhNjQ3ZWI3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBv
c2l0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGVzZSBmb3VyIGNvbnRhaW5l
cnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIHJpZ2h0LgorCisKKwor
CitUaGVzZSBmb3VyIGNvbnRhaW5lcnMgc2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIg
b24gdGhlIGxlZnQuCisKKworCisKKyBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJmYTM5ZGE2OGUyNGYzNzgxYzlmMzdhMmFmMGUxZDE0YmY1ODY2YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9z
aXRpb24uaHRtbApAQCAtMCwwICsxLDU3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KK3Nl
Y3Rpb24gPiBkaXYsIHNlY3Rpb24gPiBkaXYgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cisg
IGhlaWdodDogMTAwcHg7CisgIHdpZHRoOiAxMDBweDsKKyAgb3V0bGluZTogMXB4IHNvbGlkIGJs
YWNrOworICBvdmVyZmxvdy14OiBoaWRkZW47CisgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAgbWFy
Z2luOiAxMHB4IDEwcHggMCAwOworfQorCisuc3F1YXJlIHsKKyAgd2lkdGg6IDIwcHg7CisgIGhl
aWdodDogMjBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworfQorCisubHRyIHsgZGly
ZWN0aW9uOiBsdHI7IH0KKy5ydGwgeyBkaXJlY3Rpb246IHJ0bDsgfQorLmgtdGIgeyB3cml0aW5n
LW1vZGU6IGhvcml6b250YWwtdGI7IH0KKy5oLWJ0IHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IGhv
cml6b250YWwtYnQ7IH0KKy52LXJsIHsgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfQorLnYt
bHIgeyB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9Cis8L3N0eWxlPgorPHNlY3Rpb24gY2xh
c3M9InJpZ2h0Ij4KKyAgPHA+VGhlc2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVy
dGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC48L3A+CisgIDxkaXYgY2xhc3M9ImgtdGIgbHRy
Ij48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8
ZGl2IGNsYXNzPSJoLWJ0IGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIw
Ij48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1sciBsdHIiPjxkaXYgY2xhc3M9InNxdWFy
ZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgcnRs
Ij48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorPC9z
ZWN0aW9uPgorCis8c2VjdGlvbiBjbGFzcz0ibGVmdCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFp
bmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2FsIHNjcm9sbGJhciBvbiB0aGUgbGVmdC48L3A+Cisg
IDxkaXYgY2xhc3M9ImgtdGIgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0ZWQ9
IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaC1idCBydGwiPjxkaXYgY2xhc3M9InNx
dWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LXJs
IGx0ciI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+PC9kaXY+PC9kaXY+
CisgIDxkaXYgY2xhc3M9InYtcmwgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRhdGEtZXhwZWN0
ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlvbj4KKworPHByZSBpZD0icmVzdWx0cyI+RkFJ
TDwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHdpbmRvdy50
ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7Cit9CisKK2xldCB0ZXh0ID0gIiI7Citmb3IgKGxl
dCBzcXVhcmUgb2YgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNxdWFyZSIpKSB7CisgICAg
bGV0IGFjdHVhbCA9IHNxdWFyZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54IC0gc3F1YXJlLnBh
cmVudE5vZGUub2Zmc2V0TGVmdDsKKyAgICBsZXQgZXhwZWN0ZWQgPSBzcXVhcmUuZ2V0QXR0cmli
dXRlKCJkYXRhLWV4cGVjdGVkIik7CisgICAgaWYgKGFjdHVhbCAhPSBleHBlY3RlZCkgeworICAg
ICAgICB0ZXh0ICs9IGBQb3NpdGlvbiBvZiBzcXVhcmUgaW4gJyR7c3F1YXJlLnBhcmVudE5vZGUu
Y2xhc3NOYW1lfScgLSBleHBlY3RlZCAke2V4cGVjdGVkfSwgZ290ICR7YWN0dWFsfVxuYDsKKyAg
ICB9Cit9CityZXN1bHRzLnRleHRDb250ZW50ID0gdGV4dCB8fCAiUEFTUyI7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNu
YXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhlZDdjNDMwNzYzNjNl
ZjIzNTNjZmVhZDIxNGE2NzRlZDUyYWIuLmQ2Yjc3OTU3MmI2NDMxOTZjY2I5ZDdkZWRiY2EyMDEw
ZTkxODdlMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSwxMCBAQAogCiBQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5n
IG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CiBGQUlM
IFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJl
Y3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWdu
OiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9u
IHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2
ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFy
dCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3Rl
ZCAzMDAgYnV0IGdvdCAxNjUKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRi
IHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1l
bnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQg
Z290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUg
d2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVh
bHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCi1GQUlMIFNu
YXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1z
bmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29y
cmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVj
dGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3Rh
cnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0
ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9u
OiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3Nl
cnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0z
MDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6
IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAzMDAKK0ZBSUwgU25h
cHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWdu
OiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9u
IHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJl
Y3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50
IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAzMDAgYnV0IGdv
dCAwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9s
bExlZnRUb3AtZXhwZWN0ZWQudHh0CmluZGV4IDViZDNiYzcxZGQwM2FjZTJjZWM3YTM0NDBhN2Jk
YzZkZDQyNDY2YjguLjUxMjE2YmI5YTk5MGEwNzU2YWZlYmIwZDRhMGRiM2IwY2E1NjgxZjIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0
VG9wLWV4cGVjdGVkLnR4dApAQCAtMTEsNiArMTEsNiBAQCBQQVNTIHdyaXRpbmctbW9kZTpob3Jp
em9udGFsLXRiOyBkaXJlY3Rpb246bHRyCiBQQVNTIHdyaXRpbmctbW9kZTpob3Jpem9udGFsLXRi
OyBkaXJlY3Rpb246cnRsCiBQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjsgZGlyZWN0aW9u
Omx0cgogUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpydGwKLUZBSUwg
d3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyIGFzc2VydF9hcHByb3hfZXF1
YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBleHBlY3RlZCAtMTY1ICsvLSAwLjUgYnV0IGdvdCAtMTUw
Ci1GQUlMIHdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bCBhc3NlcnRfYXBw
cm94X2VxdWFsczogZW5kaW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBn
b3QgLTE1MAorUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpsdHIKK1BB
U1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246cnRsCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDZmNzk3Y2UzMWExY2YwYjM5YWMw
NGUzZjU2MjU3ZjZhYWJlNWEwMi4uY2I5NTI4NGU4MDZiNDQ5NDMwY2ZmY2FjODg1NTFhYmZjZGVk
NDY2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEw
NjAsNiArMTA2MCw3IEBAIGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbGluZy1pbnNpZGUtc2Nyb2xsZWQt
b3ZlcmZsb3dhcmVhLmh0bWwgWyBTa2lwIF0KIGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXR5
cGUtYXR0cmlidXRlLmh0bWwgWyBTa2lwIF0KIAogIyBSVEwgU2Nyb2xsYmFycyBhcmUgb25seSBp
bXBsZW1lbnRlZCBvbiBjZXJ0YWluIHZlcnNpb25zIG9mIE9TIFgKK2NzczMvZmxleGJveC9jaGls
ZC1vdmVyZmxvdy5odG1sIFsgU2tpcCBdCiBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1p
ZnJhbWUtc2Nyb2xsZWQuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJh
cnMtbGlzdGJveC1zY3JvbGwuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9s
bGJhcnMtbGlzdGJveC1zZWxlY3QtbGVmdC5odG1sIFsgU2tpcCBdCkBAIC0xMDY3LDYgKzEwNjgs
OSBAQCBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1wb3NpdGlvbi1hYnNvbHV0ZS5odG1s
IFsgU2tpcCBdCiBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy1wb3NpdGlvbi1maXhlZC5o
dG1sIFsgU2tpcCBdCiBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy10ZXh0LXNlbGVjdGlv
bi1zY3JvbGxlZC5odG1sIFsgU2tpcCBdCiBmYXN0L3Njcm9sbGluZy9ydGwtc2Nyb2xsYmFycy10
ZXh0LXNlbGVjdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJh
cnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc2Nyb2xsaW5n
L3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLmh0bWwgWyBTa2lwIF0KK2Zhc3Qvc2Ny
b2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sIFsgU2tpcCBdCiAKICMgVGhp
cyBpcyBzcGVjaWZpYyB0byBleHRlbnNpb25zIG9uIG1hY09TCiB3ZWJraXQub3JnL2IvMTY3Nzk1
IGh0dHAvdGVzdHMvc2VjdXJpdHkvYnlwYXNzaW5nLWNvcnMtY2hlY2tzLWZvci1leHRlbnNpb24t
dXJscy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0
VG9wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjViZDNiYzcxZGQwM2FjZTJjZWM3YTM0NDBhN2JkYzZkZDQyNDY2YjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE2IEBACitzY3JvbGxMZWZ0L3Njcm9sbFRvcAorCit3cml0aW5nLW1v
ZGU6IGhvcml6b250YWwtdGI7CisKK3dyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisKK3dyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7CisKKworUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10
YjsgZGlyZWN0aW9uOmx0cgorUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0
aW9uOnJ0bAorUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIKK1BB
U1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCitGQUlMIHdyaXRpbmct
bW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5k
aW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAorRkFJTCB3
cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9lcXVh
bHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0xNTAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL3NuYXAtaW5saW5lLWJsb2Nr
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9zbmFwLWlubGluZS1ibG9j
ay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4
YzJlNDhjNTM5MQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426137</attachid>
            <date>2021-04-15 14:11:24 -0700</date>
            <delta_ts>2021-04-15 18:08:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210416071122.patch</filename>
            <type>text/plain</type>
            <size>63779</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljNGY2NGJjYmI5Zjc1
NWM5OTc4MTEyNWJkNzM1NjZhMzRiOTcyOC4uZmM4ZWNmYjE1ZmM4ODAwMWI3YmY0MGU1ODUwZDkx
NjFmMDc5NmY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTE1ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdm9pZCBp
bmRpcmVjdCBsb2FkIGluIENvbnRhaW5lck5vZGU6Omhhc09uZUNoaWxkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDVlM2E4YjViZDBiZTQ4MzEzMTk5YjFhZmNjMWJkYjY5NTRjZjAyNC4uZDI1NzZlNjcxOWQyZDIw
ZmJiYzcyOGQ1MjVkOTM2NDdiMzE5ZDdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0wNC0xNSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAg
IFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4g
YWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTE0ICBC
YXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBGaXggV0tf
RVhQT1JUIG1hY3JvIGZvciBkZWNsc3BlYyBjb21waWxlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCBkMzgzNGI1ZGNhYzBiZGU1MDkxNjllOTZjMjBmYzIyYjQwMWM0NTI4
Li5jMzUzM2U0MDc2ZmU2OWVkMzExOGI5ZWRiZTBhYjg5YjZlYjY2N2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTE4LDcgKzE1MTgsNyBAQCBPcHRpb25hbDxDdXJz
b3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgYm9vbCBzaAogICAgICAgICAgICAgYXV0byYgbGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlckxheWVyTW9kZWxPYmplY3Q+KCpyZW5kZXJlcik7CiAgICAgICAgICAgICBpblJlc2l6ZXIg
PSBsYXllclJlbmRlcmVyLmxheWVyKCktPmlzUG9pbnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZElu
dFBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkpKTsKICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0
aEVhc3RSZXNpemVDdXJzb3IoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJl
ci5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVD
dXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKChlZGl0YWJsZSB8fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUt
PmNhblN0YXJ0U2VsZWN0aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFy
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3
MTFmODRiZTExMjQ5NDdjODY1OS4uMDIxN2QzNDJiZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdj
NTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAg
SW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25z
dAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0
IH07CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRl
clZpZXcoKS0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAg
IHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IDA2YWUzYTQ3MTEwYzU3NDcwMzMwZmY5NTljZTNjOGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2Fj
NDNmYTQzMWY1ZjllYzg2N2U5OTIxMmUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAt
NjU1LDcgKzY1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lk
IGhpZGUoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJh
Y2tGb3J3YXJkQ2FjaGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCA4ZTZiM2FhYjU5OGEzNzRjNzEzMjQzNmY4YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIx
NjkzMGVlZmFhZWJlMDNlNTAyZjEwNTUyMDM0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZp
ZXc6OmFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24m
CiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRp
dmVUb1ZpZXdPcmlnaW4oKSBjb25zdAogewogICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0g
SW50U2l6ZSgKLSAgICAgICAgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGll
ZFdpZHRoKCkgOiAwLAorICAgICAgICBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVk
V2lkdGgoKSA6IDAsCiAgICAgICAgIGhlYWRlckhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KFRv
cENvbnRlbnRJbnNldFR5cGU6OldlYkNvcmVPclBsYXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAK
QEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29u
c3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV9ob3Jpem9udGFs
U2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwog
ICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3Qo
KSk7Ci0gICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xs
YmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAorICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8g
bV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAgICAgIGhl
aWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdp
ZHRoKCkgLSAobV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3Vw
aWVkV2lkdGgoKSA6IDApLAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWln
aHQoKSk7CkBAIC03NTEsNyArNzUxLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVy
dGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWln
aHQoKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1l
UmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PndpZHRoKCksCisgICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0
aCgpLAogICAgICAgICAgICAgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50
SW5zZXQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXIt
Pm9jY3VwaWVkSGVpZ2h0KCkgOiAwKSk7CkBAIC0xMTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3Qg
U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNr
ZWRCeVNjcm9sbGJhciA9IGhlaWdodCgpIC0gdG9wQ29udGVudEluc2V0KCk7CiAKICAgICBpZiAo
bV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT53aWR0aCgpLAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJh
ci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7
CiAgICAgfQogCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAg
IGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRo
KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRl
bnRJbnNldCgpLAogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgIGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PmhlaWdodCgpKSk7CkBAIC0xNTM4LDcgKzE1MzgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxl
QW5kUmVuZGVyVHJlZURpZENoYW5nZSgpCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9m
Q29udGVudHMoKSBjb25zdAogewogICAgIEludFBvaW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0g
ICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3Zl
cnRpY2FsU2Nyb2xsYmFyKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhcikKICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0
aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpLCAwKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNk
YjdmNjc5Mzk4YTdjODc3MzEyZWQ0OTdjMTZmZThkOS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3
N2M4ZmQ1MGI3MzhhZjlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5oCkBAIC0zNDIsNyArMzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9j
a1Njcm9sbEFuaW1hdG9yKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1
NGJhMWUyYjdjMDYxZTljZWI0NTlmNGNjNTUwZWFlNWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNl
ZTk3OTM3ZDljMzhiY2EzZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3
IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJh
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAKICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJl
Y3Q7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9s
bGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChz
Y3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkpCiAgICAgICAgICAgICAgICAgZnJhbWUubW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJl
ZFNjcm9sbGJhckJvcmRlclNpemUsIDApOwogICAgICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92
ZXJlZFNjcm9sbGJhckJvcmRlclNpemUpOwogICAgICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAs
NyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgIEludFJlY3QgdGh1bWIgPSByZWN0Owog
ICAgIGlmIChzY3JvbGxiYXIuaG92ZXJlZFBhcnQoKSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlT
Y3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZl
cnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3Jv
bGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJs
YXlUaHVtYlNpemUgKyB0aHVtYkJvcmRlclNpemUpICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNp
emUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29s
IFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpYwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYg
KHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAg
ICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAg
ICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0
aHVtYlNpemUgLyAyKSAtIGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRo
dW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIu
bW92ZShzY3JvbGxiYXJTaXplIC0gKHNjcm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMiks
IHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcx
NjA4MTU3ZjNlZmVjZDY4NGE3YjAuLjI4OTZjN2YzYjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThm
YzIxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9s
bGJhclBhcnRTdGF0ZUZsYWdzKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBz
dGF0aWMgUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihT
Y3JvbGxiYXImIHNjcm9sbGJhciwgR3RrU3RhdGVGbGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxl
QXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAg
IHJldHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVy
VGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1l
U2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJl
dHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJbmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0z
ODAsNyArMzgwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRo
ZSBpbmRpY2F0b3Igd2UgbmVlZCB0byBhZGp1c3QgdGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFs
IHNpemUgaW4gaW5kaWNhdG9yIG1vZGUuCiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigp
ID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJl
ZmVycmVkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3Zl
KHN0ZDo6YWJzKHJlY3Qud2lkdGgoKSAtIHByZWZlcnJlZFNpemUud2lkdGgoKSksIDApOwogICAg
ICAgICAgICAgY29udGVudHNSZWN0LnNldFdpZHRoKHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbQppbmRleCBiZDA2MTVmMjJkMzU4NjIwNGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41
Mzk2MWE3YjcyMDQwMWY3MmUyMjQ1Y2JiNGUyMWI3Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5
LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xs
YmFyJiBzY3JvbGxiYXIpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNj
cm9sbGVySW1wID0gcGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChz
Y3JvbGxlckltcCk7Ci0gICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9M
ZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Ny
b2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5k
ZXggN2Q1N2RhYTljZGZhODFjNGU1ZDc1N2E2Y2I2NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1
MmVkZjMzMDE5ZWExNjljYjJiMTM2MWJmNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50
U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFi
bGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGlu
ZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25s
eSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxh
YmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZk
NWYzZmY0MzQ0ZGMwYS4uMjYwNmQ1MmU3NjE4ZmQ2OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5
MjMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QK
IExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5k
ZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJv
cmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsK
LSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAg
IGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybiBsb2dpY2Fs
TGVmdE9mZnNldDsKQEAgLTE5MzQsNyArMTkzNCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6
OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJh
CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJl
bmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3Ao
KTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQor
ICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgoKTsKICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3
ZDcxNzFjYTZiNTUzYy4uMzZjMTkxZDA1YTI4ODMyNjk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4
Myw3ICs4ODMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9y
U2VsZkNvbGxhcHNpbmdCbG9jaygpCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9n
aWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVs
dGFNb2RlIGFwcGx5RGVsdGEpCiB7CiAgICAgTGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9y
ZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBzdGFy
dFBvc2l0aW9uICs9IChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkg
KiB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IGIyZGY0MjJhYWEzZmJiNGJmNTQzZjExZmIwNzg5YmVkN2ZmY2ViODEuLjE4NDlkYTFiZGFm
Mjc0NTM3YmM1YzdlNGY0MTVmMjlhZjhhNTc0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC03MjIsNyArNzIyLDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpy
b3VuZGVkQm9yZGVyQm94UmVjdCgpIGNvbnN0CiBMYXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGlu
Z0JveFJlY3QoKSBjb25zdAogewogICAgIGF1dG8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRo
aXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNj
cm9sbGJhciA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGggOiAwOworICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCA6IDA7CiAKICAgICByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBv
ZmZzZXRGb3JTY3JvbGxiYXIsIGJvcmRlclRvcCgpLAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVy
TGVmdCgpIC0gYm9yZGVyUmlnaHQoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYs
NyArNzM2LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QK
IAogTGF5b3V0UG9pbnQgUmVuZGVyQm94Ojpjb250ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewot
ICAgIExheW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOworICAgIExh
eW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRl
ckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBw
YWRkaW5nVG9wKCkgfTsKIH0KIApAQCAtMTk2NCw3ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5k
ZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5k
ZXJGcmFnbWUKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhl
bS4KICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Ny
b2xsYWJsZUFyZWEoKSA6IG51bGxwdHIpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJs
ZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNs
aXBSZWN0LmNvbnRyYWN0KHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJl
bGV2YW5jeSksIHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2
YW5jeSkpOwogICAgIH0KQEAgLTM3NTksNyArMzc1OSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNv
bXB1CiAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwog
ICAgIGlmIChpczxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKSkgewogICAgICAgICBhdXRvJiBj
b250YWluaW5nQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94Pihjb250YWluZXJCbG9jayk7Ci0gICAg
ICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAg
ICBjb21wdXRlZFZhbHVlcy5tX3Bvc2l0aW9uICs9IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIH0KICAgICAKQEAgLTQ5ODAsNyArNDk4MCw3IEBAIExheW91dFJl
Y3QgUmVuZGVyQm94OjpmbGlwcGVkQ2xpZW50Qm94UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldy
aXRpbmdNb2RlKHJlY3QpOwogICAgIC8vIFN1YnRyYWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9s
bGJhcnMuIFRoZXkgYXJlIGF0IHRoZWlyIHBoeXNpY2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRl
CiAgICAgLy8gc3lzdGVtLCBzbyBvcmRlciBpcyBpbXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwg
dGhlbiBzdWJ0cmFjdCBzY3JvbGxiYXJzLgotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1v
dmUodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKSwgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpKTsKICAgICBy
ZXR1cm4gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IGI0NjNmYzlkY2IyMjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIz
ZTkuLmZhYTc2MDkxZDA0ZDQ1NWU4MmIzMzMyMjhhZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2
LDcgKzU1Niw3IEBAIEZsb2F0UmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uKCkgY29uc3QKICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9
IEZsb2F0UG9pbnQoKSArIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAg
ICBmbG9hdCBzY3JvbGxiYXJPZmZzZXQgPSAwOwotICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBp
bmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlm
IChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94
LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkK
ICAgICAgICAgICAgIHNjcm9sbGJhck9mZnNldCA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgICAgICBjb25z
dHJhaW5pbmdSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNj
cm9sbGJhck9mZnNldCwgc2Nyb2xsT2Zmc2V0LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2E1OTU4YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEz
N2I0MjMxMS4uNTY5NTYxYmM3NGQzZDdjMGQzYjUxZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAg
QEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0
JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2Ug
dGhlIHJlY3RhbmdsZSByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBs
b2NhbEV4cG9zZVJlY3QubW92ZUJ5KC1MYXlvdXRQb2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94
LT5ib3JkZXJUb3AoKSkpOwogCi0gICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgewotICAgICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjog
cnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBv
biB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMg
ZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiBzY3JvbGwgYmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9z
ZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9vLgorICAgICAgICBp
ZiAoYm94LT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAg
ICAgIC8vIEZvciBgZGlyZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIs
YnR9YCBhbmQgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgCisgICAgICAgICAgICAvLyBib3hl
cywgdGhlIHNjcm9sbCBiYXIgaXMgb24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBz
dGFydHMgZnJvbSB0aGUgcmlnaHQgc2lkZQorICAgICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBi
YXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2Ft
ZSBwb3NpdGlvbiB0b28uCiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91
dFBvaW50KC1zY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAg
ICAgICAgIH0KICAgICAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gt
PmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0
LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZv
clJlc2l6aW5nKG1pbmltdW1TaXplKTsKICAgICAKICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xk
T2Zmc2V0ID0gTGF5b3V0U2l6ZShvbGRPZmZzZXQud2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9m
ZnNldC5oZWlnaHQoKSAvIHpvb21GYWN0b3IpOwotICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5z
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0
LnNldFdpZHRoKC1uZXdPZmZzZXQud2lkdGgoKSk7CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0
LnNldFdpZHRoKC1hZGp1c3RlZE9sZE9mZnNldC53aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcg
KzI3MzQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6
Om92ZXJmbG93Q29udHJvbHNSZWN0cygpIGNvbnN0CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5z
aWRlIHRoZSBib3JkZXIgYm94LgogICAgIGF1dG8gb3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5n
UmVjdCA9IHNuYXBwZWRJbnRSZWN0KHJlbmRlckJveC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Nj
cm9sbGJhcigpKTsKIAotICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9
IHJlbmRlckJveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7Cisg
ICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0g
cmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJm
bG93Q29udHJvbFJlY3RzIHJlc3VsdDsKQEAgLTI3ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5k
ZXJMYXllcjo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpv
ZmZzZXRGcm9tUmVzaXplQ29ybmVyKGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAog
ewogICAgIGF1dG8gcmVzaXplclJlY3QgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVy
OwotICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDog
cmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKKyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJl
bmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJl
Y3QubWluWE1heFlDb3JuZXIoKSA6IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAg
cmV0dXJuIGxvY2FsUG9pbnQgLSByZXNpemVDb3JuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1
MDBlYTBlYjcxMWUwNzk4NGIzODE0MWQ4N2E2ZDYxZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3
OGM5MDAyMTA1MTExMjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTIyMzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAg
YXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJu
IEZsb2F0UG9pbnQoCi0gICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lv
bigpIDogMCwKKyAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAog
ICAgICAgICBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5z
Y3JvbGxQb3NpdGlvbigpLCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CmluZGV4IGRhYjVlYTk4NGU3MmUxYTVkZmJmYjExNDk4YzdiNzI4ZmI5OWY3YWYuLjJiYjVhNTUy
ODlmNjQ4OTgwMTRmNzQ1ZWI0ZTFiMTMwMTBhNTE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTIwNyw3ICsyMDcs
NyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogI2VuZGlmCiB9CiAKLWJvb2wgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewogLy8gUlRMIFNjcm9sbGJhcnMgcmVxdWlyZSBzb21l
IHN5c3RlbSBzdXBwb3J0LCBhbmQgdGhpcyBzeXN0ZW0gc3VwcG9ydCBkb2VzIG5vdCBleGlzdCBv
biBjZXJ0YWluIHZlcnNpb25zIG9mIE9TIFguIGlPUyB1c2VzIGEgc2VwYXJhdGUgbWVjaGFuaXNt
LgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTUsMTIgKzIxNSwxMiBAQCBib29sIFJl
bmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAogI2Vsc2UKICAgICBzd2l0Y2ggKHNldHRpbmdzKCkudXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeSgpKSB7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5OjpDb250ZW50OgotICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3k6OlN5c3RlbToKICAgICAgICAgcmV0dXJuIHNldHRpbmdzKCkuc3lzdGVtTGF5
b3V0RGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IDljOTY2ZjdlYjJmMDI3
ZDYzMGQwMjEzMmFkYjliMTNjYmE4ZTlkZjEuLjQ5ZjE4YTExOTlhMmQ3OGE1M2RkZDVjNmFmM2Q3
ZmY4ZGM1YjE5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUJveCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSBjb25zdDsKIAogICAgIE9wdGlvbmFsPExheWVyUmVwYWludFJlY3RzPiBsYXllclJlcGFpbnRS
ZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYzBjNTAyYWI5NWViODQ5OWUwYWQ2ODUy
MTQ5ZjAxZjE5YTNjMWE0MS4uNzczYzQ3YzZjYzJmZTcwYTRlZTE2OTRjOTIwOTA5MTBhNDk1NmRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcApAQCAtMTE5LDkgKzExOSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKICAgICBlbGVtZW50LT5zZXRTYXZl
ZExheWVyU2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoKSk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiBtX2xheWVyLnJlbmRlcmVy
KCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVy
biBtX2xheWVyLnJlbmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
OwogfQogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC02NTQsNyArNjU0LDcgQEAg
UmVuZGVyTGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6Om92ZXJmbG93Q29udHJvbHNSZWMKIAogICAgIGJvb2wgaGF2ZU5vbk92ZXJsYXlIb3Jpem9u
dGFsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xsYmFyKG1faEJhci5nZXQoKSk7CiAgICAg
Ym9vbCBoYXZlTm9uT3ZlcmxheVZlcnRpY2FsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xs
YmFyKG1fdkJhci5nZXQoKSk7Ci0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVM
ZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIGJv
b2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIuc3R5bGUo
KS5yZXNpemUoKSAhPSBSZXNpemU6Ok5vbmU7CiAgICAgYm9vbCBzY3JvbGxiYXJzQXZvaWRDb3Ju
ZXIgPSAoaGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFsU2Nyb2xsYmFyICYmIGhhdmVOb25PdmVybGF5
VmVydGljYWxTY3JvbGxiYXIpIHx8IChoYXZlUmVzaXplciAmJiAoaGF2ZU5vbk92ZXJsYXlIb3Jp
em9udGFsU2Nyb2xsYmFyIHx8IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIpKTsKIApA
QCAtMTAyMSw3ICsxMDIxLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpjb21w
dXRlU2Nyb2xsT3JpZ2luKCkKICAgICBBU1NFUlQoYm94KTsKIAogICAgIGludCBzY3JvbGxhYmxl
TGVmdE92ZXJmbG93ID0gcm91bmRUb0ludChvdmVyZmxvd0xlZnQoKSAtIGJveC0+Ym9yZGVyTGVm
dCgpKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
KQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgLyp8fCBib3gt
PnN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQqLykKICAg
ICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3Ao
KSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Ny
b2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpAQCAtMTEwNCw3
ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcldp
dGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGhh
c1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVydGljYWxTY3JvbGxCYXJD
aGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdpbigp
OwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKQEAgLTEzNDgs
NyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3Jt
UmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6
ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUo
KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29y
bmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNv
cm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAtMTUwOSw3ICsxNTA5LDcg
QEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRy
b2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3Qg
SW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0g
ICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsK
KyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAg
ICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWlu
WE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAg
ICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZz
ZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCBy
ZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRz
SG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNW
ZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVl
ZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHls
ZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVkc1ZlcnRpY2FsU2Nyb2xs
YmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIGJveC0+c3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0gb2xkU3R5bGUtPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAgIGNvbXB1dGVTY3JvbGxP
cmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZsb3c6c2Nyb2xsLCBzY3Jv
bGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5k
ZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZlOC4uYWU0NzE5OTM3MjNk
ZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9v
bCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBmNTcyZGY5Zi4uM2VhN2I3
MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIExheW91dFVuaXQg
UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBl
LCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAg
ICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7
CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwog
ICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkp
OwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFt
X3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zm
c2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBi
b3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zm
c2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndp
ZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJU
b3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxp
c3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNv
bnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRl
SW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExheW91dFVuaXQg
eCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQu
eCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQo
KSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlv
dXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlv
dXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
dGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkg
KzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBzY3JvbGxiYXJX
aWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRo
KCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQu
d2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
cGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAog
ICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRk
aW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAw
LDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJM
aXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAg
IHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsKICAgICByZXBhaW50UmVj
dGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3Qg
PSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9s
bGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5k
ZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50
UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXco
KS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBw
YXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJU
b3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxi
YXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNj
cm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9s
bGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkg
LSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRv
cCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFy
VG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJU
b0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2lu
dCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3
KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywg
cGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRo
KCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJh
clRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYwZjk5MjZjNGYyMTdlMTM0
MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFkMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlv
bigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6
OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29w
dGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5
b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZh
ZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJh
YTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQg
dGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlv
biBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBl
eGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygp
OwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYg
KGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVW
aWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShM
YXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCks
IDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1OC4uMDliODNjOGUzMDM5
ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1ODEsOSBAQCBmbG9hdCBS
ZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3Vu
ZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHls
ZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9y
UGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0
NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcg
KzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAg
IFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6
OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThj
Mi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgw
LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9s
bGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJl
cmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1
MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4
NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxi
YXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBE
RlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTRjYzk1ZjEwNTMwZTc2NDc5OWViYzgzYTJhOGVi
YjQ2ZGFhYmUwYy4uNjAyYjkxNmMzNzFkNWFlMTk2YmE4ZDU1NDg2OGQwZDMyYTJjNDYyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTE1ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5s
aW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGlPUyB0ZXN0IGZhaWx1cmUgZXhwZWN0
YXRpb25zIGFuZCBza2lwcyBhcmUgYmVjYXVzZSB3ZSBkb24ndCBzdXBwb3J0CisgICAgICAgIG5v
bi1vdmVybGF5IHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgb24gdGhhdCBwbGF0Zm9ybS4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogY3NzMy9mbGV4Ym94L2NoaWxkLW92
ZXJmbG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92
ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwt
cG9zaXRpb24tZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1i
bG9jay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0LgorCiAy
MDIxLTA0LTE0ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1dQRV0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gRW1pdCBzcGVjaWZpYyBiYXNlbGlu
ZXMgZm9yIFdQRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDEzNmYxYzUzNmU2
NWExZjJhMzMyNmMwZjIyNTUwN2I1NDY0Mjc4NDkuLjk3YTE0NTE4NWQ5ZmIyMWE4NTFkZWNjM2My
YWVkMWIyNTkzZThlM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTA0LTE1ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+
CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1l
bmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dDoKKwog
MjAyMS0wNC0xMyAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
Z3JpZF0gSW5jb3JyZWN0IHRyYWNrIHNpemluZyB3aGVuIHVzaW5nIHJlbGF0aXZlIHNpemVkIGl0
ZW1zIGluICdhdXRvJyBjb2x1bW4gdHJhY2tzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNjhjOTY3
ZWMzM2Y5MzA2YjVhN2YxNWYwMTVlMzU2YmQ1MTg1N2M2Li42ZDYyMjI0OGIxZjJhZTkzY2U4NDli
ZmZmNmU2OGRjYzQ4MmFmZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4NjYsNiArNDg2Niwx
MCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90
ZS1zY29waW5nLTAwMi5odG1sIFsgSW1hZ2VPbgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDMuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
cXVvdGUtc2NvcGluZy0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRlc3RzIHRo
YXQgZmFpbCBiZWNhdXNlIHRoZXkgYXNzdW1lIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIGB3cml0
aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCBlbGVtZW50cyB3aWxsIGJlIG9uIHRoZSByaWdodC1oYW5k
IHNpZGUKK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvc2l6aW5nLW9ydGhvZy12cmwtaW4taHRiLTAxMy54aHQg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9jc3NvbS1nZXRCb3VuZGluZ0NsaWVudFJl
Y3QtdmVydGljYWwtcmwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCiAjIEBjb3VudGVyLXN0
eWxlIHJlZiB0ZXN0cyB0aGF0IGN1cnJlbnRseSBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3VudGVyLXN0
eWxlcy0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1z
dHlsZXMtMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKaW5kZXggNjI1NDcy
ZjQ3ZjFkZmQxNjEyZjViZTQ4YjFmMWM5NDdiYjgzNWVhMC4uMGY2YWU4NWFjNjYwYmE4MWRkMjVh
Yzg1MWI4ZTEzZGM2YzYwZTQ5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKQEAgLTI4LDYgKzI4LDEwIEBACiBwIHsK
ICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogfQorCisudG9wUmlnaHQgeworICAgIGRpcmVjdGlv
bjogcnRsOyAgLyogcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgTEhTICovCit9CiA8L3N0eWxlPgog
PC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVy
dGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwMTU1ODlk
NzRkOWIxOTU3MjE1ZTIzMGRkMDcyZjA4NGU5NTBiYWUuLjgyYTRmZWFhYTIzMzU4MzkyODk5MmM3
NmY4Y2RlMjEyZWM4NjlkNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92
ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjkgMTAwIDEwMCkKKyAgKHJlY3Qg
NDQgMjkgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDc3YWJmYmNk
NzgxMTdlODllZmMzMTM2N2YzYzNmZGFhZDc2Yjg0MWYuLmI3NTkxNDE2NGQ4MThjMzgzYmQxZTMy
MzQ1NDI5MTM3NDg2YjM0NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92
ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACiAocmVwYWludCByZWN0cwotICAocmVjdCAyOSAyMSAxMDAgMTAwKQorICAocmVjdCA0NCAy
MSAxMDAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92
LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlv
bi1keW5hbWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQxNmI0NzI3YTBiOGJhZWU5YTY0
NTFhYjc4YjVlZTNmY2Y1OTQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9s
bDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjog
NHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBsdHI7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdp
bi10b3A6IDFlbTsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7
IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9u
LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFy
cy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjBmNzA2Yzk2M2Y2
MGMxZGRkNzJiOGRlMjY4ODgxYTEyZTYyZDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1p
Yy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBpZD1vbmUgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LXRiOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVp
Z2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPGRp
diBpZD10d28gc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFyZ2luLXRvcDogMWVtOyI+CisgIDxk
aXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQg
YmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkub2Zmc2V0VG9w
Oworb25lLnN0eWxlLndyaXRpbmdNb2RlID0gInZlcnRpY2FsLXJsIjsKK3R3by5zdHlsZS53cml0
aW5nTW9kZSA9ICJob3Jpem9udGFsLXRiIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg4YjZjYTQ5YjIxZTQy
MjE1MDk4MDU2YWE1YjMzOWUzMTQ4ZTY1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93OiBzY3JvbGw7
Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRw
eCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44N2EwYmYwODMyOTBjM2U1NTVkMTU4NjIyODQ3Y2NhNGE3OTZkZjE3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3Jv
bGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4K
KzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwt
c2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmMxNzBiODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250YWluZXJzIHNo
b3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKworCisKKworVGhl
c2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRo
ZSBsZWZ0LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZmEzOWRhNjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9u
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitzZWN0aW9u
ID4gZGl2LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBoZWln
aHQ6IDEwMHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsK
KyAgb3ZlcmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7CisgIG1hcmdpbjog
MTBweCAxMHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4OworICBoZWlnaHQ6
IDIwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7IGRpcmVjdGlv
bjogbHRyOyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9u
dGFsLWJ0OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKy52LWxyIHsg
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9uIGNsYXNzPSJy
aWdodCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2Fs
IHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIGx0ciI+PGRp
diBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBj
bGFzcz0iaC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9k
aXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRh
dGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIHJ0bCI+PGRp
diBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlv
bj4KKworPHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMg
c2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9wPgorICA8ZGl2
IGNsYXNzPSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+
PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUi
IGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBsdHIi
PjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8
ZGl2IGNsYXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4
MCI+PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMiPkZBSUw8L3By
ZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9yIChsZXQgc3F1
YXJlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgeworICAgIGxldCBh
Y3R1YWwgPSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFyZS5wYXJlbnRO
b2RlLm9mZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0dHJpYnV0ZSgi
ZGF0YS1leHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAg
dGV4dCArPSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnROb2RlLmNsYXNz
TmFtZX0nIC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7CisgICAgfQor
fQorcmVzdWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nu
YXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAppbmRleCA2OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUz
Y2ZlYWQyMTRhNjc0ZWQ1MmFiLi5kNmI3Nzk1NzJiNjQzMTk2Y2NiOWQ3ZGVkYmNhMjAxMGU5MTg3
ZTFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAg
QEAKIAogUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2Rl
IHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAogRkFJTCBTbmFw
cyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25h
cC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJl
Y3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkg
Zm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4
cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGlj
YWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFs
aWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAw
IGJ1dCBnb3QgMTY1CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAw
CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBTbmFwcyBj
b3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3Rs
eSBvbiB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBm
b3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBh
bGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC01
MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRs
JyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitG
QUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMzAwCitGQUlMIFNuYXBzIGNv
cnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4
cGVjdGVkIDE2NSBidXQgZ290IDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9u
OiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3Nl
cnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0
VG9wLWV4cGVjdGVkLnR4dAppbmRleCA1YmQzYmM3MWRkMDNhY2UyY2VjN2EzNDQwYTdiZGM2ZGQ0
MjQ2NmI4Li41MTIxNmJiOWE5OTBhMDc1NmFmZWJiMGQ0YTBkYjNiMGNhNTY4MWYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1l
eHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDYgQEAgUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRh
bC10YjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGly
ZWN0aW9uOnJ0bAogUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIK
IFBBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCi1GQUlMIHdyaXRp
bmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczog
ZW5kaW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAotRkFJ
TCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0x
NTAKK1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyCitQQVNTIHdy
aXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ2Zjc5N2NlMzFhMWNmMGIzOWFjMDRlM2Y1
NjI1N2Y2YWFiZTVhMDIuLmNiOTUyODRlODA2YjQ0OTQzMGNmZmNhYzg4NTUxYWJmY2RlZDQ2NmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDYwLDYg
KzEwNjAsNyBAQCBmYXN0L3Njcm9sbGluZy9zY3JvbGxpbmctaW5zaWRlLXNjcm9sbGVkLW92ZXJm
bG93YXJlYS5odG1sIFsgU2tpcCBdCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC10eXBlLWF0
dHJpYnV0ZS5odG1sIFsgU2tpcCBdCiAKICMgUlRMIFNjcm9sbGJhcnMgYXJlIG9ubHkgaW1wbGVt
ZW50ZWQgb24gY2VydGFpbiB2ZXJzaW9ucyBvZiBPUyBYCitjc3MzL2ZsZXhib3gvY2hpbGQtb3Zl
cmZsb3cuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtaWZyYW1l
LXNjcm9sbGVkLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWxp
c3Rib3gtc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJz
LWxpc3Rib3gtc2VsZWN0LWxlZnQuaHRtbCBbIFNraXAgXQpAQCAtMTA2Nyw2ICsxMDY4LDkgQEAg
ZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtcG9zaXRpb24tYWJzb2x1dGUuaHRtbCBbIFNr
aXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtcG9zaXRpb24tZml4ZWQuaHRtbCBb
IFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1zZWxlY3Rpb24tc2Ny
b2xsZWQuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1z
ZWxlY3Rpb24uaHRtbCBbIFNraXAgXQorZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWlu
aXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGluZy92LXJs
LXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGlu
Zy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIFRoaXMgaXMg
c3BlY2lmaWMgdG8gZXh0ZW5zaW9ucyBvbiBtYWNPUwogd2Via2l0Lm9yZy9iLzE2Nzc5NSBodHRw
L3Rlc3RzL3NlY3VyaXR5L2J5cGFzc2luZy1jb3JzLWNoZWNrcy1mb3ItZXh0ZW5zaW9uLXVybHMu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGlu
ZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJs
b2NrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVh
ZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViZDNiYzcxZGQwM2FjZTJjZWM3YTM0NDBhN2JkYzZkZDQyNDY2YjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE2IEBACitzY3JvbGxMZWZ0L3Njcm9sbFRvcAorCit3cml0aW5nLW1vZGU6IGhv
cml6b250YWwtdGI7CisKK3dyaXRpbmctbW9kZTogdmVydGljYWwtbHI7CisKK3dyaXRpbmctbW9k
ZTogdmVydGljYWwtcmw7CisKKworUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGly
ZWN0aW9uOmx0cgorUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGlyZWN0aW9uOnJ0
bAorUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIKK1BBU1Mgd3Jp
dGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCitGQUlMIHdyaXRpbmctbW9kZTp2
ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczogZW5kaW5nIHNj
cm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAorRkFJTCB3cml0aW5n
LW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGVu
ZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0xNTAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426168</attachid>
            <date>2021-04-15 18:08:12 -0700</date>
            <delta_ts>2021-04-16 17:35:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210416110810.patch</filename>
            <type>text/plain</type>
            <size>65130</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1OTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjljNGY2NGJjYmI5Zjc1
NWM5OTc4MTEyNWJkNzM1NjZhMzRiOTcyOC4uZmM4ZWNmYjE1ZmM4ODAwMWI3YmY0MGU1ODUwZDkx
NjFmMDc5NmY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTA0LTE1ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGlj
YWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBt
b2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5h
bWljLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvc2Nyb2xsaW5nL3ZlcnRp
Y2FsLXNjcm9sbGJhci1wb3NpdGlvbi5odG1sCisKKyAgICAgICAgV2UgY3VycmVudGx5IG9ubHkg
Y29uc2lkZXIgbW92aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIHRvIHRoZSBsZWZ0IGZvcgorICAg
ICAgICBgd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXt0YixidH07IGRpcmVjdGlvbjogcnRsYCBj
b250YWluZXJzLiBCdXQKKyAgICAgICAgaWRlYWxseSB3ZSBzaG91bGQgYWx3YXlzIHBsYWNlIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYXQgdGhlIGVuZCBlZGdlCisgICAgICAgIG9mIHRoZSBjb250
YWluZXIgKHdoZXRoZXIgdGhhdCdzIHRoZSBpbmxpbmUtZW5kIGVkZ2UsIHdoZW4gdXNpbmcgYQor
ICAgICAgICBob3Jpem9udGFsIHdyaXRpbmcgbW9kZSwgb3IgdGhlIGJsb2NrLWVuZCBlZGdlLCB3
aGVuIHVzaW5nIGEgdmVydGljYWwKKyAgICAgICAgd3JpdGluZyBtb2RlKS4KKworICAgICAgICBT
b21lIGZ1bmN0aW9ucyBjYWxsaW5nIHRoZSBleGlzdGluZyBzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0CisgICAgICAgIGluc3RlYWQgcmVhbGx5IGNhcmUgYWJvdXQgd2hl
dGhlciB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlzIG9uIHRoZQorICAgICAgICBsZWZ0LCBub3Qg
d2hldGhlciB0aGUgYmxvY2sgZGlyZWN0aW9uIHNjcm9sbGJhciBpcyBvbiB0aGUgbGVmdCAoc2lu
Y2UKKyAgICAgICAgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMsIHRoZSBibG9jayBkaXJlY3Rp
b24gc2Nyb2xsYmFyIGlzIHRoZQorICAgICAgICBob3Jpem9udGFsIG9uZSBvbiB0aGUgYm90dG9t
KS4gU28gd2UgcmVuYW1lIHRoaXMgdG8KKyAgICAgICAgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCwgbWFrZSBpdCByZXR1cm4gdHJ1ZSBmb3IKKyAgICAgICAgYHdyaXRpbmctbW9k
ZTogdmVydGljYWwtcmxgLCBhbmQgYWRqdXN0IGNhbGxlcnMgdGhhdCByZWFsbHkgZG8gY2FyZQor
ICAgICAgICBvbmx5IGFib3V0IGJsb2NrIGRpcmVjdGlvbiBzY3JvbGxiYXJzIHRvIGFkZGl0aW9u
YWxseSBjaGVjayB0aGVpcgorICAgICAgICB3cml0aW5nIG1vZGUuCisKKyAgICAgICAgKiBwYWdl
L0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3Np
dGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojps
b2NhdGlvbk9mQ29udGVudHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmg6CisgICAgICAgICogcGxhdGZvcm0vYWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OndpZGdldFR5cGVGb3JTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyVGhlbWVHdGs6OnBhaW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRl
U2Nyb2xsZXJJbXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudCBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRldGVybWluZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGls
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnBhZGRpbmdCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6Y29udGVudEJveExvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OmNvbXB1dGVQb3NpdGlvbmVkTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6ZmxpcHBlZENsaWVudEJveFJlY3QgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5nUmVjdEZvclN0aWNreVBvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlc2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
b3ZlcmZsb3dDb250cm9sc1JlY3RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpvZmZzZXRGcm9tUmVzaXplQ29ybmVyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cG9zaXRpb25Gb3JDbGlwTGF5ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhOjpvdmVyZmxvd0NvbnRyb2xzUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6Y29tcHV0ZVNjcm9sbE9yaWdpbik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJz
QWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJl
YTo6ZHJhd1BsYXRmb3JtUmVzaXplckltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmhpdFRlc3RSZXNpemVySW5GcmFnbWVudHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU2Nyb2xsYmFy
c0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aXRlbUJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjpwYWludFNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojppc1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bGlzdEluZGV4QXRPZmZzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSBjb25zdCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0IGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKwogMjAyMS0w
NC0xNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdm9pZCBp
bmRpcmVjdCBsb2FkIGluIENvbnRhaW5lck5vZGU6Omhhc09uZUNoaWxkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDVlM2E4YjViZDBiZTQ4MzEzMTk5YjFhZmNjMWJkYjY5NTRjZjAyNC4uZDI1NzZlNjcxOWQyZDIw
ZmJiYzcyOGQ1MjVkOTM2NDdiMzE5ZDdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MS0wNC0xNSAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAg
IFBsYWNlIHZlcnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4g
YWxsIHdyaXRpbmcgbW9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjQyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorCiAyMDIxLTA0LTE0ICBC
YXN1a2UgU3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBGaXggV0tf
RVhQT1JUIG1hY3JvIGZvciBkZWNsc3BlYyBjb21waWxlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcAppbmRleCBkMzgzNGI1ZGNhYzBiZGU1MDkxNjllOTZjMjBmYzIyYjQwMWM0NTI4
Li5jMzUzM2U0MDc2ZmU2OWVkMzExOGI5ZWRiZTBhYjg5YjZlYjY2N2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTE4LDcgKzE1MTgsNyBAQCBPcHRpb25hbDxDdXJz
b3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgYm9vbCBzaAogICAgICAgICAgICAgYXV0byYgbGF5ZXJSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlckxheWVyTW9kZWxPYmplY3Q+KCpyZW5kZXJlcik7CiAgICAgICAgICAgICBpblJlc2l6ZXIg
PSBsYXllclJlbmRlcmVyLmxheWVyKCktPmlzUG9pbnRJblJlc2l6ZUNvbnRyb2wocm91bmRlZElu
dFBvaW50KHJlc3VsdC5sb2NhbFBvaW50KCkpKTsKICAgICAgICAgICAgIGlmIChpblJlc2l6ZXIp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGxheWVyUmVuZGVyZXIuc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gc291dGhXZXN0UmVzaXplQ3Vyc29yKCkgOiBzb3V0
aEVhc3RSZXNpemVDdXJzb3IoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5ZXJSZW5kZXJl
ci5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBzb3V0aFdlc3RSZXNpemVD
dXJzb3IoKSA6IHNvdXRoRWFzdFJlc2l6ZUN1cnNvcigpOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKChlZGl0YWJsZSB8fCAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzVGV4dCgpICYmIG5vZGUt
PmNhblN0YXJ0U2VsZWN0aW9uKCkpKSAmJiAhaW5SZXNpemVyICYmICFyZXN1bHQuc2Nyb2xsYmFy
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzU5MTdmZjlhYTdjMjJlOTBlNTY3
MTFmODRiZTExMjQ5NDdjODY1OS4uMDIxN2QzNDJiZjhmM2JjYzFiOThhNGU5ZjU1NDk4ZDViMjdj
NTE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNTU1Myw5ICs1NTUzLDkgQEAg
SW50U2l6ZSBGcmFtZVZpZXc6OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25z
dAogICAgIHJldHVybiB7ICp2aWV3cG9ydFNpemUud2lkdGgsICp2aWV3cG9ydFNpemUuaGVpZ2h0
IH07CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgY29uc3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gcmVuZGVyVmlldygpICYmIHJlbmRl
clZpZXcoKS0+c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAg
IHJldHVybiByZW5kZXJWaWV3KCkgJiYgcmVuZGVyVmlldygpLT5zaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IEZyYW1lVmlldyYgdmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4
IDA2YWUzYTQ3MTEwYzU3NDcwMzMwZmY5NTljZTNjOGZiM2YzZjY1Y2IuLmY0YTYwNzhlOTI2N2Fj
NDNmYTQzMWY1ZjllYzg2N2U5OTIxMmUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAt
NjU1LDcgKzY1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICB2b2lk
IGhpZGUoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJh
Y2tGb3J3YXJkQ2FjaGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApp
bmRleCA4ZTZiM2FhYjU5OGEzNzRjNzEzMjQzNmY4YjIxNGIxYTgzY2Y2NTRhLi5lZGYwNTQ4NmIx
NjkzMGVlZmFhZWJlMDNlNTAyZjEwNTUyMDM0YjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcApAQCAtNDIyLDcgKzQyMiw3IEBAIFNjcm9sbFBvc2l0aW9uIFNjcm9sbFZp
ZXc6OmFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2UoY29uc3QgU2Nyb2xsUG9zaXRpb24m
CiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9sbFBvc2l0aW9uUmVsYXRp
dmVUb1ZpZXdPcmlnaW4oKSBjb25zdAogewogICAgIHJldHVybiBzY3JvbGxQb3NpdGlvbigpIC0g
SW50U2l6ZSgKLSAgICAgICAgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGll
ZFdpZHRoKCkgOiAwLAorICAgICAgICBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0
KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3VwaWVk
V2lkdGgoKSA6IDAsCiAgICAgICAgIGhlYWRlckhlaWdodCgpICsgdG9wQ29udGVudEluc2V0KFRv
cENvbnRlbnRJbnNldFR5cGU6OldlYkNvcmVPclBsYXRmb3JtQ29udGVudEluc2V0KSk7CiB9CiAK
QEAgLTczMiw3ICs3MzIsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29u
c3QgU2Nyb2xsUG9zaXRpb24mIGRlc2lyZWRQb3NpdGlvbikKICAgICBpZiAobV9ob3Jpem9udGFs
U2Nyb2xsYmFyKSB7CiAgICAgICAgIGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwog
ICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3Qo
KSk7Ci0gICAgICAgIEludFJlY3QgaEJhclJlY3Qoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIgPyBtX3ZlcnRpY2FsU2Nyb2xs
YmFyLT5vY2N1cGllZFdpZHRoKCkgOiAwLAorICAgICAgICBJbnRSZWN0IGhCYXJSZWN0KHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyID8g
bV92ZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpIDogMCwKICAgICAgICAgICAgIGhl
aWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdp
ZHRoKCkgLSAobV92ZXJ0aWNhbFNjcm9sbGJhciA/IG1fdmVydGljYWxTY3JvbGxiYXItPm9jY3Vw
aWVkV2lkdGgoKSA6IDApLAogICAgICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWln
aHQoKSk7CkBAIC03NTEsNyArNzUxLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVTY3JvbGxi
YXJzKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBkZXNpcmVkUG9zaXRpb24pCiAgICAgaWYgKG1fdmVy
dGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWln
aHQoKTsKICAgICAgICAgSW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1l
UmVjdCgpKTsKLSAgICAgICAgSW50UmVjdCB2QmFyUmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PndpZHRoKCksCisgICAgICAgIEludFJlY3QgdkJhclJlY3Qoc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpID8gMCA6IHdpZHRoKCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0
aCgpLAogICAgICAgICAgICAgdG9wQ29udGVudEluc2V0KCksCiAgICAgICAgICAgICBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT53aWR0aCgpLAogICAgICAgICAgICAgaGVpZ2h0KCkgLSB0b3BDb250ZW50
SW5zZXQoKSAtIChtX2hvcml6b250YWxTY3JvbGxiYXIgPyBtX2hvcml6b250YWxTY3JvbGxiYXIt
Pm9jY3VwaWVkSGVpZ2h0KCkgOiAwKSk7CkBAIC0xMTc5LDE0ICsxMTc5LDE0IEBAIEludFJlY3Qg
U2Nyb2xsVmlldzo6c2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0CiAgICAgaW50IGhlaWdodFRyYWNr
ZWRCeVNjcm9sbGJhciA9IGhlaWdodCgpIC0gdG9wQ29udGVudEluc2V0KCk7CiAKICAgICBpZiAo
bV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCkgPiAwKSB7Ci0gICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQ
bGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyAwIDogbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT53aWR0aCgpLAorICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qoc2hvdWxk
UGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gMCA6IG1faG9yaXpvbnRhbFNjcm9sbGJh
ci0+d2lkdGgoKSwKICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFy
LT5oZWlnaHQoKSwKICAgICAgICAgICAgIHdpZHRoKCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXIt
PndpZHRoKCksCiAgICAgICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7
CiAgICAgfQogCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0VHJhY2tlZEJ5
U2Nyb2xsYmFyIC0gbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCkgPiAwKSB7Ci0gICAgICAg
IGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCks
CisgICAgICAgIGNvcm5lclJlY3QudW5pdGUoSW50UmVjdChzaG91bGRQbGFjZVZlcnRpY2FsU2Ny
b2xsYmFyT25MZWZ0KCkgPyAwIDogd2lkdGgoKSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRo
KCksCiAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSArIHRvcENvbnRl
bnRJbnNldCgpLAogICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+d2lkdGgoKSwKICAg
ICAgICAgICAgIGhlaWdodFRyYWNrZWRCeVNjcm9sbGJhciAtIG1fdmVydGljYWxTY3JvbGxiYXIt
PmhlaWdodCgpKSk7CkBAIC0xNTM4LDcgKzE1MzgsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnN0eWxl
QW5kUmVuZGVyVHJlZURpZENoYW5nZSgpCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpsb2NhdGlvbk9m
Q29udGVudHMoKSBjb25zdAogewogICAgIEludFBvaW50IHJlc3VsdCA9IGxvY2F0aW9uKCk7Ci0g
ICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiBtX3Zl
cnRpY2FsU2Nyb2xsYmFyKQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhcikKICAgICAgICAgcmVzdWx0Lm1vdmUobV92ZXJ0
aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpLCAwKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzU4NzE3OWNk
YjdmNjc5Mzk4YTdjODc3MzEyZWQ0OTdjMTZmZThkOS4uZDQ4MWY3ZWRjYmZiZjMzYmRhYjY2MzY3
N2M4ZmQ1MGI3MzhhZjlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5oCkBAIC0zNDIsNyArMzQyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1c2VzTW9j
a1Njcm9sbEFuaW1hdG9yKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbG9nTW9ja1Njcm9sbEFuaW1hdG9yTWVzc2FnZShjb25zdCBTdHJpbmcmKSBjb25zdCB7IH07
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9u
TGVmdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0ID0gMDsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hZHdhaXRhL1Njcm9sbGJhclRoZW1lQWR3YWl0YS5jcHAKaW5kZXggNGI3MjE1
NGJhMWUyYjdjMDYxZTljZWI0NTlmNGNjNTUwZWFlNWQ0Mi4uODdiYTRhZDk1NWU4ZjQ0ODVlYWNl
ZTk3OTM3ZDljMzhiY2EzZmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YWR3YWl0YS9TY3JvbGxiYXJUaGVtZUFkd2FpdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Fkd2FpdGEvU2Nyb2xsYmFyVGhlbWVBZHdhaXRhLmNwcApAQCAtMTI3LDcgKzEyNyw3
IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVBZHdhaXRhOjpwYWludChTY3JvbGxiYXImIHNjcm9sbGJh
ciwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljCiAKICAgICAgICAgSW50UmVjdCBmcmFtZSA9IHJl
Y3Q7CiAgICAgICAgIGlmIChzY3JvbGxiYXIub3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9s
bGJhcikgewotICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgICAgIGlmIChz
Y3JvbGxiYXIuc2Nyb2xsYWJsZUFyZWEoKS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkpCiAgICAgICAgICAgICAgICAgZnJhbWUubW92ZShmcmFtZS53aWR0aCgpIC0gaG92ZXJl
ZFNjcm9sbGJhckJvcmRlclNpemUsIDApOwogICAgICAgICAgICAgZnJhbWUuc2V0V2lkdGgoaG92
ZXJlZFNjcm9sbGJhckJvcmRlclNpemUpOwogICAgICAgICB9IGVsc2UKQEAgLTE0MCw3ICsxNDAs
NyBAQCBib29sIFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpYwogICAgIEludFJlY3QgdGh1bWIgPSByZWN0Owog
ICAgIGlmIChzY3JvbGxiYXIuaG92ZXJlZFBhcnQoKSA9PSBOb1BhcnQgJiYgdXNlc092ZXJsYXlT
Y3JvbGxiYXJzKCkpIHsKICAgICAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZl
cnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVB
cmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgICAgICB0aHVtYi5tb3ZlKGhvdmVyZWRTY3Jv
bGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRodW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIubW92ZShzY3JvbGxiYXJTaXplIC0gKG92ZXJs
YXlUaHVtYlNpemUgKyB0aHVtYkJvcmRlclNpemUpICsgaG92ZXJlZFNjcm9sbGJhckJvcmRlclNp
emUsIHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBib29s
IFNjcm9sbGJhclRoZW1lQWR3YWl0YTo6cGFpbnQoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIEdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpYwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYg
KHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7Ci0gICAgICAg
ICAgICBpZiAoc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAgICAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAg
ICAgICAgICB0aHVtYi5tb3ZlKHNjcm9sbGJhclNpemUgLSAoc2Nyb2xsYmFyU2l6ZSAvIDIgKyB0
aHVtYlNpemUgLyAyKSAtIGhvdmVyZWRTY3JvbGxiYXJCb3JkZXJTaXplLCB0aHVtYlBvcyArIHRo
dW1iQm9yZGVyU2l6ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgdGh1bWIu
bW92ZShzY3JvbGxiYXJTaXplIC0gKHNjcm9sbGJhclNpemUgLyAyICsgdGh1bWJTaXplIC8gMiks
IHRodW1iUG9zICsgdGh1bWJCb3JkZXJTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwCmluZGV4IGZlNTU1OGMzNTg0N2E4N2NmMjcx
NjA4MTU3ZjNlZmVjZDY4NGE3YjAuLjI4OTZjN2YzYjBkMjc4ZGIwOWI4MDA5MzQ3M2ZiNmJmYThm
YzIxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJU
aGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRo
ZW1lR3RrLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyBHdGtTdGF0ZUZsYWdzIHNjcm9s
bGJhclBhcnRTdGF0ZUZsYWdzKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0CiBz
dGF0aWMgUmVuZGVyVGhlbWVTY3JvbGxiYXI6OlR5cGUgd2lkZ2V0VHlwZUZvclNjcm9sbGJhcihT
Y3JvbGxiYXImIHNjcm9sbGJhciwgR3RrU3RhdGVGbGFncyBzY3JvbGxiYXJTdGF0ZSkKIHsKICAg
ICBpZiAoc2Nyb2xsYmFyLm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpIHsKLSAg
ICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNjcm9sbGJhci5zY3JvbGxhYmxl
QXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAg
IHJldHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVy
VGhlbWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyTGVmdCA6IFJlbmRlclRoZW1l
U2Nyb2xsYmFyOjpUeXBlOjpWZXJ0aWNhbFNjcm9sbEluZGljYXRvckxlZnQ7CiAgICAgICAgIHJl
dHVybiBzY3JvbGxiYXJTdGF0ZSAmIEdUS19TVEFURV9GTEFHX1BSRUxJR0hUID8gUmVuZGVyVGhl
bWVTY3JvbGxiYXI6OlR5cGU6OlZlcnRpY2FsU2Nyb2xsYmFyUmlnaHQgOiBSZW5kZXJUaGVtZVNj
cm9sbGJhcjo6VHlwZTo6VmVydGljYWxTY3JvbGxJbmRpY2F0b3JSaWdodDsKICAgICB9CkBAIC0z
ODAsNyArMzgwLDcgQEAgYm9vbCBTY3JvbGxiYXJUaGVtZUd0azo6cGFpbnQoU2Nyb2xsYmFyJiBz
Y3JvbGxiYXIsIEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb24KICAgICAvLyBkcmF3aW5nIHRo
ZSBpbmRpY2F0b3Igd2UgbmVlZCB0byBhZGp1c3QgdGhlIHJlY3RhbmdsZSB0byBpdHMgYWN0dWFs
IHNpemUgaW4gaW5kaWNhdG9yIG1vZGUuCiAgICAgaWYgKHNjcm9sbGJhci5vcmllbnRhdGlvbigp
ID09IFZlcnRpY2FsU2Nyb2xsYmFyKSB7CiAgICAgICAgIGlmIChyZWN0LndpZHRoKCkgIT0gcHJl
ZmVycmVkU2l6ZS53aWR0aCgpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgICAgIGlmICghc2Nyb2xsYmFyLnNjcm9sbGFibGVBcmVhKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgICAgIGNvbnRlbnRzUmVjdC5tb3Zl
KHN0ZDo6YWJzKHJlY3Qud2lkdGgoKSAtIHByZWZlcnJlZFNpemUud2lkdGgoKSksIDApOwogICAg
ICAgICAgICAgY29udGVudHNSZWN0LnNldFdpZHRoKHByZWZlcnJlZFNpemUud2lkdGgoKSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxi
YXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5tbQppbmRleCBiZDA2MTVmMjJkMzU4NjIwNGNiYmEwZTc4YjJhMjQyN2ZiYTE3ZjBhLi41
Mzk2MWE3YjcyMDQwMWY3MmUyMjQ1Y2JiNGUyMWI3Njc5NWFkNzA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLm1tCkBAIC0xNTksNyArMTU5
LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6ZGlkQ3JlYXRlU2Nyb2xsZXJJbXAoU2Nyb2xs
YmFyJiBzY3JvbGxiYXIpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2Nyb2xsZXJJbXAgKnNj
cm9sbGVySW1wID0gcGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwogICAgIEFTU0VSVChz
Y3JvbGxlckltcCk7Ci0gICAgc2Nyb2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biA9IHNjcm9sbGJhci5zY3JvbGxhYmxlQXJlYSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9M
ZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CisgICAgc2Ny
b2xsZXJJbXAudXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiA9IHNjcm9sbGJhci5zY3JvbGxh
YmxlQXJlYSgpLnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IE5TVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvblJpZ2h0VG9MZWZ0IDogTlNVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uTGVmdFRvUmlnaHQ7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxiYXIp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBN
ZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5k
ZXggN2Q1N2RhYTljZGZhODFjNGU1ZDc1N2E2Y2I2NWM1MDQ0NDM5NzVlMS4uNzJlMGU1Y2Y4OGY1
MmVkZjMzMDE5ZWExNjljYjJiMTM2MWJmNmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgSW50
U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9sbGFi
bGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAgICBi
b29sIGZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGlu
ZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBzaG91bGRQbGFj
ZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25s
eSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxh
YmxlQXJlYS4KICAgICB2b2lkIHNjcm9sbFRvKGludCBvZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggYmI0ZGY3Y2M4NzhkMWFkZjZlZTQ1OTFmOWZk
NWYzZmY0MzQ0ZGMwYS4uMjYwNmQ1MmU3NjE4ZmQ2OTUxMzQxMDA2ZGJhZWI4ZmU4NDQ5ZmNmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xOTIzLDcgKzE5
MjMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjp0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3QK
IExheW91dFVuaXQgUmVuZGVyQmxvY2s6OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5k
ZXJGcmFnbWVudENvbnRhaW5lciogZnJhZ21lbnQpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJv
cmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKTsK
LSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQorICAg
IGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbExlZnRPZmZzZXQgKz0gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIGlmICghZnJhZ21lbnQpCiAgICAgICAgIHJldHVybiBsb2dpY2Fs
TGVmdE9mZnNldDsKQEAgLTE5MzQsNyArMTkzNCw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2s6
OmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVudChSZW5kZXJGcmFnbWVudENvbnRhaW5lciogZnJh
CiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KFJl
bmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKIHsKICAgICBMYXlvdXRVbml0
IGxvZ2ljYWxSaWdodE9mZnNldCA9IHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgOiBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3Ao
KTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKQor
ICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgbG9naWNhbFJpZ2h0T2Zmc2V0ICs9IHZlcnRpY2Fs
U2Nyb2xsYmFyV2lkdGgoKTsKICAgICBsb2dpY2FsUmlnaHRPZmZzZXQgKz0gYXZhaWxhYmxlTG9n
aWNhbFdpZHRoKCk7CiAgICAgaWYgKCFmcmFnbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMjJmM2ZhMDZlNWQ0YjM4ZjQ0MmVjMjg0MDU3
ZDcxNzFjYTZiNTUzYy4uMzZjMTkxZDA1YTI4ODMyNjk3ZTYwNWI5MGU4ZjdjOTE3ZTRmM2RmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTg4
Myw3ICs4ODMsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrRmxvdzo6bWFyZ2luT2Zmc2V0Rm9y
U2VsZkNvbGxhcHNpbmdCbG9jaygpCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZGV0ZXJtaW5lTG9n
aWNhbExlZnRQb3NpdGlvbkZvckNoaWxkKFJlbmRlckJveCYgY2hpbGQsIEFwcGx5TGF5b3V0RGVs
dGFNb2RlIGFwcGx5RGVsdGEpCiB7CiAgICAgTGF5b3V0VW5pdCBzdGFydFBvc2l0aW9uID0gYm9y
ZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpOwotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3Jv
bGxiYXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBzdGFy
dFBvc2l0aW9uICs9IChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IDEgOiAtMSkg
KiB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7CiAgICAgTGF5b3V0VW5pdCB0b3RhbEF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCA9IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSArIGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmlu
ZGV4IGIyZGY0MjJhYWEzZmJiNGJmNTQzZjExZmIwNzg5YmVkN2ZmY2ViODEuLjE4NDlkYTFiZGFm
Mjc0NTM3YmM1YzdlNGY0MTVmMjlhZjhhNTc0ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC03MjIsNyArNzIyLDcgQEAgUm91bmRlZFJlY3QgUmVuZGVyQm94Ojpy
b3VuZGVkQm9yZGVyQm94UmVjdCgpIGNvbnN0CiBMYXlvdXRSZWN0IFJlbmRlckJveDo6cGFkZGlu
Z0JveFJlY3QoKSBjb25zdAogewogICAgIGF1dG8gdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9IHRo
aXMtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IG9mZnNldEZvclNj
cm9sbGJhciA9IHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGggOiAwOworICAgIExheW91dFVuaXQgb2Zmc2V0Rm9yU2Nyb2xs
YmFyID0gc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gdmVydGljYWxTY3Jv
bGxiYXJXaWR0aCA6IDA7CiAKICAgICByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBv
ZmZzZXRGb3JTY3JvbGxiYXIsIGJvcmRlclRvcCgpLAogICAgICAgICB3aWR0aCgpIC0gYm9yZGVy
TGVmdCgpIC0gYm9yZGVyUmlnaHQoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgsCkBAIC03MzYs
NyArNzM2LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KCkgY29uc3QK
IAogTGF5b3V0UG9pbnQgUmVuZGVyQm94Ojpjb250ZW50Qm94TG9jYXRpb24oKSBjb25zdAogewot
ICAgIExheW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOworICAgIExh
eW91dFVuaXQgc2Nyb2xsYmFyU3BhY2UgPSBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25M
ZWZ0KCkgPyB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkgOiAwOwogICAgIHJldHVybiB7IGJvcmRl
ckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJTcGFjZSwgYm9yZGVyVG9wKCkgKyBw
YWRkaW5nVG9wKCkgfTsKIH0KIApAQCAtMTk2NCw3ICsxOTY0LDcgQEAgTGF5b3V0UmVjdCBSZW5k
ZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5k
ZXJGcmFnbWUKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhl
bS4KICAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBsYXllcigpID8gbGF5ZXIoKS0+c2Ny
b2xsYWJsZUFyZWEoKSA6IG51bGxwdHIpIHsKLSAgICAgICAgaWYgKHNob3VsZFBsYWNlQmxvY2tE
aXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSkKICAgICAgICAgICAgIGNsaXBSZWN0Lm1vdmUoc2Nyb2xsYWJs
ZUFyZWEtPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgMCk7CiAgICAgICAgIGNs
aXBSZWN0LmNvbnRyYWN0KHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJl
bGV2YW5jeSksIHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KHJlbGV2
YW5jeSkpOwogICAgIH0KQEAgLTM3NTksNyArMzc1OSw3IEBAIHZvaWQgUmVuZGVyQm94Ojpjb21w
dXRlUG9zaXRpb25lZExvZ2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNv
bXB1CiAgICAgY29tcHV0ZWRWYWx1ZXMubV9leHRlbnQgKz0gYm9yZGVyc1BsdXNQYWRkaW5nOwog
ICAgIGlmIChpczxSZW5kZXJCb3g+KGNvbnRhaW5lckJsb2NrKSkgewogICAgICAgICBhdXRvJiBj
b250YWluaW5nQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94Pihjb250YWluZXJCbG9jayk7Ci0gICAg
ICAgIGlmIChjb250YWluaW5nQm94LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSkKKyAgICAgICAgaWYgKGNvbnRhaW5pbmdCb3guc2hvdWxkUGxhY2VWZXJ0aWNhbFNj
cm9sbGJhck9uTGVmdCgpICYmIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAg
ICBjb21wdXRlZFZhbHVlcy5tX3Bvc2l0aW9uICs9IGNvbnRhaW5pbmdCb3gudmVydGljYWxTY3Jv
bGxiYXJXaWR0aCgpOwogICAgIH0KICAgICAKQEAgLTQ5ODAsNyArNDk4MCw3IEBAIExheW91dFJl
Y3QgUmVuZGVyQm94OjpmbGlwcGVkQ2xpZW50Qm94UmVjdCgpIGNvbnN0CiAgICAgZmxpcEZvcldy
aXRpbmdNb2RlKHJlY3QpOwogICAgIC8vIFN1YnRyYWN0IHNwYWNlIG9jY3VwaWVkIGJ5IHNjcm9s
bGJhcnMuIFRoZXkgYXJlIGF0IHRoZWlyIHBoeXNpY2FsIGVkZ2UgaW4gdGhpcyBjb29yZGluYXRl
CiAgICAgLy8gc3lzdGVtLCBzbyBvcmRlciBpcyBpbXBvcnRhbnQgaGVyZTogZmlyc3QgZmxpcCwg
dGhlbiBzdWJ0cmFjdCBzY3JvbGxiYXJzLgotICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCkpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxi
YXJPbkxlZnQoKSAmJiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZWN0Lm1v
dmUodmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKTsKICAgICByZWN0LmNvbnRyYWN0KHZlcnRp
Y2FsU2Nyb2xsYmFyV2lkdGgoKSwgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpKTsKICAgICBy
ZXR1cm4gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IGI0NjNmYzlkY2IyMjRhZDk4M2RlNWQ2OWFlM2VlMzVmY2I2MjIz
ZTkuLmZhYTc2MDkxZDA0ZDQ1NWU4MmIzMzMyMjhhZmE0MjEzODdkNWZjZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTU2
LDcgKzU1Niw3IEBAIEZsb2F0UmVjdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29uc3RyYWluaW5n
UmVjdEZvclN0aWNreVBvc2l0aW9uKCkgY29uc3QKICAgICAgICAgICAgIHNjcm9sbE9mZnNldCA9
IEZsb2F0UG9pbnQoKSArIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxPZmZzZXQoKTsKIAogICAgICAg
ICBmbG9hdCBzY3JvbGxiYXJPZmZzZXQgPSAwOwotICAgICAgICBpZiAoZW5jbG9zaW5nQ2xpcHBp
bmdCb3guaGFzTGF5ZXIoKSAmJiBlbmNsb3NpbmdDbGlwcGluZ0JveC5zaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgJiYgc2Nyb2xsYWJsZUFyZWEpCisgICAgICAgIGlm
IChlbmNsb3NpbmdDbGlwcGluZ0JveC5oYXNMYXllcigpICYmIGVuY2xvc2luZ0NsaXBwaW5nQm94
LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSAmJiBzY3JvbGxhYmxlQXJlYSkK
ICAgICAgICAgICAgIHNjcm9sbGJhck9mZnNldCA9IHNjcm9sbGFibGVBcmVhLT52ZXJ0aWNhbFNj
cm9sbGJhcldpZHRoKElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgICAgICBjb25z
dHJhaW5pbmdSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoc2Nyb2xsT2Zmc2V0LngoKSArIHNj
cm9sbGJhck9mZnNldCwgc2Nyb2xsT2Zmc2V0LnkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2E1OTU4YzkyM2EyMTQ4NjIxYWZjZGMzYzRkYmNmNGEz
N2I0MjMxMS4uNTY5NTYxYmM3NGQzZDdjMGQzYjUxZGI0Y2Y2NDdlMzI4MWZkMzZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDMwLDkgKzI0MzAsMTAg
QEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0
JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgLy8gYm9yZGVyIGVkZ2UuIE1ha2Ug
dGhlIHJlY3RhbmdsZSByZWxhdGl2ZSB0byB0aGUgc2Nyb2xsYWJsZSBhcmVhLgogICAgICAgICBs
b2NhbEV4cG9zZVJlY3QubW92ZUJ5KC1MYXlvdXRQb2ludChib3gtPmJvcmRlckxlZnQoKSwgYm94
LT5ib3JkZXJUb3AoKSkpOwogCi0gICAgICAgIGlmIChib3gtPnNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkgewotICAgICAgICAgICAgLy8gRm9yIGRpcmVjdGlvbjog
cnRsOyB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGIgYm94LCB0aGUgc2Nyb2xsIGJhciBpcyBv
biB0aGUgbGVmdCBzaWRlLiBUaGUgdmlzaWJsZSByZWN0Ci0gICAgICAgICAgICAvLyBzdGFydHMg
ZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiBzY3JvbGwgYmFyLiBTbyB0aGUgeCBvZiBsb2NhbEV4cG9z
ZVJlY3Qgc2hvdWxkIHN0YXJ0IGZyb20gdGhlIHNhbWUgcG9zaXRpb24gdG9vLgorICAgICAgICBp
ZiAoYm94LT5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKKyAgICAgICAg
ICAgIC8vIEZvciBgZGlyZWN0aW9uOiBydGw7IHdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC17dGIs
YnR9YCBhbmQgYHdyaXRpbmctbW9kZTogdmVydGljYWwtcmxgCisgICAgICAgICAgICAvLyBib3hl
cywgdGhlIHNjcm9sbCBiYXIgaXMgb24gdGhlIGxlZnQgc2lkZS4gVGhlIHZpc2libGUgcmVjdCBz
dGFydHMgZnJvbSB0aGUgcmlnaHQgc2lkZQorICAgICAgICAgICAgLy8gb2YgdGhlIHNjcm9sbCBi
YXIuIFNvIHRoZSB4IG9mIGxvY2FsRXhwb3NlUmVjdCBzaG91bGQgc3RhcnQgZnJvbSB0aGUgc2Ft
ZSBwb3NpdGlvbiB0b28uCiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZUJ5KExheW91
dFBvaW50KC1zY3JvbGxhYmxlQXJlYS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aCgpLCAwKSk7CiAg
ICAgICAgIH0KICAgICAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwX2x1LCAwX2x1LCBib3gt
PmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0KCkpOwpAQCAtMjY3Niw3ICsyNjc3LDcg
QEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0
LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICBlbGVtZW50LT5zZXRNaW5pbXVtU2l6ZUZv
clJlc2l6aW5nKG1pbmltdW1TaXplKTsKICAgICAKICAgICBMYXlvdXRTaXplIGFkanVzdGVkT2xk
T2Zmc2V0ID0gTGF5b3V0U2l6ZShvbGRPZmZzZXQud2lkdGgoKSAvIHpvb21GYWN0b3IsIG9sZE9m
ZnNldC5oZWlnaHQoKSAvIHpvb21GYWN0b3IpOwotICAgIGlmIChyZW5kZXJlci0+c2hvdWxkUGxh
Y2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyLT5z
aG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkpIHsKICAgICAgICAgbmV3T2Zmc2V0
LnNldFdpZHRoKC1uZXdPZmZzZXQud2lkdGgoKSk7CiAgICAgICAgIGFkanVzdGVkT2xkT2Zmc2V0
LnNldFdpZHRoKC1hZGp1c3RlZE9sZE9mZnNldC53aWR0aCgpKTsKICAgICB9CkBAIC0yNzMzLDcg
KzI3MzQsNyBAQCBSZW5kZXJMYXllcjo6T3ZlcmZsb3dDb250cm9sUmVjdHMgUmVuZGVyTGF5ZXI6
Om92ZXJmbG93Q29udHJvbHNSZWN0cygpIGNvbnN0CiAgICAgLy8gU2Nyb2xsYmFycyBzaXQgaW5z
aWRlIHRoZSBib3JkZXIgYm94LgogICAgIGF1dG8gb3ZlcmZsb3dDb250cm9sc1Bvc2l0aW9uaW5n
UmVjdCA9IHNuYXBwZWRJbnRSZWN0KHJlbmRlckJveC5wYWRkaW5nQm94UmVjdEluY2x1ZGluZ1Nj
cm9sbGJhcigpKTsKIAotICAgIGJvb2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9
IHJlbmRlckJveC5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7Cisg
ICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVMZWZ0ID0gcmVuZGVyQm94LnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0g
cmVuZGVyZXIoKS5zdHlsZSgpLnJlc2l6ZSgpICE9IFJlc2l6ZTo6Tm9uZTsKIAogICAgIE92ZXJm
bG93Q29udHJvbFJlY3RzIHJlc3VsdDsKQEAgLTI3ODYsNyArMjc4Nyw3IEBAIFN0cmluZyBSZW5k
ZXJMYXllcjo6ZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0CiBJbnRTaXplIFJlbmRlckxheWVyOjpv
ZmZzZXRGcm9tUmVzaXplQ29ybmVyKGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KSBjb25zdAog
ewogICAgIGF1dG8gcmVzaXplclJlY3QgPSBvdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5yZXNpemVy
OwotICAgIGF1dG8gcmVzaXplQ29ybmVyID0gcmVuZGVyZXIoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyByZXNpemVyUmVjdC5taW5YTWF4WUNvcm5lcigpIDog
cmVzaXplclJlY3QubWF4WE1heFlDb3JuZXIoKTsKKyAgICBhdXRvIHJlc2l6ZUNvcm5lciA9IHJl
bmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpID8gcmVzaXplclJl
Y3QubWluWE1heFlDb3JuZXIoKSA6IHJlc2l6ZXJSZWN0Lm1heFhNYXhZQ29ybmVyKCk7CiAgICAg
cmV0dXJuIGxvY2FsUG9pbnQgLSByZXNpemVDb3JuZXI7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGNjZWNjZmQ1
MDBlYTBlYjcxMWUwNzk4NGIzODE0MWQ4N2E2ZDYxZC4uNTY4NDA4ZDhhODMwNmVmNzQ4ZDljOWI3
OGM5MDAyMTA1MTExMjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTIyMzAsNyArMjIzMCw3IEBAIEZsb2F0UG9pbnQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwb3NpdGlvbkZvckNsaXBMYXllcigpIGNvbnN0CiAgICAg
YXV0byYgZnJhbWVWaWV3ID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpOwogCiAgICAgcmV0dXJu
IEZsb2F0UG9pbnQoCi0gICAgICAgIGZyYW1lVmlldy5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9u
U2Nyb2xsYmFyT25MZWZ0KCkgPyBmcmFtZVZpZXcuaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lv
bigpIDogMCwKKyAgICAgICAgZnJhbWVWaWV3LnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSA/IGZyYW1lVmlldy5ob3Jpem9udGFsU2Nyb2xsYmFySW50cnVzaW9uKCkgOiAwLAog
ICAgICAgICBGcmFtZVZpZXc6OnlQb3NpdGlvbkZvckluc2V0Q2xpcExheWVyKGZyYW1lVmlldy5z
Y3JvbGxQb3NpdGlvbigpLCBmcmFtZVZpZXcudG9wQ29udGVudEluc2V0KCkpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3Bw
CmluZGV4IGRhYjVlYTk4NGU3MmUxYTVkZmJmYjExNDk4YzdiNzI4ZmI5OWY3YWYuLjJiYjVhNTUy
ODlmNjQ4OTgwMTRmNzQ1ZWI0ZTFiMTMwMTBhNTE0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTIwNyw3ICsyMDcs
NyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogI2VuZGlmCiB9CiAKLWJvb2wgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewogLy8gUlRMIFNjcm9sbGJhcnMgcmVxdWlyZSBzb21l
IHN5c3RlbSBzdXBwb3J0LCBhbmQgdGhpcyBzeXN0ZW0gc3VwcG9ydCBkb2VzIG5vdCBleGlzdCBv
biBjZXJ0YWluIHZlcnNpb25zIG9mIE9TIFguIGlPUyB1c2VzIGEgc2VwYXJhdGUgbWVjaGFuaXNt
LgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMTUsMTIgKzIxNSwxMiBAQCBib29sIFJl
bmRlckxheWVyTW9kZWxPYmplY3Q6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdAogI2Vsc2UKICAgICBzd2l0Y2ggKHNldHRpbmdzKCkudXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeSgpKSB7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9s
aWN5OjpDb250ZW50OgotICAgICAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGly
ZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgICAgIHJldHVybiBzdHlsZSgpLnNob3VsZFBs
YWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsKICAgICBjYXNlIFVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3k6OlN5c3RlbToKICAgICAgICAgcmV0dXJuIHNldHRpbmdzKCkuc3lzdGVtTGF5
b3V0RGlyZWN0aW9uKCkgPT0gVGV4dERpcmVjdGlvbjo6UlRMOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0
aW9uU2Nyb2xsYmFyT25MZWZ0KCk7CisgICAgcmV0dXJuIHN0eWxlKCkuc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IDljOTY2ZjdlYjJmMDI3
ZDYzMGQwMjEzMmFkYjliMTNjYmE4ZTlkZjEuLjQ5ZjE4YTExOTlhMmQ3OGE1M2RkZDVjNmFmM2Q3
ZmY4ZGM1YjE5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZUJveCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxl
ZnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQo
KSBjb25zdDsKIAogICAgIE9wdGlvbmFsPExheWVyUmVwYWludFJlY3RzPiBsYXllclJlcGFpbnRS
ZWN0cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggYzBjNTAyYWI5NWViODQ5OWUwYWQ2ODUy
MTQ5ZjAxZjE5YTNjMWE0MS4uNzczYzQ3YzZjYzJmZTcwYTRlZTE2OTRjOTIwOTA5MTBhNDk1NmRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xs
YWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcApAQCAtMTE5LDkgKzExOSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3Jv
bGxhYmxlQXJlYTo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKICAgICBlbGVtZW50LT5zZXRTYXZl
ZExheWVyU2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoKSk7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
IGNvbnN0Citib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdAogewotICAgIHJldHVybiBtX2xheWVyLnJlbmRlcmVy
KCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIHJldHVy
biBtX2xheWVyLnJlbmRlcmVyKCkuc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgp
OwogfQogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC02NTQsNyArNjU0LDcgQEAg
UmVuZGVyTGF5ZXI6Ok92ZXJmbG93Q29udHJvbFJlY3RzIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6Om92ZXJmbG93Q29udHJvbHNSZWMKIAogICAgIGJvb2wgaGF2ZU5vbk92ZXJsYXlIb3Jpem9u
dGFsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xsYmFyKG1faEJhci5nZXQoKSk7CiAgICAg
Ym9vbCBoYXZlTm9uT3ZlcmxheVZlcnRpY2FsU2Nyb2xsYmFyID0gaXNOb25PdmVybGF5U2Nyb2xs
YmFyKG1fdkJhci5nZXQoKSk7Ci0gICAgYm9vbCBwbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25UaGVM
ZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpOworICAgIGJv
b2wgcGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uVGhlTGVmdCA9IHNob3VsZFBsYWNlVmVydGljYWxT
Y3JvbGxiYXJPbkxlZnQoKTsKICAgICBib29sIGhhdmVSZXNpemVyID0gcmVuZGVyZXIuc3R5bGUo
KS5yZXNpemUoKSAhPSBSZXNpemU6Ok5vbmU7CiAgICAgYm9vbCBzY3JvbGxiYXJzQXZvaWRDb3Ju
ZXIgPSAoaGF2ZU5vbk92ZXJsYXlIb3Jpem9udGFsU2Nyb2xsYmFyICYmIGhhdmVOb25PdmVybGF5
VmVydGljYWxTY3JvbGxiYXIpIHx8IChoYXZlUmVzaXplciAmJiAoaGF2ZU5vbk92ZXJsYXlIb3Jp
em9udGFsU2Nyb2xsYmFyIHx8IGhhdmVOb25PdmVybGF5VmVydGljYWxTY3JvbGxiYXIpKTsKIApA
QCAtMTAyMSw3ICsxMDIxLDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpjb21w
dXRlU2Nyb2xsT3JpZ2luKCkKICAgICBBU1NFUlQoYm94KTsKIAogICAgIGludCBzY3JvbGxhYmxl
TGVmdE92ZXJmbG93ID0gcm91bmRUb0ludChvdmVyZmxvd0xlZnQoKSAtIGJveC0+Ym9yZGVyTGVm
dCgpKTsKLSAgICBpZiAoc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgp
KQorICAgIGlmIChzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgLyp8fCBib3gt
PnN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQqLykKICAg
ICAgICAgc2Nyb2xsYWJsZUxlZnRPdmVyZmxvdyAtPSB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCk7
CiAgICAgaW50IHNjcm9sbGFibGVUb3BPdmVyZmxvdyA9IHJvdW5kVG9JbnQob3ZlcmZsb3dUb3Ao
KSAtIGJveC0+Ym9yZGVyVG9wKCkpOwogICAgIHNldFNjcm9sbE9yaWdpbihJbnRQb2ludCgtc2Ny
b2xsYWJsZUxlZnRPdmVyZmxvdywgLXNjcm9sbGFibGVUb3BPdmVyZmxvdykpOwpAQCAtMTEwNCw3
ICsxMTA0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxi
YXJzQWZ0ZXJMYXlvdXQoKQogICAgICAgICBpZiAoYm94LT5oYXNWZXJ0aWNhbFNjcm9sbGJhcldp
dGhBdXRvQmVoYXZpb3IoKSkKICAgICAgICAgICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGhh
c1ZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgICAgIGlmIChhdXRvVmVydGljYWxTY3JvbGxCYXJD
aGFuZ2VkICYmIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSkKKyAg
ICAgICAgaWYgKGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQgJiYgc2hvdWxkUGxhY2VWZXJ0
aWNhbFNjcm9sbGJhck9uTGVmdCgpKQogICAgICAgICAgICAgY29tcHV0ZVNjcm9sbE9yaWdpbigp
OwogCiAgICAgICAgIG1fbGF5ZXIudXBkYXRlU2VsZlBhaW50aW5nTGF5ZXIoKTsKQEAgLTEzNDgs
NyArMTM0OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6ZHJhd1BsYXRmb3Jt
UmVzaXplckltYWdlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4CiAgICAgICAgIGNvcm5lclJlc2l6
ZXJTaXplID0gcmVzaXplQ29ybmVySW1hZ2UtPnNpemUoKTsKICAgICB9CiAKLSAgICBpZiAoc2hv
dWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpKSB7CisgICAgaWYgKHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAgICAgICBjb250ZXh0LnNhdmUo
KTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVzaXplckNvcm5lclJlY3QueCgpICsgY29y
bmVyUmVzaXplclNpemUud2lkdGgoKSwgcmVzaXplckNvcm5lclJlY3QueSgpICsgcmVzaXplckNv
cm5lclJlY3QuaGVpZ2h0KCkgLSBjb3JuZXJSZXNpemVyU2l6ZS5oZWlnaHQoKSk7CiAgICAgICAg
IGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKC0xLjAsIDEuMCkpOwpAQCAtMTUwOSw3ICsxNTA5LDcg
QEAgYm9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpoaXRUZXN0UmVzaXplckluRnJhZ21l
bnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJgogICAgIGF1dG8gcmVjdHMgPSBvdmVyZmxvd0NvbnRy
b2xzUmVjdHMoKTsKIAogICAgIGF1dG8gY29ybmVyUmVjdEluRnJhZ21lbnQgPSBbJl0oY29uc3Qg
SW50UmVjdCYgZnJhZ21lbnRCb3VuZHMsIGNvbnN0IEludFJlY3QmIHJlc2l6ZXJSZWN0KSB7Ci0g
ICAgICAgIGlmIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkpIHsK
KyAgICAgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkgewogICAg
ICAgICAgICAgSW50U2l6ZSBvZmZzZXRGcm9tQm90dG9tTGVmdCA9IGJvcmRlckJveFJlY3QubWlu
WE1heFlDb3JuZXIoKSAtIHJlc2l6ZXJSZWN0Lm1pblhNYXhZQ29ybmVyKCk7CiAgICAgICAgICAg
ICByZXR1cm4gSW50UmVjdCB7IGZyYWdtZW50Qm91bmRzLm1pblhNYXhZQ29ybmVyKCkgLSBvZmZz
ZXRGcm9tQm90dG9tTGVmdCAtIEludFNpemUgeyAwLCByZXNpemVyUmVjdC5oZWlnaHQoKSB9LCBy
ZXNpemVyUmVjdC5zaXplKCkgfTsKICAgICAgICAgfQpAQCAtMTU3MCw3ICsxNTcwLDcgQEAgdm9p
ZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJTdHlsZUNo
YW5nZShjb25zdCBSZW5kZXJTdHkKICAgICBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKG5lZWRz
SG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIobmVlZHNW
ZXJ0aWNhbFNjcm9sbGJhcik7CiAKLSAgICBpZiAoaGFkVmVydGljYWxTY3JvbGxiYXIgIT0gbmVl
ZHNWZXJ0aWNhbFNjcm9sbGJhciB8fCAobmVlZHNWZXJ0aWNhbFNjcm9sbGJhciAmJiBvbGRTdHls
ZSAmJiBib3gtPnN0eWxlKCkuc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCgpICE9IG9sZFN0eWxlLT5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkpKQorICAgIGlmIChoYWRWZXJ0aWNhbFNjcm9sbGJhciAhPSBuZWVkc1ZlcnRpY2FsU2Nyb2xs
YmFyIHx8IChuZWVkc1ZlcnRpY2FsU2Nyb2xsYmFyICYmIG9sZFN0eWxlICYmIGJveC0+c3R5bGUo
KS5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgIT0gb2xkU3R5bGUtPnNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSkpCiAgICAgICAgIGNvbXB1dGVTY3JvbGxP
cmlnaW4oKTsKIAogICAgIC8vIFdpdGggbm9uLW92ZXJsYXkgb3ZlcmZsb3c6c2Nyb2xsLCBzY3Jv
bGxiYXJzIGFyZSBhbHdheXMgdmlzaWJsZSBidXQgbWF5IGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5k
ZXggMjgyNDU1MTRkY2FiOGNjMzg0YTUxNTZiZDQ5ODNlN2NkYTRiNDZlOC4uYWU0NzE5OTM3MjNk
ZjhhZjA5N2ZkNTA5NzY5ODk4Yjg3ZTc1NmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCkBAIC0xNjcsNyArMTY3LDcg
QEAgcHVibGljOgogICAgIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIHVzZXNBc3luY1Njcm9sbGluZygpIGNvbnN0IGZpbmFsOwogCi0gICAgYm9v
bCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmluYWw7
CisgICAgYm9vbCBzaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QgZmlu
YWw7CiAKICAgICBib29sIGlzUmVuZGVyTGF5ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5j
cHAKaW5kZXggOTUwYjFkN2UzMWQyYzBjZDg0NzdkZDFhYjZhMzhjNTBmNTcyZGY5Zi4uM2VhN2I3
MDI0YWVhOGNiOWY4NTI4MGI1ZDhmNjVhNDlkOTBlODk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMjgxLDcgKzI4MSw3IEBAIExheW91dFVuaXQg
UmVuZGVyTGlzdEJveDo6YmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBl
LCBib29sIGZpcnN0CiBMYXlvdXRSZWN0IFJlbmRlckxpc3RCb3g6Oml0ZW1Cb3VuZGluZ0JveFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGludCBpbmRleCkKIHsKICAg
ICBMYXlvdXRVbml0IHggPSBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJvcmRlckxlZnQoKSArIHBh
ZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCisgICAgaWYgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJP
bkxlZnQoKSAmJiBtX3ZCYXIpCiAgICAgICAgIHggKz0gbV92QmFyLT5vY2N1cGllZFdpZHRoKCk7
CiAgICAgTGF5b3V0VW5pdCB5ID0gYWRkaXRpb25hbE9mZnNldC55KCkgKyBib3JkZXJUb3AoKSAr
IHBhZGRpbmdUb3AoKSArIGl0ZW1IZWlnaHQoKSAqIChpbmRleCAtIG1faW5kZXhPZmZzZXQpOwog
ICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHksIGNvbnRlbnRXaWR0aCgpLCBpdGVtSGVpZ2h0KCkp
OwpAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6cGFpbnRTY3JvbGxiYXIo
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWluCiAgICAgaWYgKCFt
X3ZCYXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIExheW91dFVuaXQgbGVmdCA9IHBhaW50T2Zm
c2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgPyBi
b3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSk7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ID0gcGFpbnRPZmZzZXQueCgpICsgKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHBhaW50T2Zm
c2V0LnkoKSArIGJvcmRlclRvcCgpOwogICAgIExheW91dFVuaXQgd2lkdGggPSBtX3ZCYXItPndp
ZHRoKCk7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSB0aGlzLT5oZWlnaHQoKSAtIChib3JkZXJU
b3AoKSArIGJvcmRlckJvdHRvbSgpKTsKQEAgLTQ2OSw3ICs0NjksNyBAQCBib29sIFJlbmRlckxp
c3RCb3g6OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNv
bnN0IExheW91dAogICAgIGlmICghbV92QmFyIHx8ICFtX3ZCYXItPnNob3VsZFBhcnRpY2lwYXRl
SW5IaXRUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIExheW91dFVuaXQg
eCA9IGFjY3VtdWxhdGVkT2Zmc2V0LngoKSArIChzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Ny
b2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAt
IG1fdkJhci0+d2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCB4ID0gYWNjdW11bGF0ZWRPZmZzZXQu
eCgpICsgKHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQo
KSA6IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpKTsKICAgICBMYXlv
dXRVbml0IHkgPSBhY2N1bXVsYXRlZE9mZnNldC55KCkgKyBib3JkZXJUb3AoKTsKICAgICBMYXlv
dXRVbml0IHdpZHRoID0gbV92QmFyLT53aWR0aCgpOwogICAgIExheW91dFVuaXQgaGVpZ2h0ID0g
dGhpcy0+aGVpZ2h0KCkgLSBib3JkZXJUb3AoKSAtIGJvcmRlckJvdHRvbSgpOwpAQCAtNDkxLDkg
KzQ5MSw5IEBAIGludCBSZW5kZXJMaXN0Qm94OjpsaXN0SW5kZXhBdE9mZnNldChjb25zdCBMYXlv
dXRTaXplJiBvZmZzZXQpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGludCBzY3JvbGxiYXJX
aWR0aCA9IG1fdkJhciA/IG1fdkJhci0+d2lkdGgoKSA6IDA7Ci0gICAgaWYgKHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSAmJiAob2Zmc2V0LndpZHRoKCkgPCBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpICsgc2Nyb2xsYmFyV2lkdGggfHwgb2Zmc2V0LndpZHRo
KCkgPiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHBhZGRpbmdSaWdodCgpKSkKKyAgICBpZiAo
c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpICYmIChvZmZzZXQud2lkdGgoKSA8
IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkgKyBzY3JvbGxiYXJXaWR0aCB8fCBvZmZzZXQu
d2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGluZ1JpZ2h0KCkpKQogICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKCFzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xs
YmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gcGFkZGlu
Z1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCisgICAgaWYgKCFzaG91bGRQbGFjZVZlcnRpY2Fs
U2Nyb2xsYmFyT25MZWZ0KCkgJiYgKG9mZnNldC53aWR0aCgpIDwgYm9yZGVyTGVmdCgpICsgcGFk
ZGluZ0xlZnQoKSB8fCBvZmZzZXQud2lkdGgoKSA+IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
cGFkZGluZ1JpZ2h0KCkgLSBzY3JvbGxiYXJXaWR0aCkpCiAgICAgICAgIHJldHVybiAtMTsKIAog
ICAgIGludCBuZXdPZmZzZXQgPSAob2Zmc2V0LmhlaWdodCgpIC0gYm9yZGVyVG9wKCkgLSBwYWRk
aW5nVG9wKCkpIC8gaXRlbUhlaWdodCgpICsgbV9pbmRleE9mZnNldDsKQEAgLTgwMCwxNCArODAw
LDE0IEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25zdAogdm9pZCBSZW5kZXJM
aXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3QgPSByZWN0OwotICAg
IHNjcm9sbFJlY3QubW92ZShzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVjdC5tb3ZlKHNob3VsZFBsYWNlVmVy
dGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRlclRvcCgpKTsKICAgICByZXBhaW50UmVj
dGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3Qg
PSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9j
a0RpcmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9
IHNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdp
ZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9s
bGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5k
ZXJlclRvQ29udGFpbmluZ1ZpZXcodGhpcywgcmVjdCk7CkBAIC04MTYsNyArODE2LDcgQEAgSW50
UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgU2Nyb2xsYmFyJiBzY3IKIEludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25z
dCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXco
KS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBw
YXJlbnRSZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3VsZFBsYWNlQmxvY2tEaXJl
Y3Rpb25TY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSBzaG91
bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgPyBib3JkZXJMZWZ0KCkgOiB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJU
b3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3JvbGxi
YXJUb3ApOwogICAgIHJldHVybiByZWN0OwpAQCAtODI1LDcgKzgyNSw3IEBAIEludFJlY3QgUmVu
ZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNj
cm9sbGJhciYgc2NyCiBJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9s
bGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0RpcmVj
dGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNob3Vs
ZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRoKCkg
LSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRv
cCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFy
VG9wKTsKICAgICByZXR1cm4gdmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJU
b0NvbnRhaW5pbmdWaWV3KHRoaXMsIHBvaW50KTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBJbnRQb2lu
dCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyJiBzYwogSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3
KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywg
cGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gc2hvdWxkUGxhY2VCbG9ja0Rp
cmVjdGlvblNjcm9sbGJhck9uTGVmdCgpID8gYm9yZGVyTGVmdCgpIDogd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHNo
b3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKSA/IGJvcmRlckxlZnQoKSA6IHdpZHRo
KCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJh
clRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1zY3Jv
bGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDIxYmJhYTI3ODA4NjA5ODFlMTgyYWYwZjk5MjZjNGYyMTdlMTM0
MmUuLjlmOTNkMThlNDFkYzljNzNiOWU1OTYyOTU5ZTYwNmE1NWVmMGFkMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwYWludEl0ZW1CYWNrZ3JvdW5kKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JiwgaW50IGxpc3RJbmRleCk7CiAgICAgdm9pZCBzY3JvbGxUb1JldmVhbFNlbGVjdGlv
bigpOwogCi0gICAgYm9vbCBzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUmVuZGVyQmxvY2tGbG93OjpzaG91bGRQbGFjZUJsb2Nr
RGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCk7IH0KKyAgICBib29sIHNob3VsZFBsYWNlVmVydGlj
YWxTY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBSZW5kZXJCbG9ja0Zsb3c6
OnNob3VsZFBsYWNlVmVydGljYWxTY3JvbGxiYXJPbkxlZnQoKTsgfQogCiAgICAgYm9vbCBtX29w
dGlvbnNDaGFuZ2VkOwogICAgIGJvb2wgbV9zY3JvbGxUb1JldmVhbFNlbGVjdGlvbkFmdGVyTGF5
b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDRjM2ZmNGZh
ZmQyZWI1MjJjZWVlZmQ1YzI5YjQ4ODNiOTVjYzFhZDEuLjNjZDMwZGI3NWY1MWZmMmE2MzE2NGJh
YTU2M2ViYTI1ZGQwNTRmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAogICAgICAgICAvLyBhbmQg
dGhlIFJlbmRlcmVyIHRoYXQgY29udGFpbnMgdGhlIGlmcmFtZS4gVGhpcyB0cmFuc2Zvcm1hdGlv
biBtdXN0IGFjY291bnQgZm9yIGEKICAgICAgICAgLy8gbGVmdCBzY3JvbGxiYXIgKGlmIG9uZSBl
eGlzdHMpLgogICAgICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHRoaXMtPmZyYW1lVmlldygp
OwotICAgICAgICBpZiAoZnJhbWVWaWV3LnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSAmJiBmcmFtZVZpZXcudmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICAgICAgaWYg
KGZyYW1lVmlldy5zaG91bGRQbGFjZVZlcnRpY2FsU2Nyb2xsYmFyT25MZWZ0KCkgJiYgZnJhbWVW
aWV3LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgICAgICBhZGp1c3RlZFJlY3QubW92ZShM
YXlvdXRTaXplKGZyYW1lVmlldy52ZXJ0aWNhbFNjcm9sbGJhcigpLT5vY2N1cGllZFdpZHRoKCks
IDApKTsKIAogICAgICAgICBvd25lckJveC0+cmVwYWludFJlY3RhbmdsZShhZGp1c3RlZFJlY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggZWRmMTcwYTk2OWE5MDdlOTk4MzY5MmViOTg4NTg5MDJlN2IzNjM1OC4uMDliODNjOGUzMDM5
ZDNjYWZlMzc3MTMyM2EyYjQwNTU1MTAwYzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTgxLDkgKzI1ODEsOSBAQCBmbG9hdCBS
ZW5kZXJTdHlsZTo6b3V0bGluZU9mZnNldCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2dyb3Vu
ZERhdGEtPm91dGxpbmUub2Zmc2V0KCk7CiB9CiAKLWJvb2wgUmVuZGVyU3R5bGU6OnNob3VsZFBs
YWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdAorYm9vbCBSZW5kZXJTdHls
ZTo6c2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKKyAgICByZXR1cm4gKCFpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgfHwgd3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ7CiB9CiAKIFZlY3RvcjxQYWludFR5cGUsIDM+IFJlbmRlclN0eWxlOjpwYWludFR5cGVzRm9y
UGFpbnRPcmRlcihQYWludE9yZGVyIG9yZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA5NzMwMmZhNjI3MTRiNzkxM2Q1MWQ4ZjBiYTQxNWI0
NWY1ZWEzZDg0Li4zYmEwMDQwZjJkMDA5NjBlNTI3MWFjNzljMWRiNTVmOTc5MjdhODAwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtODI5LDcg
KzgyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0lzb2xhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKIAotICAgIGJvb2wgc2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNj
cm9sbGJhck9uTGVmdCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9s
bGJhck9uTGVmdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKENTU19UUkFJTElOR19XT1JEKQogICAg
IFRyYWlsaW5nV29yZCB0cmFpbGluZ1dvcmQoKSBjb25zdCB7IHJldHVybiBUcmFpbGluZ1dvcmQ6
OkF1dG87IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVu
dVByb3h5V2luLmgKaW5kZXggNTdjZjA4ZmRkNjc2ZTI0NWMxNDhkN2RjZWYwZjEzZWY0YWVjYThj
Mi4uZWVkM2E4NGY0MjljMjg3ZGE2ZTBiNDg0NjYzMmE3YTlhOTQ4ZjNjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTgw
LDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpc2libGVTaXplKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGFibGVBcmVhQm91bmRpbmdC
b3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFBsYWNl
QmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxhY2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9s
bGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJl
cmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKaW5kZXggYjVlNmU1
MThiZDVmOTAwZWMwZTFkOTQ0ZmViNTc0ODI5NzMzOTA2NS4uNmNkYmVkY2QwODU3MmUwYjY1OTk4
NTQzZmRmNDJmMjU4NDAyMjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxi
YXJQb2ludCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21D
b250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBm
b3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBj
b25zdCBmaW5hbDsKLSAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJP
bkxlZnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgc2hvdWxkUGxh
Y2VWZXJ0aWNhbFNjcm9sbGJhck9uTGVmdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgU3RyaW5nIGRlYnVnRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogICAgIC8vIFBE
RlBsdWdpbiBmdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTRjYzk1ZjEwNTMwZTc2NDc5OWViYzgzYTJhOGVi
YjQ2ZGFhYmUwYy4uNjAyYjkxNmMzNzFkNWFlMTk2YmE4ZDU1NDg2OGQwZDMyYTJjNDYyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTE1ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNh
bUBhcHBsZS5jb20+CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5s
aW5lL2Jsb2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGlPUyB0ZXN0IGZhaWx1cmUgZXhwZWN0
YXRpb25zIGFuZCBza2lwcyBhcmUgYmVjYXVzZSB3ZSBkb24ndCBzdXBwb3J0CisgICAgICAgIG5v
bi1vdmVybGF5IHNjcm9sbGJhcnMgb24gdGhlIGxlZnQgb24gdGhhdCBwbGF0Zm9ybS4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogY3NzMy9mbGV4Ym94L2NoaWxkLW92
ZXJmbG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRpY2FsLW92
ZXJmbG93LXBhcmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9yZXBhaW50L3ZlcnRp
Y2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5n
L3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwt
cG9zaXRpb24tZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXIt
cG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy92
ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1i
bG9jay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0LgorCiAy
MDIxLTA0LTE0ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1dQRV0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gRW1pdCBzcGVjaWZpYyBiYXNlbGlu
ZXMgZm9yIFdQRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDEzNmYxYzUzNmU2
NWExZjJhMzMyNmMwZjIyNTUwN2I1NDY0Mjc4NDkuLjk3YTE0NTE4NWQ5ZmIyMWE4NTFkZWNjM2My
YWVkMWIyNTkzZThlM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTA0LTE1ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+
CisKKyAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Jsb2NrKS1l
bmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dDoKKwog
MjAyMS0wNC0xMyAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
Z3JpZF0gSW5jb3JyZWN0IHRyYWNrIHNpemluZyB3aGVuIHVzaW5nIHJlbGF0aXZlIHNpemVkIGl0
ZW1zIGluICdhdXRvJyBjb2x1bW4gdHJhY2tzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNjhjOTY3
ZWMzM2Y5MzA2YjVhN2YxNWYwMTVlMzU2YmQ1MTg1N2M2Li42ZDYyMjI0OGIxZjJhZTkzY2U4NDli
ZmZmNmU2OGRjYzQ4MmFmZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4NjYsNiArNDg2Niwx
MCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90
ZS1zY29waW5nLTAwMi5odG1sIFsgSW1hZ2VPbgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vcXVvdGUtc2NvcGluZy0wMDMuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
cXVvdGUtc2NvcGluZy0wMDQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIFRlc3RzIHRo
YXQgZmFpbCBiZWNhdXNlIHRoZXkgYXNzdW1lIGEgdmVydGljYWwgc2Nyb2xsYmFyIGluIGB3cml0
aW5nLW1vZGU6IHZlcnRpY2FsLXJsYCBlbGVtZW50cyB3aWxsIGJlIG9uIHRoZSByaWdodC1oYW5k
IHNpZGUKK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvc2l6aW5nLW9ydGhvZy12cmwtaW4taHRiLTAxMy54aHQg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8yMjQzNTcgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9jc3NvbS1nZXRCb3VuZGluZ0NsaWVudFJl
Y3QtdmVydGljYWwtcmwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQorCiAjIEBjb3VudGVyLXN0
eWxlIHJlZiB0ZXN0cyB0aGF0IGN1cnJlbnRseSBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvYXJtZW5pYW4vY3NzMy1jb3VudGVyLXN0
eWxlcy0wMDYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2FybWVuaWFuL2NzczMtY291bnRlci1z
dHlsZXMtMDA3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9jaGlsZC1vdmVyZmxvdy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKaW5kZXggNjI1NDcy
ZjQ3ZjFkZmQxNjEyZjViZTQ4YjFmMWM5NDdiYjgzNWVhMC4uMGY2YWU4NWFjNjYwYmE4MWRkMjVh
Yzg1MWI4ZTEzZGM2YzYwZTQ5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4
Ym94L2NoaWxkLW92ZXJmbG93LWV4cGVjdGVkLmh0bWwKQEAgLTI4LDYgKzI4LDEwIEBACiBwIHsK
ICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogfQorCisudG9wUmlnaHQgeworICAgIGRpcmVjdGlv
bjogcnRsOyAgLyogcGxhY2Ugc2Nyb2xsYmFycyBvbiB0aGUgTEhTICovCit9CiA8L3N0eWxlPgog
PC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvdmVy
dGljYWwtb3ZlcmZsb3ctcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVw
YWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CmluZGV4IDAwMTU1ODlk
NzRkOWIxOTU3MjE1ZTIzMGRkMDcyZjA4NGU5NTBiYWUuLjgyYTRmZWFhYTIzMzU4MzkyODk5MmM3
NmY4Y2RlMjEyZWM4NjlkNTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92
ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvcmVwYWludC92ZXJ0aWNhbC1vdmVyZmxvdy1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsNCBAQAogKHJlcGFpbnQgcmVjdHMKLSAgKHJlY3QgMjkgMjkgMTAwIDEwMCkKKyAgKHJlY3Qg
NDQgMjkgMTAwIDEwMCkKICkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50
L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZXBhaW50L3ZlcnRpY2FsLW92ZXJmbG93LXNhbWUtZXhwZWN0ZWQudHh0CmluZGV4IDc3YWJmYmNk
NzgxMTdlODllZmMzMTM2N2YzYzNmZGFhZDc2Yjg0MWYuLmI3NTkxNDE2NGQ4MThjMzgzYmQxZTMy
MzQ1NDI5MTM3NDg2YjM0NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC92
ZXJ0aWNhbC1vdmVyZmxvdy1zYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvdmVydGljYWwtb3ZlcmZsb3ctc2FtZS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0
IEBACiAocmVwYWludCByZWN0cwotICAocmVjdCAyOSAyMSAxMDAgMTAwKQorICAocmVjdCA0NCAy
MSAxMDAgMTAwKQogKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92
LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi1keW5hbWljLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlv
bi1keW5hbWljLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQxNmI0NzI3YTBiOGJhZWU5YTY0
NTFhYjc4YjVlZTNmY2Y1OTQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyBkaXJlY3Rpb246IHJ0bDsgb3ZlcmZsb3c6IHNjcm9s
bDsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7IGJvcmRlcjog
NHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgc3R5bGU9IndpZHRoOiAxMDBw
eDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBsdHI7IG92ZXJmbG93OiBzY3JvbGw7IG1hcmdp
bi10b3A6IDFlbTsiPgorICA8ZGl2IHN0eWxlPSJ3aWR0aDogMTkycHg7IGhlaWdodDogMTkycHg7
IGJvcmRlcjogNHB4IHNvbGlkIGJsYWNrOyI+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9u
LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFy
cy1pbml0aWFsLXBvc2l0aW9uLWR5bmFtaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjBmNzA2Yzk2M2Y2
MGMxZGRkNzJiOGRlMjY4ODgxYTEyZTYyZDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZHluYW1p
Yy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGRpdiBpZD1vbmUgc3R5
bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2RlOiBob3Jpem9udGFs
LXRiOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVp
Z2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPGRp
diBpZD10d28gc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgd3JpdGluZy1tb2Rl
OiB2ZXJ0aWNhbC1ybDsgb3ZlcmZsb3c6IHNjcm9sbDsgbWFyZ2luLXRvcDogMWVtOyI+CisgIDxk
aXYgc3R5bGU9IndpZHRoOiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQg
YmxhY2s7Ij48L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4KK2RvY3VtZW50LmJvZHkub2Zmc2V0VG9w
Oworb25lLnN0eWxlLndyaXRpbmdNb2RlID0gInZlcnRpY2FsLXJsIjsKK3R3by5zdHlsZS53cml0
aW5nTW9kZSA9ICJob3Jpem9udGFsLXRiIjsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24tZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1p
bml0aWFsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg4YjZjYTQ5YjIxZTQy
MjE1MDk4MDU2YWE1YjMzOWUzMTQ4ZTY1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL3Ytcmwtc2Nyb2xsYmFycy1pbml0aWFsLXBvc2l0aW9uLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSw0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9IndpZHRo
OiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgZGlyZWN0aW9uOiBydGw7IG92ZXJmbG93OiBzY3JvbGw7
Ij4KKyAgPGRpdiBzdHlsZT0id2lkdGg6IDE5MnB4OyBoZWlnaHQ6IDE5MnB4OyBib3JkZXI6IDRw
eCBzb2xpZCBibGFjazsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy92LXJsLXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWluaXRpYWwtcG9zaXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44N2EwYmYwODMyOTBjM2U1NTVkMTU4NjIyODQ3Y2NhNGE3OTZkZjE3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3Jv
bGxiYXJzLWluaXRpYWwtcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGRpdiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyB3cml0aW5nLW1v
ZGU6IHZlcnRpY2FsLXJsOyBvdmVyZmxvdzogc2Nyb2xsOyI+CisgIDxkaXYgc3R5bGU9IndpZHRo
OiAxOTJweDsgaGVpZ2h0OiAxOTJweDsgYm9yZGVyOiA0cHggc29saWQgYmxhY2s7Ij48L2Rpdj4K
KzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwt
c2Nyb2xsYmFyLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MmMxNzBiODBkZDBiOGNhOTdmZjU1ZDFkYmRlMWI0MGZmYTY0N2ViNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3ZlcnRpY2FsLXNjcm9sbGJhci1wb3NpdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhlc2UgZm91ciBjb250YWluZXJzIHNo
b3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRoZSByaWdodC4KKworCisKKworVGhl
c2UgZm91ciBjb250YWluZXJzIHNob3VsZCBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyIG9uIHRo
ZSBsZWZ0LgorCisKKworCisgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZmEzOWRhNjhlMjRmMzc4MWM5ZjM3YTJhZjBlMWQxNGJmNTg2NmM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvdmVydGljYWwtc2Nyb2xsYmFyLXBvc2l0aW9u
Lmh0bWwKQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitzZWN0aW9u
ID4gZGl2LCBzZWN0aW9uID4gZGl2IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBoZWln
aHQ6IDEwMHB4OworICB3aWR0aDogMTAwcHg7CisgIG91dGxpbmU6IDFweCBzb2xpZCBibGFjazsK
KyAgb3ZlcmZsb3cteDogaGlkZGVuOworICBvdmVyZmxvdy15OiBzY3JvbGw7CisgIG1hcmdpbjog
MTBweCAxMHB4IDAgMDsKK30KKworLnNxdWFyZSB7CisgIHdpZHRoOiAyMHB4OworICBoZWlnaHQ6
IDIwcHg7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsKK30KKworLmx0ciB7IGRpcmVjdGlv
bjogbHRyOyB9CisucnRsIHsgZGlyZWN0aW9uOiBydGw7IH0KKy5oLXRiIHsgd3JpdGluZy1tb2Rl
OiBob3Jpem9udGFsLXRiOyB9CisuaC1idCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9u
dGFsLWJ0OyB9Cisudi1ybCB7IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKy52LWxyIHsg
d3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorPC9zdHlsZT4KKzxzZWN0aW9uIGNsYXNzPSJy
aWdodCI+CisgIDxwPlRoZXNlIGZvdXIgY29udGFpbmVycyBzaG91bGQgaGF2ZSBhIHZlcnRpY2Fs
IHNjcm9sbGJhciBvbiB0aGUgcmlnaHQuPC9wPgorICA8ZGl2IGNsYXNzPSJoLXRiIGx0ciI+PGRp
diBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBj
bGFzcz0iaC1idCBsdHIiPjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iMCI+PC9k
aXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9InYtbHIgbHRyIj48ZGl2IGNsYXNzPSJzcXVhcmUiIGRh
dGEtZXhwZWN0ZWQ9IjAiPjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJ2LWxyIHJ0bCI+PGRp
diBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSIwIj48L2Rpdj48L2Rpdj4KKzwvc2VjdGlv
bj4KKworPHNlY3Rpb24gY2xhc3M9ImxlZnQiPgorICA8cD5UaGVzZSBmb3VyIGNvbnRhaW5lcnMg
c2hvdWxkIGhhdmUgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb24gdGhlIGxlZnQuPC9wPgorICA8ZGl2
IGNsYXNzPSJoLXRiIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4MCI+
PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImgtYnQgcnRsIj48ZGl2IGNsYXNzPSJzcXVhcmUi
IGRhdGEtZXhwZWN0ZWQ9IjgwIj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0idi1ybCBsdHIi
PjxkaXYgY2xhc3M9InNxdWFyZSIgZGF0YS1leHBlY3RlZD0iODAiPjwvZGl2PjwvZGl2PgorICA8
ZGl2IGNsYXNzPSJ2LXJsIHJ0bCI+PGRpdiBjbGFzcz0ic3F1YXJlIiBkYXRhLWV4cGVjdGVkPSI4
MCI+PC9kaXY+PC9kaXY+Cis8L3NlY3Rpb24+CisKKzxwcmUgaWQ9InJlc3VsdHMiPkZBSUw8L3By
ZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB3aW5kb3cudGVzdFJ1
bm5lci5kdW1wQXNUZXh0KHRydWUpOworfQorCitsZXQgdGV4dCA9ICIiOworZm9yIChsZXQgc3F1
YXJlIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zcXVhcmUiKSkgeworICAgIGxldCBh
Y3R1YWwgPSBzcXVhcmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCAtIHNxdWFyZS5wYXJlbnRO
b2RlLm9mZnNldExlZnQ7CisgICAgbGV0IGV4cGVjdGVkID0gc3F1YXJlLmdldEF0dHJpYnV0ZSgi
ZGF0YS1leHBlY3RlZCIpOworICAgIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIHsKKyAgICAgICAg
dGV4dCArPSBgUG9zaXRpb24gb2Ygc3F1YXJlIGluICcke3NxdWFyZS5wYXJlbnROb2RlLmNsYXNz
TmFtZX0nIC0gZXhwZWN0ZWQgJHtleHBlY3RlZH0sIGdvdCAke2FjdHVhbH1cbmA7CisgICAgfQor
fQorcmVzdWx0cy50ZXh0Q29udGVudCA9IHRleHQgfHwgIlBBU1MiOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nu
YXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAppbmRleCA2OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUz
Y2ZlYWQyMTRhNjc0ZWQ1MmFiLi5kNmI3Nzk1NzJiNjQzMTk2Y2NiOWQ3ZGVkYmNhMjAxMGU5MTg3
ZTFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAg
QEAKIAogUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2Rl
IHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAogRkFJTCBTbmFw
cyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25h
cC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJl
Y3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkg
Zm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4
cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGlj
YWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFs
aWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAw
IGJ1dCBnb3QgMTY1CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAw
CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBTbmFwcyBj
b3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3Rs
eSBvbiB4IGV4cGVjdGVkIC01MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBm
b3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBh
bGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC01
MDAgYnV0IGdvdCAtNDg1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRs
JyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIC0zMTUgYnV0IGdvdCAtMzAwCitG
QUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBnb3QgMzAwCitGQUlMIFNuYXBzIGNv
cnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4
cGVjdGVkIDE2NSBidXQgZ290IDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9u
OiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3Nl
cnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20tdmlldy9zY3JvbGxMZWZ0
VG9wLWV4cGVjdGVkLnR4dAppbmRleCA1YmQzYmM3MWRkMDNhY2UyY2VjN2EzNDQwYTdiZGM2ZGQ0
MjQ2NmI4Li41MTIxNmJiOWE5OTBhMDc1NmFmZWJiMGQ0YTBkYjNiMGNhNTY4MWYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS12aWV3L3Njcm9sbExlZnRUb3AtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1l
eHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDYgQEAgUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRh
bC10YjsgZGlyZWN0aW9uOmx0cgogUEFTUyB3cml0aW5nLW1vZGU6aG9yaXpvbnRhbC10YjsgZGly
ZWN0aW9uOnJ0bAogUEFTUyB3cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IGRpcmVjdGlvbjpsdHIK
IFBBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246cnRsCi1GQUlMIHdyaXRp
bmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOmx0ciBhc3NlcnRfYXBwcm94X2VxdWFsczog
ZW5kaW5nIHNjcm9sbExlZnQgZXhwZWN0ZWQgLTE2NSArLy0gMC41IGJ1dCBnb3QgLTE1MAotRkFJ
TCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVjdGlvbjpydGwgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVkIC0xNjUgKy8tIDAuNSBidXQgZ290IC0x
NTAKK1BBU1Mgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBkaXJlY3Rpb246bHRyCitQQVNTIHdy
aXRpbmctbW9kZTp2ZXJ0aWNhbC1ybDsgZGlyZWN0aW9uOnJ0bAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDQ2Zjc5N2NlMzFhMWNmMGIzOWFjMDRlM2Y1
NjI1N2Y2YWFiZTVhMDIuLmNiOTUyODRlODA2YjQ0OTQzMGNmZmNhYzg4NTUxYWJmY2RlZDQ2NmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDYwLDYg
KzEwNjAsNyBAQCBmYXN0L3Njcm9sbGluZy9zY3JvbGxpbmctaW5zaWRlLXNjcm9sbGVkLW92ZXJm
bG93YXJlYS5odG1sIFsgU2tpcCBdCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC10eXBlLWF0
dHJpYnV0ZS5odG1sIFsgU2tpcCBdCiAKICMgUlRMIFNjcm9sbGJhcnMgYXJlIG9ubHkgaW1wbGVt
ZW50ZWQgb24gY2VydGFpbiB2ZXJzaW9ucyBvZiBPUyBYCitjc3MzL2ZsZXhib3gvY2hpbGQtb3Zl
cmZsb3cuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtaWZyYW1l
LXNjcm9sbGVkLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJzLWxp
c3Rib3gtc2Nyb2xsLmh0bWwgWyBTa2lwIF0KIGZhc3Qvc2Nyb2xsaW5nL3J0bC1zY3JvbGxiYXJz
LWxpc3Rib3gtc2VsZWN0LWxlZnQuaHRtbCBbIFNraXAgXQpAQCAtMTA2Nyw2ICsxMDY4LDkgQEAg
ZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtcG9zaXRpb24tYWJzb2x1dGUuaHRtbCBbIFNr
aXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtcG9zaXRpb24tZml4ZWQuaHRtbCBb
IFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1zZWxlY3Rpb24tc2Ny
b2xsZWQuaHRtbCBbIFNraXAgXQogZmFzdC9zY3JvbGxpbmcvcnRsLXNjcm9sbGJhcnMtdGV4dC1z
ZWxlY3Rpb24uaHRtbCBbIFNraXAgXQorZmFzdC9zY3JvbGxpbmcvdi1ybC1zY3JvbGxiYXJzLWlu
aXRpYWwtcG9zaXRpb24tZHluYW1pYy5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGluZy92LXJs
LXNjcm9sbGJhcnMtaW5pdGlhbC1wb3NpdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L3Njcm9sbGlu
Zy92ZXJ0aWNhbC1zY3JvbGxiYXItcG9zaXRpb24uaHRtbCBbIFNraXAgXQogCiAjIFRoaXMgaXMg
c3BlY2lmaWMgdG8gZXh0ZW5zaW9ucyBvbiBtYWNPUwogd2Via2l0Lm9yZy9iLzE2Nzc5NSBodHRw
L3Rlc3RzL3NlY3VyaXR5L2J5cGFzc2luZy1jb3JzLWNoZWNrcy1mb3ItZXh0ZW5zaW9uLXVybHMu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGlu
ZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJs
b2NrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGQ4ZWQ3YzQzMDc2MzYzZWYyMzUzY2ZlYWQy
MTRhNjc0ZWQ1MmFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFw
LWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIFNuYXBz
IGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNu
YXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
dmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3Rh
cnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0
ZWQgMTE1IGJ1dCBnb3QgMzAwCitGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwg
d3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQg
Z290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcg
bW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0
X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDAKK0ZB
SUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWdu
cyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCitGQUlMIFNuYXBzIGNvcnJl
Y3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWdu
OiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9u
IHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAn
ZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBi
dXQgZ290IC00ODUKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdp
dGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxz
OiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3Nzb20tdmlldy9zY3JvbGxMZWZ0VG9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmQzYmM3
MWRkMDNhY2UyY2VjN2EzNDQwYTdiZGM2ZGQ0MjQ2NmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzc29tLXZpZXcvc2Nyb2xsTGVmdFRvcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAor
c2Nyb2xsTGVmdC9zY3JvbGxUb3AKKword3JpdGluZy1tb2RlOiBob3Jpem9udGFsLXRiOworCit3
cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOworCit3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwor
CisKK1BBU1Mgd3JpdGluZy1tb2RlOmhvcml6b250YWwtdGI7IGRpcmVjdGlvbjpsdHIKK1BBU1Mg
d3JpdGluZy1tb2RlOmhvcml6b250YWwtdGI7IGRpcmVjdGlvbjpydGwKK1BBU1Mgd3JpdGluZy1t
b2RlOnZlcnRpY2FsLWxyOyBkaXJlY3Rpb246bHRyCitQQVNTIHdyaXRpbmctbW9kZTp2ZXJ0aWNh
bC1scjsgZGlyZWN0aW9uOnJ0bAorRkFJTCB3cml0aW5nLW1vZGU6dmVydGljYWwtcmw7IGRpcmVj
dGlvbjpsdHIgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGVuZGluZyBzY3JvbGxMZWZ0IGV4cGVjdGVk
IC0xNjUgKy8tIDAuNSBidXQgZ290IC0xNTAKK0ZBSUwgd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJs
OyBkaXJlY3Rpb246cnRsIGFzc2VydF9hcHByb3hfZXF1YWxzOiBlbmRpbmcgc2Nyb2xsTGVmdCBl
eHBlY3RlZCAtMTY1ICsvLSAwLjUgYnV0IGdvdCAtMTUwCisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426296</attachid>
            <date>2021-04-16 17:26:58 -0700</date>
            <delta_ts>2021-04-16 17:35:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224224-20210416192657.patch</filename>
            <type>text/plain</type>
            <size>10302</size>
            <attacher name="Tyler Wilcock">twilco.o</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjgyMGIyNTA3ZTgyMjMw
MjI0OGI0MGIyZjczZmMwYWVmYmFkNDQ3Yi4uY2JlYTEwNjQ5NTk0YjhiM2ZkOThmYzcxOGQyZmM4
NTE3OWIwMzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA0LTE2ICBUeWxl
ciBXaWxjb2NrICA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CisKKyAgICAgICAgQ29uc2lkZXIg
bWFraW5nIENTU1N0eWxlU2hlZXQ6OnJ1bGVzKCkganVzdCBhbiBhbGlhcyBvZiBDU1NTdHlsZVNo
ZWV0Ojpjc3NSdWxlcygpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk3NzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMgKEJsaW5rIGFuZCBHZWNrbykgYW5kIHBhc3Mg
YSBXUFQsIENTU1N0eWxlU2hlZXQucnVsZXMgbm93IGFsaWFzZXMKKyAgICAgICAgQ1NTU3R5bGVT
aGVldC5jc3NSdWxlc0ZvckJpbmRpbmdzLiAgQ1NTU3R5bGVTaGVldC5ydWxlc0ZvckJpbmRpbmdz
IGlzIGRlbGV0ZWQuCisKKyAgICAgICAgVGVzdGVkIGJ5CisgICAgICAgIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTU1N0eWxlU2hlZXQuaHRtbC4KKworICAgICAg
ICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hl
ZXQ6OnJ1bGVzRm9yQmluZGluZ3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5
bGVTaGVldDo6cnVsZXMpOiBEZWxldGVkLgorCisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQu
aDoKKyAgICAgICAgQ2hhbmdlIGBydWxlcygpYCB0byBiZSBhbiBpbmxpbmVkIGFsaWFzIGZvciBg
Y3NzUnVsZXNGb3JCaW5kaW5ncygpYC4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0Lmlk
bDoKKyAgICAgICAgUmVtb3ZlIFtJbXBsZW1lbnRlZEFzPXJ1bGVzRm9yQmluZGluZ3NdLCBhcyB0
aGlzIGZ1bmN0aW9uIGhhcyBiZWVuCisgICAgICAgIGRlbGV0ZWQuCisKIDIwMjEtMDQtMTYgIENh
bWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBQbGFjZSB2ZXJ0
aWNhbCBzY3JvbGxiYXJzIGF0IChpbmxpbmUvYmxvY2spLWVuZCBlZGdlIGluIGFsbCB3cml0aW5n
IG1vZGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA3ODFmODViMTk4ZTlmMTkwMGViNGY4Zjg0YTUwMDFlMTk1NzIz
OGFkLi4zMDE0OTI3Y2I4NjdkYTY4NzRhOTk4MTA1NjFjODNiMjI0NzEyMTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDIxLTA0LTE2ICBUeWxlciBXaWxjb2NrICA8dHdpbGNvLm9AcHJv
dG9ubWFpbC5jb20+CisKKyAgICAgICAgQ29uc2lkZXIgbWFraW5nIENTU1N0eWxlU2hlZXQ6OnJ1
bGVzKCkganVzdCBhbiBhbGlhcyBvZiBDU1NTdHlsZVNoZWV0Ojpjc3NSdWxlcygpLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NzI1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ1NTU3R5bGVTaGVldC5ydWxl
cyBoYXMgYmVlbiBjaGFuZ2VkIHRvIGFsaWFzIENTU1N0eWxlU2hlZXQuY3NzUnVsZXNGb3JCaW5k
aW5ncy4gIE5vdywKKyAgICAgICAgdG8gYWNjZXNzIGp1c3QgdGhlIENTU1J1bGVMaXN0LCBDU1NT
dHlsZVNoZWV0LmNzc1J1bGVzIG11c3QgYmUgY2FsbGVkLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNwcDoK
KyAgICAgICAgKHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9ydWxlcyk6CisgICAgICAg
IFVzZSBDU1NTdHlsZVNoZWV0LmNzc1J1bGVzIGluc3RlYWQgb2YgQ1NTU3R5bGVTaGVldC5ydWxl
cyAoZGVsZXRlZAorICAgICAgICB3aXRoIHRoaXMgcGF0Y2gpIHRvIGdldCBhY2Nlc3MgdG8gdGhl
IENTU1J1bGVMaXN0IG9mIHRoaXMKKyAgICAgICAgc3R5bGVzaGVldC4KKwogMjAyMS0wNC0xNiAg
Q2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFBsYWNlIHZl
cnRpY2FsIHNjcm9sbGJhcnMgYXQgKGlubGluZS9ibG9jayktZW5kIGVkZ2UgaW4gYWxsIHdyaXRp
bmcgbW9kZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNWZjZmRlM2RiNTRjMGQ1
YTI0NzFjNGFkODMxMDE5MTQ0N2Q2ZjFhZS4uYTllMjJiOWFlNjUzZTczYjQ5MzMyYjAzMjM5NzU4
Y2JhY2NhNTQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA0LTE2ICBUeWxlciBXaWxjb2NrICA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CisK
KyAgICAgICAgQ29uc2lkZXIgbWFraW5nIENTU1N0eWxlU2hlZXQ6OnJ1bGVzKCkganVzdCBhbiBh
bGlhcyBvZiBDU1NTdHlsZVNoZWV0Ojpjc3NSdWxlcygpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3NzI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgQ1NTU3R5bGVTaGVldC5ydWxlcyBoYXMgYmVlbiBjaGFu
Z2VkIHRvIGFsaWFzIENTU1N0eWxlU2hlZXQuY3NzUnVsZXNGb3JCaW5kaW5ncy4gIE5vdywKKyAg
ICAgICAgdG8gYWNjZXNzIGp1c3QgdGhlIENTU1J1bGVMaXN0LCBDU1NTdHlsZVNoZWV0LmNzc1J1
bGVzIG11c3QgYmUgY2FsbGVkLgorCisgICAgICAgICogRE9NL0RPTUNTU1N0eWxlU2hlZXQubW06
CisgICAgICAgICgtW0RPTUNTU1N0eWxlU2hlZXQgcnVsZXNdKToKKyAgICAgICAgVXBkYXRlIHRo
aXMgZnVuY3Rpb24gdG8gY2FsbCBJTVBMLT5jc3NSdWxlcyBpbnN0ZWFkIG9mIElNUEwtPnJ1bGVz
LgorCiAyMDIxLTA0LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU10gUmVmYWN0b3Igc29tZSB3ZWJwYWdlIHRyYW5zbGF0aW9uIGNvZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCBkZjUyZDAxMzQ2ZGVjOTI4Nzdj
ZDMwZjlmZjIzM2MyOThhZGY3OGVjLi4wNTcxY2Y5NmNlMDgxMmI1ZTgyNzU5NzkwZTVlMDBkOTE2
YTU0OWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0yNTQsMjYgKzI1
NCw2IEBAIGJvb2wgQ1NTU3R5bGVTaGVldDo6Y2FuQWNjZXNzUnVsZXMoKSBjb25zdAogICAgIHJl
dHVybiBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5jYW5SZXF1ZXN0KGJhc2VVUkwpOwogfQog
Ci1FeGNlcHRpb25PcjxSZWY8Q1NTUnVsZUxpc3Q+PiBDU1NTdHlsZVNoZWV0OjpydWxlc0ZvckJp
bmRpbmdzKCkKLXsKLSAgICBhdXRvIHJ1bGVzID0gdGhpcy0+cnVsZXMoKTsKLSAgICBpZiAoIXJ1
bGVzKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIk5vdCBhbGxv
d2VkIHRvIGFjY2VzcyBjcm9zcy1vcmlnaW4gc3R5bGVzaGVldCJfcyB9OwotICAgIHJldHVybiBy
dWxlcy5yZWxlYXNlTm9uTnVsbCgpOwotfQotCi1SZWZQdHI8Q1NTUnVsZUxpc3Q+IENTU1N0eWxl
U2hlZXQ6OnJ1bGVzKCkKLXsKLSAgICBpZiAoIWNhbkFjY2Vzc1J1bGVzKCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIC8vIElFIGJlaGF2aW9yLgotICAgIGF1dG8gcnVsZUxpc3QgPSBT
dGF0aWNDU1NSdWxlTGlzdDo6Y3JlYXRlKCk7Ci0gICAgdW5zaWduZWQgcnVsZUNvdW50ID0gbGVu
Z3RoKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHJ1bGVDb3VudDsgKytpKQotICAg
ICAgICBydWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQoaXRlbShpKSk7Ci0gICAgcmV0dXJuIHJ1bGVM
aXN0OwotfQotCiBFeGNlcHRpb25Pcjx1bnNpZ25lZD4gQ1NTU3R5bGVTaGVldDo6aW5zZXJ0UnVs
ZShjb25zdCBTdHJpbmcmIHJ1bGVTdHJpbmcsIHVuc2lnbmVkIGluZGV4KQogewogICAgIEFTU0VS
VChtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMuaXNFbXB0eSgpIHx8IG1fY2hpbGRSdWxlQ1NTT01X
cmFwcGVycy5zaXplKCkgPT0gbV9jb250ZW50cy0+cnVsZUNvdW50KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmgKaW5kZXggZWIwMGYzZjJiYmExODkwYTM4NzIwMjY2YmU3ZTAzMDEzNDhh
ODM5My4uNWY4Nzc0ODcwNmNkNGZhODY1ZGFiNGQ2MjRiMTU4MmQ2OWE3MWQzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5oCkBAIC0yMCw2ICsyMCw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2lu
Y2x1ZGUgIlN0eWxlU2hlZXQuaCIKICNpbmNsdWRlIDxtZW1vcnk+CkBAIC0zMyw3ICszNCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU0ltcG9ydFJ1bGU7CiBjbGFzcyBDU1NQYXJz
ZXI7CiBjbGFzcyBDU1NSdWxlOwotY2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBDU1NTdHlsZVNo
ZWV0OwogY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNsYXNzIERvY3VtZW50OwpAQCAtNjIs
MTQgKzYyLDEzIEBAIHB1YmxpYzoKICAgICBib29sIGRpc2FibGVkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9pc0Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sKSBmaW5hbDsK
IAorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxDU1NSdWxlTGlzdD4gY3NzUnVsZXMoKTsKICAg
ICBFeGNlcHRpb25PcjxSZWY8Q1NTUnVsZUxpc3Q+PiBjc3NSdWxlc0ZvckJpbmRpbmdzKCk7Ci0g
ICAgRXhjZXB0aW9uT3I8UmVmPENTU1J1bGVMaXN0Pj4gcnVsZXNGb3JCaW5kaW5ncygpOworICAg
IEV4Y2VwdGlvbk9yPFJlZjxDU1NSdWxlTGlzdD4+IHJ1bGVzKCkgeyByZXR1cm4gdGhpcy0+Y3Nz
UnVsZXNGb3JCaW5kaW5ncygpOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Q1NTUnVs
ZUxpc3Q+IGNzc1J1bGVzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dW5zaWdu
ZWQ+IGluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBpbmRleCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gZGVsZXRlUnVsZSh1bnNpZ25lZCBpbmRl
eCk7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPENTU1J1bGVMaXN0PiBydWxlcygp
OwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPGludD4gYWRkUnVsZShjb25zdCBTdHJp
bmcmIHNlbGVjdG9yLCBjb25zdCBTdHJpbmcmIHN0eWxlLCBPcHRpb25hbDx1bnNpZ25lZD4gaW5k
ZXgpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlbW92ZVJ1bGUodW5zaWduZWQgaW5kZXgpIHsg
cmV0dXJuIGRlbGV0ZVJ1bGUoaW5kZXgpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
aGVldC5pZGwKaW5kZXggYjZjODQzY2Y3NTdmMjAwODMzNmRiNDUwMjU5ZDEwNTVlOWFhNTMzNy4u
OWY5MGVmODhkMGFlYWM5NTQ3YmE5OWYwNzg4OTQyZjQ0MTE0MjI5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdHlsZVNoZWV0LmlkbApAQCAtMjYsNyArMjYsNyBAQAogICAgIHVuc2lnbmVkIGxvbmcg
aW5zZXJ0UnVsZShET01TdHJpbmcgcnVsZSwgb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbmRleCA9
IDApOwogICAgIHVuZGVmaW5lZCBkZWxldGVSdWxlKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCi0g
ICAgW0ltcGxlbWVudGVkQXM9cnVsZXNGb3JCaW5kaW5nc10gcmVhZG9ubHkgYXR0cmlidXRlIENT
U1J1bGVMaXN0IHJ1bGVzOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlTGlzdCBydWxl
czsKICAgICBsb25nIGFkZFJ1bGUob3B0aW9uYWwgRE9NU3RyaW5nIHNlbGVjdG9yID0gInVuZGVm
aW5lZCIsIG9wdGlvbmFsIERPTVN0cmluZyBzdHlsZSA9ICJ1bmRlZmluZWQiLCBvcHRpb25hbCB1
bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB1bmRlZmluZWQgcmVtb3ZlUnVsZShvcHRpb25hbCB1
bnNpZ25lZCBsb25nIGluZGV4ID0gMCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hl
ZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDg1N2I4ZjRkZmJhMTk3NmI0Yzg0
ZDExNmY1ZTAyYTYwNjAxMzcxMjEuLjc4ODQ3Y2UyNzQ4YTE3NzViMjJlOGFiZjc2NzI5MjJhODg0
ZDZjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBXZWJLaXRET01DU1NSdWxlTGlzdCogd2Vi
a2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZQog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NTU19TVFlMRV9TSEVFVChzZWxmKSwgMCk7CiAgICAg
V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZUxpc3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihp
dGVtLT5ydWxlcygpKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZUxpc3Q+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5jc3NSdWxlcygpKTsKICAgICByZXR1cm4gV2ViS2l0
OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0RPTS9ET01DU1NTdHlsZVNoZWV0Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTUNTU1N0eWxlU2hlZXQubW0KaW5kZXggYjRhZDk0ZmMyY2YzMTVhNTYxNTgw
MGU2ZjMxY2MzMDIzOTg3ZjM2YS4uOTYzZmQyOWY0ZmMyYjMzMzJkYmEzNmQ4YTMyNDQxOTYzMTdi
ZTAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUNTU1N0eWxl
U2hlZXQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUNTU1N0eWxlU2hl
ZXQubW0KQEAgLTU5LDcgKzU5LDkgQEAKIC0gKERPTUNTU1J1bGVMaXN0ICopcnVsZXMKIHsKICAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChX
VEY6OmdldFB0cihJTVBMLT5ydWxlcygpKSk7CisgICAgLy8gQ2FsbGluZyBJTVBMLT5jc3NSdWxl
cyAobm90IElNUEwtPnJ1bGVzKSBpcyBpbnRlbnRpb25hbCwgYXMgYHJ1bGVzYCBzaG91bGQganVz
dCBiZSBhbiBhbGlhcyBmb3IgYGNzc1J1bGVzYC4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzcyNSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAg
ICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmNzc1J1bGVzKCkpKTsKIH0KIAogLSAodW5z
aWduZWQpaW5zZXJ0UnVsZTooTlNTdHJpbmcgKilydWxlIGluZGV4Oih1bnNpZ25lZClpbmRleApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggY2ZmZjY3ZWExNzBmNDE2YWMwZTMyMGY4
MmU1ODIzOWE5NTAwOGQwMS4uNWM2MWRlN2E1ZWY5YzcyZDI3YzdkNmJiZThmMzIwYTQzZmJiODI4
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MDQtMTYgIFR5bGVyIFdpbGNvY2sgIDx0d2lsY28ub0Bwcm90b25tYWlsLmNvbT4KKworICAgICAg
ICBDb25zaWRlciBtYWtpbmcgQ1NTU3R5bGVTaGVldDo6cnVsZXMoKSBqdXN0IGFuIGFsaWFzIG9m
IENTU1N0eWxlU2hlZXQ6OmNzc1J1bGVzKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc3MjUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICBUbyBtYXRjaCBvdGhlciBicm93c2VycyBhbmQgdGhlIGJlbG93IFdQ
VCwgQ1NTU3R5bGVTaGVldC5ydWxlcyBub3cgYWxpYXNlcworICAgICAgICBDU1NTdHlsZVNoZWV0
LmNzc1J1bGVzRm9yQmluZGluZ3MsIG1lYW5pbmcgd2UgcGFzcyB0d28gbW9yZSB0ZXN0cy4gCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTU1N0eWxlU2hlZXQtZXhw
ZWN0ZWQudHh0OgorCiAyMDIxLTA0LTE2ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUGxhY2UgdmVydGljYWwgc2Nyb2xsYmFycyBhdCAoaW5saW5lL2Js
b2NrKS1lbmQgZWRnZSBpbiBhbGwgd3JpdGluZyBtb2Rlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL0NTU1N0eWxlU2hl
ZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3Nzb20vQ1NTU3R5bGVTaGVldC1leHBlY3RlZC50eHQKaW5kZXggNzdiNjY5Y2Y1
M2NmM2EzYjllNWYyMzYxNGRkN2RjZGJhM2MxY2ViMC4uZGEyNTExODFlYTU5M2VlOTAyY2JkMGNj
ZDliNmU0ZjVkOTJmY2M2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20vQ1NTU3R5bGVTaGVldC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nzb20v
Q1NTU3R5bGVTaGVldC1leHBlY3RlZC50eHQKQEAgLTEzLDcgKzEzLDcgQEAgUEFTUyByZW1vdmVS
dWxlKDEpCiBQQVNTIGFkZFJ1bGUgd2l0aCAjZm9vIHNlbGVjdG9ycwogUEFTUyBhZGRSdWxlIHdp
dGggbm8gYXJndW1lbnQgYWRkcyAidW5kZWZpbmVkIiBzZWxlY3RvcgogUEFTUyBhZGRSdWxlIHdp
dGggaW5kZXggZ3JlYXRlciB0aGFuIGxlbmd0aCB0aHJvd3MKLUZBSUwgY3NzUnVsZXMgYW5kIHJ1
bGVzIGFyZSB0aGUgc2FtZSBvYmplY3QgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgb2JqZWN0ICJb
b2JqZWN0IENTU1J1bGVMaXN0XSIgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgQ1NTUnVsZUxpc3Rd
IgorUEFTUyBjc3NSdWxlcyBhbmQgcnVsZXMgYXJlIHRoZSBzYW1lIG9iamVjdAogUEFTUyBjc3NS
dWxlcyByZXR1cm5zIHRoZSBzYW1lIG9iamVjdCB0d2ljZQotRkFJTCBydWxlcyByZXR1cm5zIHRo
ZSBzYW1lIG9iamVjdCB0d2ljZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCBvYmplY3QgIltvYmpl
Y3QgQ1NTUnVsZUxpc3RdIiBidXQgZ290IG9iamVjdCAiW29iamVjdCBDU1NSdWxlTGlzdF0iCitQ
QVNTIHJ1bGVzIHJldHVybnMgdGhlIHNhbWUgb2JqZWN0IHR3aWNlCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>